oILAB
Loading...
Searching...
No Matches
gbLAB::GbMesoState< dim > Class Template Reference

#include <GbMesoState.h>

+ Inheritance diagram for gbLAB::GbMesoState< dim >:

Public Member Functions

 GbMesoState (const Gb< dim > &gb, const ReciprocalLatticeVector< dim > &axis, const std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > &bs, const std::vector< LatticeVector< dim > > &mesoStateCslVectors, const BicrystalLatticeVectors &bicrystalConfig)
 
std::tuple< double, double, PeriodicFunction< double, dim > > densityEnergy (const std::string &lmpLocation, const std::string &potentialName, bool relax, const std::array< Eigen::Index, dim > &n=std::array< Eigen::Index, dim >{}) const
 Calculate the energy of a mesostate using lammps.
 
std::pair< double, double > densityEnergyPython () const
 
std::enable_if< dim==3, void >::type box (const std::string &filename) const
 
- Public Member Functions inherited from gbLAB::GbContinuum< dim >
 GbContinuum (const Eigen::Matrix< double, dim, dim-1 > &domain, const std::map< OrderedTuplet< dim+1 >, VectorDimD > &xuPairs, const std::array< Eigen::Index, dim-1 > &n, const std::map< OrderedTuplet< dim+1 >, VectorDimD > &atoms, const bool &verbosity=false)
 
VectorDimD displacement (const OrderedTuplet< dim+1 > &x) const
 
VectorDimD displacement (const VectorDimD &x) const
 
std::vector< PeriodicFunction< double, dim-1 > > get_b () const
 
std::vector< PeriodicFunction< double, dim-1 > > get_alpha () const
 

Data Fields

const Gb< dim > & gb
 
const ReciprocalLatticeVector< dim > & axis
 
const std::vector< LatticeVector< dim > > & mesoStateCslVectors
 
const BicrystalLatticeVectorsbicrystalConfig
 
const std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > bs
 
- Data Fields inherited from gbLAB::GbContinuum< dim >
const Eigen::Matrix< double, dim, dim-1 > gbDomain
 
const std::map< OrderedTuplet< dim+1 >, VectorDimDxuPairs
 
std::array< Eigen::Index, dim-1 > n
 
std::vector< PeriodicFunction< double, dim-1 > > b
 
std::vector< LatticeFunction< std::complex< double >, dim-1 > > bhat
 
std::map< OrderedTuplet< dim+1 >, VectorDimDatoms
 
VectorDimD uAverage
 
double energy
 

Private Types

using VectorDimD = typename LatticeCore< dim >::VectorDimD
 
using BicrystalLatticeVectors = std::vector< LatticeVector< dim > >
 

Static Private Member Functions

static Eigen::Matrix< double, dim, dim-1 > getMesoStateGbDomain (const std::vector< LatticeVector< dim > > &mesoStateCslVectors)
 Returns the cartesian coordinates of the CSL vectors that define a mesostate's GB.
 
static std::map< OrderedTuplet< dim+1 >, VectorDimDget_xuPairs (const Gb< dim > &gb, const std::vector< LatticeVector< dim > > &mesoStateCslVectors, const std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > &bs)
 Returns the displacement constraints \(\textbf u(\textbf x^i)=\textbf u^i\) for the GB continuum model from the translation-shift pairs defining the mesostate.
 
static std::map< OrderedTuplet< dim+1 >, VectorDimDbicrystalCoordsMap (const Gb< dim > &gb, const BicrystalLatticeVectors &bicrystalConfig)
 Returns the Cartesian coordinates of the lattice vectors of the mesostates's bicrystal in the form of a map that maps the DSCL integer coordinates to the Cartesian coordinates.
 
static std::array< Eigen::Index, dim-1 > discretize (const std::vector< LatticeVector< dim > > &mesoStateCslVectors, const Gb< dim > &gb)
 Returns the discretization of the grain boundary domain.
 

Additional Inherited Members

- Static Public Member Functions inherited from gbLAB::GbContinuum< dim >
static void reset ()
 

Detailed Description

template<int dim>
class gbLAB::GbMesoState< dim >

Class template that defines a GB mesostate.

Definition at line 20 of file GbMesoState.h.

Member Typedef Documentation

◆ BicrystalLatticeVectors

template<int dim>
using gbLAB::GbMesoState< dim >::BicrystalLatticeVectors = std::vector<LatticeVector<dim> >
private

Definition at line 22 of file GbMesoState.h.

◆ VectorDimD

template<int dim>
using gbLAB::GbMesoState< dim >::VectorDimD = typename LatticeCore<dim>::VectorDimD
private

Definition at line 21 of file GbMesoState.h.

Constructor & Destructor Documentation

◆ GbMesoState()

template<int dim>
gbLAB::GbMesoState< dim >::GbMesoState ( const Gb< dim > &  gb,
const ReciprocalLatticeVector< dim > &  axis,
const std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > &  bs,
const std::vector< LatticeVector< dim > > &  mesoStateCslVectors,
const BicrystalLatticeVectors bicrystalConfig 
)
explicit

Definition at line 15 of file GbMesoStateImplementation.h.

Member Function Documentation

◆ bicrystalCoordsMap()

template<int dim>
std::map< OrderedTuplet< dim+1 >, typename GbMesoState< dim >::VectorDimD > gbLAB::GbMesoState< dim >::bicrystalCoordsMap ( const Gb< dim > &  gb,
const BicrystalLatticeVectors bicrystalConfig 
)
staticprivate

