CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::SymRepTools_v2 Namespace Reference

Namespaces

 IrrepDecompositionImpl
 
 IrrepWedgeImpl
 

Classes

struct  IrrepInfo
 
struct  IrrepDecomposition
 Performs irreducible subspace construction and symmetrization. More...
 
struct  IrrepWedge
 An irreducible wedge in an irreducible vector space. More...
 
class  SubWedge
 
struct  _RealType
 
struct  _RealType< std::vector< T > >
 
struct  _RealType< Eigen::Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > >
 
struct  VectorSpaceSymReport
 Summary of data associated with the action of a symmetry group on a vector space. More...
 
class  VectorInvariants
 Used for generating SimpleOrbit of high symmetry direction vectors. More...
 
struct  VectorSymCompare
 Used for constructing SimpleOrbit of high symmetry direction vectors. More...
 

Typedefs

typedef std::vector< Eigen::MatrixXd > MatrixRep
 
typedef std::set< IndexGroupIndices
 
typedef std::set< GroupIndicesGroupIndicesOrbit
 
typedef std::vector< GroupIndicesOrbitGroupIndicesOrbitVector
 
template<typename T >
using _Real = typename _RealType< T >::Type
 

Functions

IrrepInfo make_dummy_irrep_info (Eigen::MatrixXcd const &trans_mat)
 Construct a "dummy" IrrepInfo with user specified transformtion matrix. More...
 
IrrepInfo make_dummy_irrep_info (Eigen::MatrixXd const &trans_mat)
 Construct a "dummy" IrrepInfo with user specified transformtion matrix. More...
 
Eigen::MatrixXd full_trans_mat (std::vector< IrrepInfo > const &irreps)
 Assumes that irreps are real, and concatenates their individual trans_mats to form larger trans_mat. More...
 
IrrepWedge make_dummy_irrep_wedge (Eigen::MatrixXd const &axes)
 Construct a "dummy" IrrepWedge with user specified axes. More...
 
SubWedge make_dummy_subwedge (Eigen::MatrixXd const &axes)
 Makes a "dummy" SubWedge from a single "dummy" IrrepWedge with given axes. More...
 
std::vector< IrrepWedgemake_irrep_wedges (IrrepDecomposition const &irrep_decomposition)
 Make IrrepWedges from an IrrepDecomposition. More...
 
std::vector< SubWedgemake_symrep_subwedges (IrrepDecomposition const &irrep_decomposition)
 Find full irreducible wedge of a group-represented vector space, as a vector of SubWedges, from an IrrepDecomposition. More...
 
multivector< Eigen::VectorXcd >::X< 2 > make_irrep_special_directions (MatrixRep const &rep, GroupIndices const &head_group, Eigen::MatrixXcd const &irrep_subspace, double vec_compare_tol, GroupIndicesOrbitVector const &cyclic_subgroups, GroupIndicesOrbitVector const &all_subgroups, bool use_all_subgroups=false)
 Find high-symmetry directions in a irreducible space. More...
 
Eigen::MatrixXcd make_irrep_symmetrizer_matrix (multivector< Eigen::VectorXcd >::X< 2 > const &irrep_special_directions, Eigen::MatrixXcd const &irrep_subspace, double vec_compare_tol)
 Make an irreducible space symmetrizer matrix using special directions. More...
 
template<typename Derived >
_Real< Derived > to_real (Eigen::MatrixBase< Derived > const &mat)
 
template<typename T >
_Real< std::vector< T > > to_real (std::vector< T > const &vec)
 
VectorSpaceSymReport vector_space_sym_report (IrrepDecomposition const &irrep_decomposition, bool calc_wedges=false)
 Construct VectorSpaceSymReport. More...
 
Eigen::MatrixXcd vector_space_prepare (Eigen::MatrixXcd const &vector_space, double tol)
 Vector space preparation for comparison. More...
 
Eigen::MatrixXd vector_space_prepare (Eigen::MatrixXd const &vector_space, double tol)
 Vector space preparation for comparison. More...
 

Typedef Documentation

◆ _Real

