31 for(
Index i = 0; i < _rep_IDs.
size(); i++) {
51 for(i = 0; i < trep.size(); i++) {
58 if(i == new_group.
size())
77 assert(
has_valid_master() &&
"In SymOpRepresentation::ind_inverse(), head_group is uninitialized!!");
84 assert(
has_valid_master() &&
"In SymOpRepresentation::ind_prod(), head_group is uninitialized!!");
101 if(json[
"SymOpRep_type"] ==
"SymPermutation") {
112 else if(json[
"SymOpRep_type"] ==
"SymMatrixXd") {
123 else if(json[
"SymOpRep_type"] ==
"SymOp") {
134 std::cout <<
"Error in 'void from_json(SymOpRepresentation *rep, const jsonParser &json)'" << std::endl;
135 std::cout <<
"Unrecognized 'SymOpRep_type': '" << json[
"SymOpRep_type"] <<
"'." << std::endl;
136 std::cout <<
"Options are: 'SymPermutation', 'SymMatrixXd', or 'SymOp'." << std::endl;
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 empty() const
Returns true if SymGroupRepID has not been initialized with valid group_index or rep_index.
bool has_valid_master() const
check if this representation is registered with a MasterSymGroup
void push_back(const T &toPush)
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 ind_inverse(Index i) const
Get index of operation that is inverse of operation at(i)
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
SymPermutation describes how a symmetry operation permutes a list of 'things' For example...
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
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
virtual Permutation const * get_permutation() const
virtual jsonParser & to_json(jsonParser &json) const =0
EigenIndex Index
For long integer indexing:
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.
Generalized symmetry matrix representation for arbitrary dimension Can be used to describe applicatio...
SymGroupRep is an alternative representation of a SymGroup for something other than real space...
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 ...
Index ind_prod(Index i, Index j) const
Get index of operation that is result of multiplication of at(i)*at(j)
Basic std::vector like container (deprecated)
SymGroupRep const & representation(SymGroupRepID i) const
Const access of alternate Representations of a SymGroup.
void set_rep(const SymOpRepresentation &base_rep, const SymOpRepresentation &new_rep) const