CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SymOp.hh>
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian (CART) information about how a symetry operation transforms 3D spatial coordinates.
Public Types | |
typedef Eigen::Matrix3d | matrix_type |
typedef Eigen::Vector3d | vector_type |
Public Member Functions | |
SymOp () | |
SymOp (const Eigen::Ref< const matrix_type > &_mat, const Eigen::Ref< const vector_type > &_tau, bool _time_reversal, double _map_error) | |
const matrix_type & | matrix () const |
Const access of entire cartesian symmetry matrix. More... | |
const vector_type & | tau () const |
Const access of the cartesian translation vector, 'tau'. More... | |
bool | time_reversal () const |
Const access of the time-reversal flag (true if operation reverses time) More... | |
const vector_type & | integral_tau () const |
Const access of the sym op's cartesian shift from its MasterSymGroup. More... | |
bool | is_identity () const |
returns true if matrix part of operation is identity More... | |
void | set_index (const MasterSymGroup &new_group, Index new_index) |
const double & | map_error () const |
Allows access to the map_error. More... | |
void | set_map_error (const double &value) |
SymOp | operator* (const SymOp &RHS) const |
SymOp & | operator+= (const Eigen::Ref< const vector_type > &RHS) |
SymOp & | operator-= (const Eigen::Ref< const vector_type > &RHS) |
SymOp | inverse () const |
get the inverse of this SymOp More... | |
SymOp | no_trans () const |
Get copy of the SymOp without translation. More... | |
bool | operator== (const SymOp &RHS) const |
SymOp & | apply_sym (const SymOp &op) |
double | character () const override |
calculate and return character of this SymOp (neglecting tau) More... | |
void | print (std::ostream &stream, const Eigen::Ref< const matrix_type > &c2fmat=matrix_type::Identity()) const |
void | print_short (std::ostream &stream, const Eigen::Ref< const matrix_type > &c2fmat=matrix_type::Identity()) const |
SymOpRepresentation * | copy () const override |
Return pointer to a new copy of this SymOp. More... | |
SymOp | unregistered_copy () const |
virtual Permutation const * | permutation () const |
virtual Eigen::MatrixXd const * | MatrixXd () const |
virtual SymBasisPermute const * | ucc_permutation () const |
SymOpRepresentation const & | representation (SymGroupRepID _rep_ID) 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 |
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 MasterSymGroup & | master_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 | master_group_index () const |
Index of this operation within the master_group. More... | |
SymGroupRepID | rep_ID () const |
Index | ind_inverse () const |
Index | ind_prod (const SymOpRepresentation &RHS) const |
Static Public Member Functions | |
static SymOp | translation (const Eigen::Ref< const vector_type > &_tau) |
static method to create operation that describes pure translation More... | |
static SymOp | time_reversal_op () |
static method to create time_reversal operation More... | |
static SymOp | point_op (const Eigen::Ref< const matrix_type > &_mat, double _map_error=TOL) |
static method to create point operation (no translation) More... | |
Protected Member Functions | |
virtual SymOpRepresentation * | inverse_impl () const |
Protected Attributes | |
MasterSymGroup const * | m_master_group |
Pointer to the MasterSymGroup where prototype of this SymOp lives. More... | |
SymGroupRepID | m_rep_ID |
Index | m_op_index |
Index into MasterSymGroup that specifies the operation. More... | |
Private Member Functions | |
SymOp (const Eigen::Ref< const matrix_type > &_mat, const Eigen::Ref< const vector_type > &_tau, bool _time_reversal, double _map_error, Index _op_index, MasterSymGroup const *_master_ptr) | |
void | _set_integral_tau () override |
Set the difference between the translation of this compared to. More... | |
Private Attributes | |
matrix_type | m_mat |
vector_type | m_tau |
bool | m_time_reversal |
vector_type | m_integral_tau |
bool | m_valid_integral_tau |
double | m_map_error |
typedef Eigen::Matrix3d CASM::SymOp::matrix_type |
typedef Eigen::Vector3d CASM::SymOp::vector_type |
|
inline |
|
inlineprivate |
|
overrideprivatevirtual |
Set the difference between the translation of this compared to.
Reimplemented from CASM::SymOpRepresentation.
|
inlineoverridevirtual |
calculate and return character of this SymOp (neglecting tau)
Reimplemented from CASM::SymOpRepresentation.
|
inlineoverridevirtual |
Return pointer to a new copy of this SymOp.
Implements CASM::SymOpRepresentation.
|
inherited |
get pointer to BasisPermute representation corresponding to _rep_ID
Definition at line 36 of file SymOpRepresentation.cc.
|
inherited |
get pointer to matrix representation corresponding to rep_ID
Definition at line 28 of file SymOpRepresentation.cc.
|
inherited |
get array of pointers to matrix representations for representations corresponding to _rep_IDs
Definition at line 51 of file SymOpRepresentation.cc.
|
inherited |
get pointer to permutation representation corresponding to _rep_ID
Definition at line 43 of file SymOpRepresentation.cc.
|
inlineinherited |
check if this representation is registered with a MasterSymGroup
Definition at line 91 of file SymOpRepresentation.hh.
|
inherited |
Get the operation index of the inverse of this operation, using the master_group's multiplication table
Definition at line 101 of file SymOpRepresentation.cc.
|
inherited |
Get the operation index of operation that is the product of this operation and
RHS,using | the master_group's multiplication table |
Definition at line 110 of file SymOpRepresentation.cc.
|
inlineinherited |
Index of this operation within the master_group (equivalent to master_group_index)
Definition at line 97 of file SymOpRepresentation.hh.
|
inline |
Const access of the sym op's cartesian shift from its MasterSymGroup.
|
inlineinherited |
Definition at line 93 of file SymOpRepresentation.hh.
SymOp CASM::SymOp::inverse | ( | ) | const |
|
inlineprotectedvirtualinherited |
Reimplemented in CASM::SymPermutation.
Definition at line 124 of file SymOpRepresentation.hh.
|
inline |
const double & CASM::SymOp::map_error | ( | ) | const |
|
inlineinherited |
const access of head group
Definition at line 85 of file SymOpRepresentation.hh.
|
inlineinherited |
Index of this operation within the master_group.
Definition at line 100 of file SymOpRepresentation.hh.
|
inline |
|
inlinevirtualinherited |
Reimplemented in CASM::SymPermutation, and CASM::SymMatrixXd.
Definition at line 51 of file SymOpRepresentation.hh.
SymOp CASM::SymOp::no_trans | ( | ) | const |
SymOp & CASM::SymOp::operator+= | ( | const Eigen::Ref< const vector_type > & | RHS | ) |
SymOp & CASM::SymOp::operator-= | ( | const Eigen::Ref< const vector_type > & | RHS | ) |
bool CASM::SymOp::operator== | ( | const SymOp & | RHS | ) | const |
|
inlinevirtualinherited |
Reimplemented in CASM::SymPermutation.
Definition at line 49 of file SymOpRepresentation.hh.
|
inlinestatic |
void CASM::SymOp::print | ( | std::ostream & | stream, |
const Eigen::Ref< const matrix_type > & | c2fmat = matrix_type::Identity() |
||
) | const |
void CASM::SymOp::print_short | ( | std::ostream & | stream, |
const Eigen::Ref< const matrix_type > & | c2fmat = matrix_type::Identity() |
||
) | const |
|
inlineinherited |
ID of representation that this operation belongs to within the master_group
Definition at line 104 of file SymOpRepresentation.hh.
|
inherited |
Definition at line 21 of file SymOpRepresentation.cc.
|
inherited |
Change m_master_group and determine op_index.
Definition at line 69 of file SymOpRepresentation.cc.
|
inherited |
Set m_master_group, _rep_ID, and op_index.
Definition at line 89 of file SymOpRepresentation.cc.
void CASM::SymOp::set_index | ( | const MasterSymGroup & | new_group, |
Index | new_index | ||
) |
|
inherited |
set representation for SymOp corresponding to _rep_ID
Definition at line 61 of file SymOpRepresentation.cc.
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinevirtualinherited |
Reimplemented in CASM::SymBasisPermute.
Definition at line 53 of file SymOpRepresentation.hh.
|
mutableprivate |
|
private |
|
protectedinherited |
Pointer to the MasterSymGroup where prototype of this SymOp lives.
Definition at line 133 of file SymOpRepresentation.hh.
|
private |
|
protectedinherited |
Index into MasterSymGroup that specifies the operation.
Definition at line 140 of file SymOpRepresentation.hh.
|
protectedinherited |
ID of this representation within the master_group. Default is uninitialized.
Definition at line 137 of file SymOpRepresentation.hh.
|
private |
|
private |