template<typename T >
using CASM::SymRepTools_v2::_Real = typedef typename _RealType<T>::Type

Definition at line 16 of file to_real.hh.

◆ GroupIndices

◆ GroupIndicesOrbit

◆ GroupIndicesOrbitVector

◆ MatrixRep

typedef std::vector< Eigen::MatrixXd > CASM::SymRepTools_v2::MatrixRep

Definition at line 14 of file IrrepDecomposition.hh.

Function Documentation

◆ full_trans_mat()

Eigen::MatrixXd CASM::SymRepTools_v2::full_trans_mat ( std::vector< IrrepInfo > const &  irreps)

Assumes that irreps are real, and concatenates their individual trans_mats to form larger trans_mat.

Definition at line 43 of file IrrepDecomposition.cc.

◆ make_dummy_irrep_info() [1/2]

IrrepInfo CASM::SymRepTools_v2::make_dummy_irrep_info ( Eigen::MatrixXcd const &  trans_mat)

Construct a "dummy" IrrepInfo with user specified transformtion matrix.

Construct a "dummy" IrrepInfo with user specified transformtion matrix

The "dummy" IrrepInfo is constructed with specified transformtion matrix and character vector of [(dim,0)] where 'dim' is the dimension of irrep (number of rows of trans_mat)

Definition at line 24 of file IrrepDecomposition.cc.

◆ make_dummy_irrep_info() [2/2]

IrrepInfo CASM::SymRepTools_v2::make_dummy_irrep_info ( Eigen::MatrixXd const &  trans_mat)

Construct a "dummy" IrrepInfo with user specified transformtion matrix.

Construct a "dummy" IrrepInfo with user specified transformtion matrix

The "dummy" IrrepInfo is constructed with specified transformtion matrix and character vector of [(dim,0)] where 'dim' is the dimension of irrep (number of rows of trans_mat)

Definition at line 35 of file IrrepDecomposition.cc.

◆ make_dummy_irrep_wedge()

IrrepWedge CASM::SymRepTools_v2::make_dummy_irrep_wedge ( Eigen::MatrixXd const &  axes)

Construct a "dummy" IrrepWedge with user specified axes.

Construct a "dummy" IrrepWedge with user specified axes

Note:

  • Sets the multiplicity for each IrrepWedge axis to 1. This means each direction in the columns of axes are unique and have no orbits
  • This is a way to directly specify a custom enumeration grid for methods that are written to enumerate on a vector of SubWedge spaces (i.e. ConfigEnumStrain).

Definition at line 67 of file IrrepWedge.cc.

◆ make_dummy_subwedge()

SubWedge CASM::SymRepTools_v2::make_dummy_subwedge ( Eigen::MatrixXd const &  axes)

Makes a "dummy" SubWedge from a single "dummy" IrrepWedge with given axes.

Makes a "dummy" SubWedge from a single "dummy" IrrepWedge with given axes

Note:

  • Sets the multiplicity for each IrrepWedge axis to 1. This means each direction in the columns of axes are unique and have no orbits
  • This is a way to directly specify a custom enumeration grid for methods that are written to enumerate on a vector of SubWedge spaces (i.e. ConfigEnumStrain).

Definition at line 101 of file IrrepWedge.cc.

◆ make_irrep_special_directions()

multivector< Eigen::VectorXcd >::X< 2 > CASM::SymRepTools_v2::make_irrep_special_directions ( MatrixRep const &  rep,
GroupIndices const &  head_group,
Eigen::MatrixXcd const &  irrep_subspace,
double  vec_compare_tol,
GroupIndicesOrbitVector const &  cyclic_subgroups,
GroupIndicesOrbitVector const &  all_subgroups,
bool  use_all_subgroups 
)

Find high-symmetry directions in a irreducible space.

Find high-symmetry directions in a irreducible space

