CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::SymGroupRep Class Reference

#include <SymGroupRep.hh>

+ Inheritance diagram for CASM::SymGroupRep:

Detailed Description

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 MasterSymGroupmaster_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...
 
SymGroupRepoperator= (const SymGroupRep &RHS)
 explicit assignment operator Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations More...
 
SymGroupRepcopy () 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
 

Member Typedef Documentation

◆ RemoteHandle

Member Enumeration Documentation

◆ NullInitializer

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.

Constructor & Destructor Documentation

◆ SymGroupRep() [1/5]

CASM::SymGroupRep::SymGroupRep ( )
delete

◆ SymGroupRep() [2/5]

CASM::SymGroupRep::SymGroupRep ( const SymGroup _head,
SymGroupRepID  _rep_ID = SymGroupRepID() 
)
inline

Definition at line 44 of file SymGroupRep.hh.

◆ SymGroupRep() [3/5]

CASM::SymGroupRep::SymGroupRep ( SymGroupRep::NullInitializer  init,
Index  _size 
)
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.

◆ SymGroupRep() [4/5]

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.

◆ ~SymGroupRep()

CASM::SymGroupRep::~SymGroupRep ( )

explicit destructor Necessary because SymGroupRep directly manages heap-allocated SymOpRepresentations

Definition at line 26 of file SymGroupRep.cc.

◆ SymGroupRep() [5/5]

CASM::SymGroupRep::SymGroupRep ( const MasterSymGroup _home)
inlineprivate

Pointer version of constructor is private for internal construction of master-less representations

Definition at line 167 of file SymGroupRep.hh.

Member Function Documentation

◆ clear()

void CASM::SymGroupRep::clear ( )
private

Definition at line 137 of file SymGroupRep.cc.

◆ copy()

SymGroupRep* CASM::SymGroupRep::copy ( ) const
inline

Returns pointer to unmanaged copy of this SymGroupRep.

Definition at line 125 of file SymGroupRep.hh.

◆ dim()

Index CASM::SymGroupRep::dim ( ) const
inline

Matrix dimension of representation.

Definition at line 82 of file SymGroupRep.hh.

◆ has_valid_master()

bool CASM::SymGroupRep::has_valid_master ( ) const
inline

Returns true if this SymGroupRep has valid pointer to a MasterSymGroup.

Definition at line 86 of file SymGroupRep.hh.

◆ master_group()

const MasterSymGroup& CASM::SymGroupRep::master_group ( ) const
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.

◆ MatrixXd() [1/2]

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.

◆ MatrixXd() [2/2]

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.

◆ operator=()

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() [1/2]

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() [2/2]

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.

◆ set_master_group()

void CASM::SymGroupRep::set_master_group ( const MasterSymGroup master,
const SymGroupRepID _rep_ID 
)

Assign ma.

Definition at line 47 of file SymGroupRep.cc.

◆ set_rep() [1/3]

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.

Parameters
base_repSymOp corresponding to an operation in master_group()
new_repNew 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.

◆ set_rep() [2/3]

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()'.

Parameters
base_repFully initialized SymOpRepresentation that has valid 'base_rep.index()' value
new_repNew 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.

◆ set_rep() [3/3]

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'.

Parameters
op_indexIndex of group operation to be set
new_repNew representation to be recorded in this SymGrouprep for operation at entry 'op_index' of master_group()

Definition at line 114 of file SymGroupRep.cc.

◆ symrep_ID()

SymGroupRepID CASM::SymGroupRep::symrep_ID ( ) const
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.

Friends And Related Function Documentation

◆ SymGroup

friend class SymGroup
friend

Definition at line 33 of file SymGroupRep.hh.

Member Data Documentation

◆ m_master_group

MasterSymGroup const* CASM::SymGroupRep::m_master_group
private

Pointer to the home_group that generated this SymGroupRep.

Definition at line 160 of file SymGroupRep.hh.

◆ m_rep_ID

SymGroupRepID CASM::SymGroupRep::m_rep_ID
mutableprivate

rep_ID is unique identifier of a specific SymGroupRep instantiation

Definition at line 157 of file SymGroupRep.hh.


The documentation for this class was generated from the following files: