CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <DoFSet.hh>
DoFSet specifies all identifying information for a vector of continuous independent variables (Degrees of Freedom / DoFs) DoFSets are associated with a specific DoF 'type', which has a predefined 'standard' coordinate system ex: displacement -> 3-vector (x,y,z) -> displacement components (relative to fixed laboratory frame) strain -> 6-vector (e_xx, e_yy, e_zz, sqrt(2)*e_yz, sqrt(2)*e_xz, sqrt(2)*e_xy) -> tensor elements DoFSets have a typename, which specifies the type, and a set of basis vectors, which are denoted relative to the DoF type's standard axes. This allows the DoFSet components to be specified by the user, including the ability to only allow DoF values within a subspace of the standard values. DoFSet records the DoF typename, the names of the vector components, and the axes of the vector components (relative to a set of standard axes)
Public Types | |
using | BasicTraits = AnisoValTraits |
Public Member Functions | |
DoFSet (const BasicTraits &init_traits, const std::vector< std::string > &init_component_names, const Eigen::MatrixXd &init_basis) | |
DoFSet (const BasicTraits &init_traits) | |
const std::string & | type_name () const |
Returns type_name of DoFSet, which should be a standardized DoF type (e.g., "disp", "magspin", "GLstrain") More... | |
const std::vector< std::string > & | component_names () const |
Returns the names of each of the component axes. More... | |
BasicTraits const & | traits () const |
Returns traits object for the DoF type of this DoFSet. More... | |
Index | dim () const |
Eigen::MatrixXd const & | basis () const |
Matrix that relates DoFSet variables to a conventional coordiante system. More... | |
Private Attributes | |
BasicTraits | m_traits |
std::vector< std::string > | m_component_names |
Eigen::MatrixXd | m_basis |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
The basis defines the space of the DoF, which should be a linear combination of the AnisoValTraits conventional coordinates. For example, you may want to define displacements that only happen along a particular direction
|
private |
|
private |
AnisoValTraits. Describes the type of DoF, and can convert Cartesian symmetry representations into the appropriate representation