Parameters
repMatrix representation of head_group, this defines group action on the underlying vector space
head_groupGroup for which the irreps are to be found
subspaceA column vector matrix representing a basis of the irreducible space in which high symmetry directions will be found. The number of rows must equal rep.dim(), the number of columns is equal to the dimension of the irreducible space.
vec_compare_tolTolerance for elementwise floating-point comparisons of vectors
all_subgroupsDenotes whether all subgroups of head_group should be used for symmetry analysis (if true), or only cyclic subgroups (if false). Cyclic subgroups are those found by taking a group element and multiplying it by itself until a group is generated.
Returns
Set of directions in the vector space on which 'rep' is defined, such that each direction is invariant to a unique subgroup of 'head_group' (i.e., no other direction in the space, except the negative of that direction, is invariant to that subgroup). The value result[i] is an orbit of symmetrically equivalent directions, and the value result[i][j] is an individual direction (Eigen::VectorXcd). Direction vectors are normalized to unit length. The total set of all directions is guaranteed to span the space.
Exceptions
ifrep is not an irreducible representation

Definition at line 39 of file Symmetrizer.cc.

◆ make_irrep_symmetrizer_matrix()

Eigen::MatrixXcd CASM::SymRepTools_v2::make_irrep_symmetrizer_matrix ( multivector< Eigen::VectorXcd >::X< 2 > const &  irrep_special_directions,
Eigen::MatrixXcd const &  irrep_subspace,
double  vec_compare_tol 
)

Make an irreducible space symmetrizer matrix using special directions.

Definition at line 101 of file Symmetrizer.cc.

◆ make_irrep_wedges()

std::vector< IrrepWedge > CASM::SymRepTools_v2::make_irrep_wedges ( IrrepDecomposition const &  irrep_decomposition)

Make IrrepWedges from an IrrepDecomposition.

Make IrrepWedges from an IrrepDecomposition

Returns
A vector of IrrepWedge. The IrrepWedge axes have number of cols == irrep dimension and number of rows equal to the full space dimension.

Definition at line 109 of file IrrepWedge.cc.

◆ make_symrep_subwedges()

std::vector< SubWedge > CASM::SymRepTools_v2::make_symrep_subwedges ( IrrepDecomposition const &  irrep_decomposition)

Find full irreducible wedge of a group-represented vector space, as a vector of SubWedges, from an IrrepDecomposition.

Definition at line 172 of file IrrepWedge.cc.

◆ to_real() [1/2]

template<typename Derived >
_Real<Derived> CASM::SymRepTools_v2::to_real ( Eigen::MatrixBase< Derived > const &  mat)

Definition at line 29 of file to_real.hh.

◆ to_real() [2/2]

template<typename T >
_Real<std::vector<T> > CASM::SymRepTools_v2::to_real ( std::vector< T > const &  vec)

Definition at line 34 of file to_real.hh.

◆ vector_space_prepare() [1/2]

Eigen::MatrixXcd CASM::SymRepTools_v2::vector_space_prepare ( Eigen::MatrixXcd const &  vector_space,
double  tol 
)

Vector space preparation for comparison.

Vector space preparation for comparison

  • Attempts to find a sparse set of spanning vectors, and sort them so that subspace matrix is nearly upper triangular (if possible)
  • Also enures that first nonzero element of each row (if there is one) is positive

Definition at line 109 of file VectorSymCompare_v2.cc.

◆ vector_space_prepare() [2/2]

Eigen::MatrixXd CASM::SymRepTools_v2::vector_space_prepare ( Eigen::MatrixXd const &  vector_space,
double  tol 
)

Vector space preparation for comparison.

Vector space preparation for comparison

  • Attempts to find a sparse set of spanning vectors, and sort them so that subspace matrix is nearly upper triangular (if possible)
  • Also enures that first nonzero element of each row (if there is one) is positive

Definition at line 120 of file VectorSymCompare_v2.cc.

◆ vector_space_sym_report()

VectorSpaceSymReport CASM::SymRepTools_v2::vector_space_sym_report ( IrrepDecomposition const &  irrep_decomposition,
bool  calc_wedges 
)

Construct VectorSpaceSymReport.

Construct VectorSpaceSymReport

Parameters
irrep_decompositionAn IrrepDecomposition
calc_wedgesIf true, 'irreducible_wedge' is constructed. If false, 'irreducible_wedge' is empty.

Definition at line 12 of file VectorSpaceSymReport.cc.