CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::SymPermutation Class Reference

#include <SymPermutation.hh>

+ Inheritance diagram for CASM::SymPermutation:

Detailed Description

SymPermutation describes how a symmetry operation permutes a list of 'things' For example, Coordinates in a Cluster, basis atoms in a Structure, Clusters in an Orbit, etc.

Definition at line 19 of file SymPermutation.hh.

Public Member Functions

 SymPermutation (const Array< Index > &init_permute)
 
 SymPermutation (const Permutation &init_permute)
 
double character () const override
 Calculates character of the representation (if well-defined) More...
 
SymOpRepresentationcopy () const override
 Return pointer to a copy of this SymPermutation. More...
 
Permutation const * get_permutation () const override
 Access the permutation array 'm_permute'. More...
 
Eigen::MatrixXd const * get_MatrixXd () const override
 Access the permutation matrix. More...
 
jsonParserto_json (jsonParser &json) const override
 
void from_json (const jsonParser &json) override
 
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 More...
 
Permutation const * get_permutation_rep (SymGroupRepID _rep_ID) const
 get pointer to permutation representation corresponding to _rep_ID More...
 
SymBasisPermute const * get_basis_permute_rep (SymGroupRepID _rep_ID) const
 get pointer to BasisPermute representation corresponding to _rep_ID More...
 
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 More...
 
void set_rep (SymGroupRepID _rep_ID, const SymOpRepresentation &op_rep) const
 set representation for SymOp corresponding to _rep_ID More...
 
void set_identifiers (const MasterSymGroup &new_group, SymGroupRepID new_rep_ID)
 Change m_master_group and determine op_index. More...
 
void set_identifiers (const MasterSymGroup &new_group, SymGroupRepID new_rep_ID, Index new_op_index)
 Set m_master_group, _rep_ID, and op_index. More...
 
const MasterSymGroupmaster_group () const
 const access of head group More...
 
bool has_valid_master () const
 check if this representation is registered with a MasterSymGroup More...
 
void invalidate_index ()
 
Index index () const
 Index of this operation within the master_group. More...
 
SymGroupRepID rep_ID () const
 ID of representation that this operation belongs to within the master_group. More...
 
Index ind_inverse () const
 Get the operation index of the inverse of this operation, using the master_group's multiplication table. More...
 
Index ind_prod (const SymOpRepresentation &RHS) const
 

Protected Attributes

MasterSymGroup const * m_master_group
 Pointer to the MasterSymGroup where prototype of this SymOp lives. More...
 
SymGroupRepID m_rep_ID
 ID of this representation within the master_group. Default is uninitialized. More...
 
Index m_op_index
 Index into MasterSymGroup that specifies the operation. More...
 

Private Member Functions

void _calc_mat () const
 Generate the matrix of permutation, when m_permute is known. More...
 

Private Attributes

Permutation m_permute
 
bool m_has_mat
 
Eigen::MatrixXd m_mat
 

Constructor & Destructor Documentation

CASM::SymPermutation::SymPermutation ( const Array< Index > &  init_permute)
inline

Initialize a SymPermutation with the permutation array. The corresponding matrix is generated automatically

Definition at line 23 of file SymPermutation.hh.

CASM::SymPermutation::SymPermutation ( const Permutation init_permute)
inline

Initialize a SymPermutation with the permutation array. The corresponding matrix is generated automatically

Definition at line 29 of file SymPermutation.hh.

Member Function Documentation

void CASM::SymPermutation::_calc_mat ( ) const
private

Generate the matrix of permutation, when m_permute is known.

Definition at line 24 of file SymPermutation.cc.

double CASM::SymPermutation::character ( ) const
overridevirtual

Calculates character of the representation (if well-defined)

Reimplemented from CASM::SymOpRepresentation.

Definition at line 8 of file SymPermutation.cc.

SymOpRepresentation* CASM::SymPermutation::copy ( ) const
inlineoverridevirtual

Return pointer to a copy of this SymPermutation.

Implements CASM::SymOpRepresentation.

Definition at line 36 of file SymPermutation.hh.

void CASM::SymPermutation::from_json ( const jsonParser json)
overridevirtual

re-throw exceptions

Implements CASM::SymOpRepresentation.

Definition at line 55 of file SymPermutation.cc.

SymBasisPermute const * CASM::SymOpRepresentation::get_basis_permute_rep ( SymGroupRepID  _rep_ID) const
inherited

get pointer to BasisPermute representation corresponding to _rep_ID

Definition at line 16 of file SymOpRepresentation.cc.

Eigen::MatrixXd const * CASM::SymOpRepresentation::get_matrix_rep ( SymGroupRepID  _rep_ID) const
inherited

get pointer to matrix representation corresponding to rep_ID

Definition at line 9 of file SymOpRepresentation.cc.

Array< Eigen::MatrixXd const * > CASM::SymOpRepresentation::get_matrix_reps ( Array< SymGroupRepID _rep_IDs) const
inherited

