CASM  1.1.0
A Clusters Approach to Statistical Mechanics
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
SymRepTools.cc File Reference

Go to the source code of this file.

Classes

struct  CASM::Local::IrrepCompare
 
struct  CASM::Local::_RealType< std::vector< T > >
 
struct  CASM::Local::_RealType< Eigen::Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > >
 

Namespaces

 CASM
 Main CASM namespace.
 
 CASM::Local
 
 CASM::SymRepTools
 

Typedefs

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

Functions

template<typename Derived >
_Real< Derived > CASM::Local::_real (Eigen::MatrixBase< Derived > const &mat)
 
template<typename T >
_Real< std::vector< T > > CASM::Local::_real (std::vector< T > const &vec)
 
static Eigen::MatrixXd CASM::Local::_block_shape_matrix (SymGroupRep const &_rep, SymGroup const &head_group)
 Matrix such that result(i,j) is sum of squares over 'p' of op_rep[p].matrix(i,j). 'p' only spans operations in head_group The resulting matrix reveals the block_diagonalization of SymGroupRep _rep for the subset of operations contained in head_group. More...
 
static Eigen::MatrixXcd CASM::Local::_irrep_symmetrizer_from_directions (multivector< Eigen::VectorXcd >::X< 2 > const &special_directions, Eigen::Ref< const Eigen::MatrixXcd > const &_subspace, double vec_compare_tol)
 
static SymRepTools::IrrepWedge CASM::Local::_wedge_from_pseudo_irrep (SymRepTools::IrrepInfo const &irrep, SymGroupRep const &_rep, SymGroup const &head_group)
 
bool CASM::Local::_rep_check (SymGroupRep const &_rep, SymGroup const &head_group, bool verbose)
 
template<typename T >
SymRepTools::IrrepInfo CASM::Local::_subspace_to_full_space (SymRepTools::IrrepInfo const &irrep, Eigen::MatrixBase< T > const &subspace)
 
Index CASM::num_blocks (SymGroupRep const &_rep, const SymGroup &head_group)
 counts number of nonzero blocks in matrix representation of head_group as specified by _rep Reveals number of invariant subspaces (with respect to head_group) that comprise the vector space supporting _rep More...
 
SymRepTools::Symmetrizer CASM::irrep_symmetrizer (SymGroupRep const &_rep, const SymGroup &head_group, double vec_compare_tol)
 
SymRepTools::Symmetrizer CASM::irrep_symmetrizer (SymGroupRep const &_rep, const SymGroup &head_group, Eigen::Ref< const Eigen::MatrixXcd > const &_subspace, double vec_compare_tol)
 
Eigen::MatrixXd CASM::full_trans_mat (std::vector< SymRepTools::IrrepInfo > const &irreps)
 Assumes that irreps are real, and concatenates their individual trans_mats to form larger trans_mat. More...
 
multivector< Eigen::VectorXd >::X< 3 > CASM::special_total_directions (SymGroupRep const &_rep, const SymGroup &head_group)
 finds high-symmetry directions within vector space supporting _rep, wrt symmetry of head_group More...
 
multivector< Eigen::VectorXcd >::X< 2 > CASM::special_irrep_directions (SymGroupRep const &_rep, SymGroup const &head_group, double vec_compare_tol)
 Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep. More...
 
multivector< Eigen::VectorXcd >::X< 2 > CASM::special_irrep_directions (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXcd > const &_subspace, double vec_compare_tol, bool all_subgroups=false)
 Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep. More...
 
std::vector< std::vector< Eigen::MatrixXd > > CASM::special_subspaces (SymGroupRep const &_rep, const SymGroup &head_group)
 finds high-symmetry subspaces within vector space supporting _rep, wrt symmetry of head_group High-symmetry subspaces are closed under the action of a nontrivial subgroup of head_group, without spanning the entire vector space supporting _rep More...
 
bool CASM::is_irrep (SymGroupRep const &_rep, const SymGroup &head_group)
 Returns true if _rep is irreducible wrt head_group (does not use character table information) More...
 
VectorSpaceSymReport CASM::vector_space_sym_report (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace, bool calc_wedges=false)
 Construct the VectorSpaceSymReport for. More...
 
std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, SymRepTools::SymmetrizerFunction const &symmetrizer_func, Eigen::MatrixXd subspace, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, SymRepTools::SymmetrizerFunction const &symmetrizer_func, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
Eigen::MatrixXd CASM::irrep_trans_mat (SymGroupRep const &_rep, const SymGroup &head_group)
 Finds the transformation matrix that block-diagonalizes this representation of head_group into irrep blocks It does not rely on the character table, but instead utilizes a brute-force method This routine additionally orients the resulting basis vectors along high-symmetry directions of the vector space on which they are defined. More...
 
SymGroupRep CASM::subset_permutation_rep (const SymGroupRep &permute_rep, const std::vector< std::set< Index >> &subsets)
 
SymGroupRep CASM::permuted_direct_sum_rep (const SymGroupRep &permute_rep, const std::vector< SymGroupRep const * > &sum_reps)
 
SymGroupRep CASM::kron_rep (const SymGroupRep &LHS, const SymGroupRep &RHS)
 
std::vector< IrrepWedge > CASM::SymRepTools::irrep_wedges (SymGroup const &head_group, SymGroupRepID id, Eigen::Ref< const Eigen::MatrixXd > const &_subspace)
 
std::vector< IrrepWedge > CASM::SymRepTools::irrep_wedges (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace)
 
std::vector< SubWedge > CASM::SymRepTools::symrep_subwedges (SymGroup const &_group, SymGroupRepID id)
 
std::vector< SubWedge > CASM::SymRepTools::symrep_subwedges (SymGroup const &_group, SymGroupRepID id, Eigen::Ref< const Eigen::MatrixXd > const &_subspace)
 
std::vector< SubWedge > CASM::SymRepTools::symrep_subwedges (SymGroupRep const &_rep, SymGroup const &head_group)
 
std::vector< SubWedge > CASM::SymRepTools::symrep_subwedges (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace)