CASM  1.1.0
A Clusters Approach to Statistical Mechanics
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)