get array of pointers to matrix representations for representations corresponding to _rep_IDs

Definition at line 29 of file SymOpRepresentation.cc.

Eigen::MatrixXd const* CASM::SymPermutation::get_MatrixXd ( ) const
inlineoverridevirtual

Access the permutation matrix.

Reimplemented from CASM::SymOpRepresentation.

Definition at line 46 of file SymPermutation.hh.

Permutation const* CASM::SymPermutation::get_permutation ( ) const
inlineoverridevirtual

Access the permutation array 'm_permute'.

Reimplemented from CASM::SymOpRepresentation.

Definition at line 41 of file SymPermutation.hh.

Permutation const * CASM::SymOpRepresentation::get_permutation_rep ( SymGroupRepID  _rep_ID) const
inherited

get pointer to permutation representation corresponding to _rep_ID

Definition at line 22 of file SymOpRepresentation.cc.

virtual SymBasisPermute const* CASM::SymOpRepresentation::get_ucc_permutation ( ) const
inlinevirtualinherited

Reimplemented in CASM::SymBasisPermute.

Definition at line 50 of file SymOpRepresentation.hh.

bool CASM::SymOpRepresentation::has_valid_master ( ) const
inlineinherited

check if this representation is registered with a MasterSymGroup

Definition at line 83 of file SymOpRepresentation.hh.

Index CASM::SymOpRepresentation::ind_inverse ( ) const
inherited

Get the operation index of the inverse of this operation, using the master_group's multiplication table.

Definition at line 76 of file SymOpRepresentation.cc.

Index CASM::SymOpRepresentation::ind_prod ( const SymOpRepresentation RHS) const
inherited

Get the operation index of operation that is the product of this operation and

Parameters
RHS,usingthe master_group's multiplication table

Definition at line 83 of file SymOpRepresentation.cc.

Index CASM::SymOpRepresentation::index ( ) const
inlineinherited

Index of this operation within the master_group.

Definition at line 92 of file SymOpRepresentation.hh.

void CASM::SymOpRepresentation::invalidate_index ( )
inlineinherited

Definition at line 87 of file SymOpRepresentation.hh.

const MasterSymGroup& CASM::SymOpRepresentation::master_group ( ) const
inlineinherited

const access of head group

Definition at line 77 of file SymOpRepresentation.hh.

SymGroupRepID CASM::SymOpRepresentation::rep_ID ( ) const
inlineinherited

ID of representation that this operation belongs to within the master_group.

Definition at line 97 of file SymOpRepresentation.hh.

void CASM::SymOpRepresentation::set_identifiers ( const MasterSymGroup new_group,
SymGroupRepID  new_rep_ID 
)
inherited

Change m_master_group and determine op_index.

Definition at line 46 of file SymOpRepresentation.cc.

void CASM::SymOpRepresentation::set_identifiers ( const MasterSymGroup new_group,
SymGroupRepID  new_rep_ID,
Index  new_op_index 
)
inherited

Set m_master_group, _rep_ID, and op_index.

Definition at line 66 of file SymOpRepresentation.cc.

void CASM::SymOpRepresentation::set_rep ( SymGroupRepID  _rep_ID,
const SymOpRepresentation op_rep 
) const
inherited

set representation for SymOp corresponding to _rep_ID

Definition at line 39 of file SymOpRepresentation.cc.

jsonParser & CASM::SymPermutation::to_json ( jsonParser json) const
overridevirtual

Implements CASM::SymOpRepresentation.

Definition at line 34 of file SymPermutation.cc.

Member Data Documentation

bool CASM::SymPermutation::m_has_mat
private

Definition at line 63 of file SymPermutation.hh.

MasterSymGroup const* CASM::SymOpRepresentation::m_master_group
protectedinherited

Pointer to the MasterSymGroup where prototype of this SymOp lives.

Definition at line 117 of file SymOpRepresentation.hh.

Eigen::MatrixXd CASM::SymPermutation::m_mat
mutableprivate

Matrix of ones and zeroes that reorders elements of a vector Matrix is nxn, where 'n' is the number of things that are permuted

Definition at line 67 of file SymPermutation.hh.

Index CASM::SymOpRepresentation::m_op_index
protectedinherited

Index into MasterSymGroup that specifies the operation.

Definition at line 123 of file SymOpRepresentation.hh.

Permutation CASM::SymPermutation::m_permute
private

Array of indices, of length 'n'. An index 'm_permute[j]' before application of symmetry resides at index 'j' after application of symmetry example: For an 'Array<THINGS> my_array', transforms as my_array.permute(m_permute);

Definition at line 60 of file SymPermutation.hh.

SymGroupRepID CASM::SymOpRepresentation::m_rep_ID
protectedinherited

ID of this representation within the master_group. Default is uninitialized.

Definition at line 120 of file SymOpRepresentation.hh.


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