1 #ifndef SYMOPREPRESENTATION_HH
2 #define SYMOPREPRESENTATION_HH
19 class SymBasisPermute;
55 std::unique_ptr<SymOpRepresentation>
inverse()
const;
125 throw std::runtime_error(
126 "Attempting to use unimplemented SymOpRepresentation::inverse_impl()");
Basic std::vector like container (deprecated)
SymBasisPermute describes how a symmetry operation permutes atoms in a basis.
Type-safe ID object for communicating and accessing Symmetry representation info.
SymOpRepresentation is the base class for anything describes a symmetry operation.
SymOpRepresentation(const MasterSymGroup &_master_group, SymGroupRepID _rep_ID, Index _op_index)
virtual SymOpRepresentation * inverse_impl() const
SymOpRepresentation(MasterSymGroup const *_master_group_ptr, SymGroupRepID _rep_ID, Index _op_index)
Protected constructor to allow internal construction of masterless symops.
virtual ~SymOpRepresentation()
SymBasisPermute const * get_basis_permute_rep(SymGroupRepID _rep_ID) const
get pointer to BasisPermute representation corresponding to _rep_ID
Array< Eigen::MatrixXd const * > get_matrix_reps(Array< SymGroupRepID > _rep_IDs) const
MasterSymGroup const * m_master_group
Pointer to the MasterSymGroup where prototype of this SymOp lives.
SymOpRepresentation const & representation(SymGroupRepID _rep_ID) const
const MasterSymGroup & master_group() const
const access of head group
Index ind_prod(const SymOpRepresentation &RHS) const
virtual SymOpRepresentation * copy() const =0
Make copy of Derived object through Base-class interface.
SymGroupRepID rep_ID() const
virtual Permutation const * permutation() const
void set_identifiers(const MasterSymGroup &new_group, SymGroupRepID new_rep_ID)
Change m_master_group and determine op_index.
void set_rep(SymGroupRepID _rep_ID, const SymOpRepresentation &op_rep) const
set representation for SymOp corresponding to _rep_ID
Eigen::MatrixXd const * get_matrix_rep(SymGroupRepID _rep_ID) const
get pointer to matrix representation corresponding to rep_ID
Index ind_inverse() const
virtual SymBasisPermute const * ucc_permutation() const
bool has_valid_master() const
check if this representation is registered with a MasterSymGroup
Index m_op_index
Index into MasterSymGroup that specifies the operation.
Index master_group_index() const
Index of this operation within the master_group.
Permutation const * get_permutation_rep(SymGroupRepID _rep_ID) const
get pointer to permutation representation corresponding to _rep_ID
virtual Eigen::MatrixXd const * MatrixXd() const
virtual void _set_integral_tau()
virtual double character() const
Calculates character of the representation (if well-defined)
std::unique_ptr< SymOpRepresentation > inverse() const
INDEX_TYPE Index
For long integer indexing:
bool operator()(const SymOpRepresentation &A, const SymOpRepresentation &B) const