CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SymGroupRep.hh>
SymGroupRep is an alternative representation of a SymGroup for something other than real space. There is a one-to-one correspondence of SymOps in some SymGroup with the SymOpRepresentations in SymGroupRep SymGroupRep does not know or care about the specifics of what the SymOpRepresentations describe or how they are implemented.
Definition at line 31 of file SymGroupRep.hh.
Public Types | |
enum | NullInitializer { NO_HOME } |
typedef SymGroupRepHandle | RemoteHandle |
Public Member Functions | |
SymGroupRep ()=delete | |
SymGroupRep (const SymGroup &_head, SymGroupRepID _rep_ID=SymGroupRepID()) | |
SymGroupRep (SymGroupRep::NullInitializer init, Index _size) | |
Standalone constructor Use this constructor when MasterSymGroup is unknown or doesn't exist Ex: SymGroupRep my_rep(SymGroupRep::NO_HOME, 48);. More... | |
SymGroupRep (const SymGroupRep &RHS) | |
explicit copy constructor Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations More... | |
~SymGroupRep () | |
explicit destructor Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations More... | |
const MasterSymGroup & | master_group () const |
Reference to MasterSymGroup for which this SymGroupRep is a group representation If a MasterSymGroup contains this SymGroupRep, it must be the master_group() of this SymGroupRep A SymGroupRep that is not contained in a MasterSymGroup may (and often does) still have a valid master_group() More... | |
Index | dim () const |
Matrix dimension of representation. More... | |
bool | has_valid_master () const |
Returns true if this SymGroupRep has valid pointer to a MasterSymGroup. More... | |
void | set_master_group (const MasterSymGroup &master, const SymGroupRepID &_rep_ID) |
Assign ma. More... | |
void | set_rep (Index op_index, const SymOpRepresentation &new_rep) |
Sets the representation of operation at entry 'op_index' of this group representation Throws if this group representation already contains entry at 'op_index'. More... | |
void | set_rep (const SymOpRepresentation &base_rep, const SymOpRepresentation &new_rep) |
Sets the representation of operation at entry 'base_rep.index()' of this group representation Equivalent to this->set_rep(base_rep.index(),new_rep) Throws if this group representation already contains entry at 'base_rep.index()'. More... | |
void | set_rep (const SymOp &base_rep, const SymOpRepresentation &new_rep) |
Sets the representation of operation at entry 'base_rep.index()' of this group representation Throws if this group representation already contains entry at 'base_rep.index()' If base_rep.index() is invalid, it will attempt to find base_rep in the master_group() to resolve index. More... | |
SymGroupRep & | operator= (const SymGroupRep &RHS) |
explicit assignment operator Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations More... | |
SymGroupRep * | copy () const |
Returns pointer to unmanaged copy of this SymGroupRep. More... | |
Eigen::MatrixXd const * | MatrixXd (Index i) const |
pointer to MatrixXd corresponding to SymOpRepresentation at entry 'i' of this SymGroupRep Returns nullptr if entry 'i' is uninitialized or if entry 'i' cannot be represented as a Matrix More... | |
Eigen::MatrixXd const * | MatrixXd (const SymOpRepresentation &_op) const |
pointer to MatrixXd corresponding to SymOpRepresentation at entry '_op.index()' of this SymGroupRep Returns nullptr if entry '_op.index()' is uninitialized or if entry '_op.index()' cannot be represented as a Matrix More... | |
Permutation const * | permutation (Index i) const |
pointer to Permutation corresponding to SymOpRepresentation at entry 'i' of this SymGroupRep Returns nullptr if entry 'i' is uninitialized or if entry 'i' cannot be represented as a Permutation More... | |
Permutation const * | permutation (const SymOpRepresentation &_op) const |
pointer to Permutation corresponding to SymOpRepresentation at entry '_op.index()' of this SymGroupRep Returns nullptr if entry '_op.index()' is uninitialized or if entry '_op.index()' cannot be represented as a Permutation More... | |
SymGroupRepID | symrep_ID () const |
Returns SymGroupRepID of this SymGroupRep in its master_group. If this is not contained in a master_group, symrep_ID().empty()==true. More... | |
Private Member Functions | |
void | clear () |
SymGroupRep (const MasterSymGroup *_home) | |
Private Attributes | |
SymGroupRepID | m_rep_ID |
rep_ID is unique identifier of a specific SymGroupRep instantiation More... | |
MasterSymGroup const * | m_master_group |
Pointer to the home_group that generated this SymGroupRep. More... | |
Friends | |
class | SymGroup |
Definition at line 35 of file SymGroupRep.hh.
SymGroupRep::NO_HOME is safeguard to prevent usage of this constructor when full constructor should be used
Enumerator | |
---|---|
NO_HOME |
Definition at line 39 of file SymGroupRep.hh.
|
delete |
|
inline |
Definition at line 44 of file SymGroupRep.hh.
|
inline |
Standalone constructor Use this constructor when MasterSymGroup is unknown or doesn't exist Ex: SymGroupRep my_rep(SymGroupRep::NO_HOME, 48);.
Definition at line 58 of file SymGroupRep.hh.
CASM::SymGroupRep::SymGroupRep | ( | const SymGroupRep & | RHS | ) |
explicit copy constructor Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations
Definition at line 19 of file SymGroupRep.cc.
CASM::SymGroupRep::~SymGroupRep | ( | ) |
explicit destructor Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations
Definition at line 26 of file SymGroupRep.cc.
|
inlineprivate |
Pointer version of constructor is private for internal construction of master-less representations
Definition at line 167 of file SymGroupRep.hh.
|
private |
Definition at line 137 of file SymGroupRep.cc.
|
inline |
Returns pointer to unmanaged copy of this SymGroupRep.
Definition at line 125 of file SymGroupRep.hh.
|
inline |
Matrix dimension of representation.
Definition at line 82 of file SymGroupRep.hh.
|
inline |
Returns true if this SymGroupRep has valid pointer to a MasterSymGroup.
Definition at line 86 of file SymGroupRep.hh.
|
inline |
Reference to MasterSymGroup for which this SymGroupRep is a group representation If a MasterSymGroup contains this SymGroupRep, it must be the master_group() of this SymGroupRep A SymGroupRep that is not contained in a MasterSymGroup may (and often does) still have a valid master_group()
Definition at line 76 of file SymGroupRep.hh.
Eigen::MatrixXd const * CASM::SymGroupRep::MatrixXd | ( | const SymOpRepresentation & | _op | ) | const |
pointer to MatrixXd corresponding to SymOpRepresentation at entry '_op.index()' of this SymGroupRep Returns nullptr if entry '_op.index()' is uninitialized or if entry '_op.index()' cannot be represented as a Matrix
Definition at line 150 of file SymGroupRep.cc.
Eigen::MatrixXd const * CASM::SymGroupRep::MatrixXd | ( | Index | i | ) | const |
pointer to MatrixXd corresponding to SymOpRepresentation at entry 'i' of this SymGroupRep Returns nullptr if entry 'i' is uninitialized or if entry 'i' cannot be represented as a Matrix
Definition at line 144 of file SymGroupRep.cc.
SymGroupRep & CASM::SymGroupRep::operator= | ( | const SymGroupRep & | RHS | ) |
explicit assignment operator Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations
Definition at line 30 of file SymGroupRep.cc.
Permutation const * CASM::SymGroupRep::permutation | ( | const SymOpRepresentation & | _op | ) | const |
pointer to Permutation corresponding to SymOpRepresentation at entry '_op.index()' of this SymGroupRep Returns nullptr if entry '_op.index()' is uninitialized or if entry '_op.index()' cannot be represented as a Permutation
Definition at line 163 of file SymGroupRep.cc.
Permutation const * CASM::SymGroupRep::permutation | ( | Index | i | ) | const |
pointer to Permutation corresponding to SymOpRepresentation at entry 'i' of this SymGroupRep Returns nullptr if entry 'i' is uninitialized or if entry 'i' cannot be represented as a Permutation
Definition at line 157 of file SymGroupRep.cc.
void CASM::SymGroupRep::set_master_group | ( | const MasterSymGroup & | master, |
const SymGroupRepID & | _rep_ID | ||
) |
Assign ma.
Definition at line 47 of file SymGroupRep.cc.
void CASM::SymGroupRep::set_rep | ( | const SymOp & | base_rep, |
const SymOpRepresentation & | new_rep | ||
) |
Sets the representation of operation at entry 'base_rep.index()' of this group representation Throws if this group representation already contains entry at 'base_rep.index()' If base_rep.index() is invalid, it will attempt to find base_rep in the master_group() to resolve index.
base_rep | SymOp corresponding to an operation in master_group() |
new_rep | New representation to be recorded in this SymGroupRep for operation at entry 'base_rep.endex()' of master_group() |
Definition at line 72 of file SymGroupRep.cc.
void CASM::SymGroupRep::set_rep | ( | const SymOpRepresentation & | base_rep, |
const SymOpRepresentation & | new_rep | ||
) |
Sets the representation of operation at entry 'base_rep.index()' of this group representation Equivalent to this->set_rep(base_rep.index(),new_rep) Throws if this group representation already contains entry at 'base_rep.index()'.
base_rep | Fully initialized SymOpRepresentation that has valid 'base_rep.index()' value |
new_rep | New representation to be recorded in this SymGroupRep for operation at entry 'base_rep.endex()' of master_group() |
Definition at line 90 of file SymGroupRep.cc.
void CASM::SymGroupRep::set_rep | ( | Index | op_index, |
const SymOpRepresentation & | new_rep | ||
) |
Sets the representation of operation at entry 'op_index' of this group representation Throws if this group representation already contains entry at 'op_index'.
op_index | Index of group operation to be set |
new_rep | New representation to be recorded in this SymGrouprep for operation at entry 'op_index' of master_group() |
Definition at line 114 of file SymGroupRep.cc.
|
inline |
Returns SymGroupRepID of this SymGroupRep in its master_group. If this is not contained in a master_group, symrep_ID().empty()==true.
Definition at line 151 of file SymGroupRep.hh.
|
friend |
Definition at line 33 of file SymGroupRep.hh.
|
private |
Pointer to the home_group that generated this SymGroupRep.
Definition at line 160 of file SymGroupRep.hh.
|
mutableprivate |
rep_ID is unique identifier of a specific SymGroupRep instantiation
Definition at line 157 of file SymGroupRep.hh.