1 #ifndef SYMOPREPRESENTATION_HH
2 #define SYMOPREPRESENTATION_HH
15 class SymBasisPermute;
22 class SymOpRepresentation {
131 return A.index() < B.index();
135 jsonParser &
to_json(
const SymOpRepresentation *rep, jsonParser &json);
137 void from_json(SymOpRepresentation *rep,
const jsonParser &json);
virtual SymOpRepresentation * copy() const =0
Make copy of Derived object through Base-class interface.
void set_rep(SymGroupRepID _rep_ID, const SymOpRepresentation &op_rep) const
set representation for SymOp corresponding to _rep_ID
virtual Eigen::MatrixXd const * get_MatrixXd() const
void from_json(ClexDescription &desc, const jsonParser &json)
Type-safe ID object for communicating and accessing Symmetry representation info. ...
bool has_valid_master() const
check if this representation is registered with a MasterSymGroup
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
MasterSymGroup const * m_master_group
Pointer to the MasterSymGroup where prototype of this SymOp lives.
SymBasisPermute describes how a symmetry operation permutes atoms in a basis.
Index index() const
Index of this operation within the master_group.
SymBasisPermute const * get_basis_permute_rep(SymGroupRepID _rep_ID) const
get pointer to BasisPermute representation corresponding to _rep_ID
SymGroupRepID m_rep_ID
ID of this representation within the master_group. Default is uninitialized.
Index m_op_index
Index into MasterSymGroup that specifies the operation.
void set_identifiers(const MasterSymGroup &new_group, SymGroupRepID new_rep_ID)
Change m_master_group and determine op_index.
Permutation const * get_permutation_rep(SymGroupRepID _rep_ID) const
get pointer to permutation representation corresponding to _rep_ID
virtual double character() const
Calculates character of the representation (if well-defined)
virtual SymBasisPermute const * get_ucc_permutation() const
Eigen::MatrixXd const * get_matrix_rep(SymGroupRepID _rep_ID) const
get pointer to matrix representation corresponding to rep_ID
virtual Permutation const * get_permutation() const
virtual jsonParser & to_json(jsonParser &json) const =0
EigenIndex Index
For long integer indexing:
virtual ~SymOpRepresentation()
const MasterSymGroup & master_group() const
const access of head group
Index ind_inverse() const
Get the operation index of the inverse of this operation, using the master_group's multiplication tab...
SymOpRepresentation is the base class for anything describes a symmetry operation.
SymGroupRepID rep_ID() const
ID of representation that this operation belongs to within the master_group.
bool operator()(const SymOpRepresentation &A, const SymOpRepresentation &B) const
Index ind_prod(const SymOpRepresentation &RHS) const
Array< Eigen::MatrixXd const * > get_matrix_reps(Array< SymGroupRepID > _rep_IDs) const
get array of pointers to matrix representations for representations corresponding to _rep_IDs ...
SymOpRepresentation(MasterSymGroup const *_master_group_ptr, SymGroupRepID _rep_ID, Index _op_index)
Protected constructor to allow internal construction of masterless symops.
SymOpRepresentation(const MasterSymGroup &_master_group, SymGroupRepID _rep_ID, Index _op_index)
Basic std::vector like container (deprecated)
virtual void from_json(const jsonParser &json)=0