Returns the Cartesian coordinates of the lattice vectors of the mesostates's bicrystal in the form of a map that maps the DSCL integer coordinates to the Cartesian coordinates.

Parameters
bicrystalConfig- a vector of lattice vectors in the mesostates' bicrystal.
Returns
A map between the DSCL coordinates of lattice vectors in bicrystalConfig to their Cartesian coordinates.

Definition at line 146 of file GbMesoStateImplementation.h.

◆ box()

template<int dim>
std::enable_if< dim==3, void >::type gbLAB::GbMesoState< dim >::box ( const std::string &  filename) const

This function outputs/prints a grain boundary mesostate

Parameters
filenamename of the file to be written to

Definition at line 248 of file GbMesoStateImplementation.h.

◆ densityEnergy()

template<int dim>
std::tuple< double, double, PeriodicFunction< double, dim > > gbLAB::GbMesoState< dim >::densityEnergy ( const std::string &  lmpLocation,
const std::string &  potentialName,
bool  relax,
const std::array< Eigen::Index, dim > &  n = std::array<Eigen::Index,dim>{} 
) const

Calculate the energy of a mesostate using lammps.

Parameters
ms- mesostate
Returns
Energy of the mesostate

Definition at line 173 of file GbMesoStateImplementation.h.

◆ densityEnergyPython()

template<int dim>
std::pair< double, double > gbLAB::GbMesoState< dim >::densityEnergyPython ( ) const

Definition at line 210 of file GbMesoStateImplementation.h.

◆ discretize()

template<int dim>
std::array< Eigen::Index, dim-1 > gbLAB::GbMesoState< dim >::discretize ( const std::vector< LatticeVector< dim > > &  mesoStateCslVectors,
const Gb< dim > &  gb 
)
staticprivate

Returns the discretization of the grain boundary domain.

Parameters
mesoStateCslVectors- a vector (size = dim) of CSL vectors that define the box of the mesostate.
Returns
an integer array of size dim-1

Definition at line 134 of file GbMesoStateImplementation.h.

◆ get_xuPairs()

template<int dim>
std::map< OrderedTuplet< dim+1 >, typename GbMesoState< dim >::VectorDimD > gbLAB::GbMesoState< dim >::get_xuPairs ( const Gb< dim > &  gb,
const std::vector< LatticeVector< dim > > &  mesoStateCslVectors,
const std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > &  bs 
)
staticprivate

Returns the displacement constraints \(\textbf u(\textbf x^i)=\textbf u^i\) for the GB continuum model from the translation-shift pairs defining the mesostate.

Parameters
gb- grain boundary
bs- a deque of pairs (translation vector b, shift vector s). b is a DSCL vector while s is expressed in Cartesian coordinates
Returns
A map between the DSCL coordinates \(\underline{\textbf x}^i_{\mathcal D}\) of \(\textbf x^i\) and Cartesian coordinates of \(\textbf u^i\).

Definition at line 55 of file GbMesoStateImplementation.h.

◆ getMesoStateGbDomain()

template<int dim>
Eigen::Matrix< double, dim, dim-1 > gbLAB::GbMesoState< dim >::getMesoStateGbDomain ( const std::vector< LatticeVector< dim > > &  mesoStateCslVectors)
staticprivate

Returns the cartesian coordinates of the CSL vectors that define a mesostate's GB.

Parameters
mesoStateCslVectors- a vector (size = dim) of CSL vectors that define the box of the mesostate.
Returns
Cartesian coordinates of the dim-1 grain boundary CSL vectors

Definition at line 45 of file GbMesoStateImplementation.h.

Field Documentation

◆ axis

template<int dim>
const ReciprocalLatticeVector<dim>& gbLAB::GbMesoState< dim >::axis

Grain boundary tilt axis

Definition at line 70 of file GbMesoState.h.

◆ bicrystalConfig

template<int dim>
const BicrystalLatticeVectors& gbLAB::GbMesoState< dim >::bicrystalConfig

Lattice vectors of lattices \(\mathcal A\) and \(\mathcal B\) that are contained in the box described by mesoStateCslVectors. They are used to construct a function basis for the continuum solution.

Definition at line 83 of file GbMesoState.h.

◆ bs

template<int dim>
const std::deque<std::tuple<LatticeVector<dim>, VectorDimD,int> > gbLAB::GbMesoState< dim >::bs
Parameters
bsa deque of pairs (translation vector \(\textbf b\), shift vector \(\textbf s\)) that defines a mesostate. Translating lattice \(\mathcal A\) by \(\textbf b\) results in a CSL shift of \(\textbf s\).

Definition at line 90 of file GbMesoState.h.

◆ gb

template<int dim>
const Gb<dim>& gbLAB::GbMesoState< dim >::gb

Grain boundary

Definition at line 65 of file GbMesoState.h.

◆ mesoStateCslVectors

template<int dim>
const std::vector<LatticeVector<dim> >& gbLAB::GbMesoState< dim >::mesoStateCslVectors

A vector (size = dim) of CSL vectors that define the box of the mesostate. The second and third vectors should be parallel to the grain boundary, while the third vector should be out of the grain boundary plane.

Definition at line 77 of file GbMesoState.h.


The documentation for this class was generated from the following files: