CASM
AClustersApproachtoStatisticalMechanics
|
#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 (const Eigen::Ref< const matrix_type > &_mat=matrix_type::Identity(), const Eigen::Ref< const vector_type > &_tau=vector_type::Zero(), double _map_error=TOL) | |
SymOp (const Eigen::Ref< const matrix_type > &_mat, 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 | 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 |
get a new SymOp that is equivalent to subsequent application of both SymOps More... | |
SymOp & | operator+= (const Eigen::Ref< const vector_type > &RHS) |
Cartesian translation of the origin of the symmetry operation by Coordinate RHS. More... | |
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 |
Check equality of SymOps, (matrix and translation). Does not necessarily return true for translational equivalents. More... | |
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 |
jsonParser & | to_json (jsonParser &json) const override |
void | from_json (const jsonParser &json) override |
virtual Permutation const * | get_permutation () const |
virtual Eigen::MatrixXd const * | get_MatrixXd () const |
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 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 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 |
Static Public Member Functions | |
static SymOp | translation (const Eigen::Ref< const vector_type > &_tau) |
static method to create operation that describes pure translation More... | |
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 | |
SymOp (const Eigen::Ref< const matrix_type > &_mat, const Eigen::Ref< const vector_type > &_tau, double _map_error, Index _op_index, MasterSymGroup const *_master_ptr) | |
Private Attributes | |
matrix_type | m_mat |
vector_type | m_tau |
double | m_map_error |
typedef Eigen::Matrix3d CASM::SymOp::matrix_type |
typedef Eigen::Vector3d CASM::SymOp::vector_type |
|
inline |
|
inline |
|
inlineprivate |
|
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.
|
overridevirtual |
|
inherited |
get pointer to BasisPermute representation corresponding to _rep_ID
Definition at line 16 of file SymOpRepresentation.cc.
|
inherited |
get pointer to matrix representation corresponding to rep_ID
Definition at line 9 of file SymOpRepresentation.cc.
|
inherited |
get array of pointers to matrix representations for representations corresponding to _rep_IDs
Definition at line 29 of file SymOpRepresentation.cc.
|
inlinevirtualinherited |
Reimplemented in CASM::SymPermutation, and CASM::SymMatrixXd.
Definition at line 46 of file SymOpRepresentation.hh.
|
inlinevirtualinherited |
Reimplemented in CASM::SymPermutation.
Definition at line 42 of file SymOpRepresentation.hh.
|
inherited |
get pointer to permutation representation corresponding to _rep_ID
Definition at line 22 of file SymOpRepresentation.cc.
|
inlinevirtualinherited |
Reimplemented in CASM::SymBasisPermute.
Definition at line 50 of file SymOpRepresentation.hh.
|
inlineinherited |
check if this representation is registered with a MasterSymGroup
Definition at line 83 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 76 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 83 of file SymOpRepresentation.cc.
|
inlineinherited |
Index of this operation within the master_group.
Definition at line 92 of file SymOpRepresentation.hh.
|
inlineinherited |
Definition at line 87 of file SymOpRepresentation.hh.
SymOp CASM::SymOp::inverse | ( | ) | const |
|
inline |
const double & CASM::SymOp::map_error | ( | ) | const |
|
inlineinherited |
const access of head group
Definition at line 77 of file SymOpRepresentation.hh.
|
inline |
SymOp CASM::SymOp::no_trans | ( | ) | const |
SymOp & CASM::SymOp::operator+= | ( | const Eigen::Ref< const vector_type > & | RHS | ) |
Cartesian translation of the origin of the symmetry operation by Coordinate RHS.
SymOp & CASM::SymOp::operator-= | ( | const Eigen::Ref< const vector_type > & | RHS | ) |
bool CASM::SymOp::operator== | ( | const SymOp & | RHS | ) | const |
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 |
Prints abridged description of SymOp, including its type, angle, and eigenvector does NOT print out the entire symmetry operation matrix
c2fmat | is a transformation matrix that can be passed to convert from Cartesian to fractional coordinates |
|
inlineinherited |
ID of representation that this operation belongs to within the master_group.
Definition at line 97 of file SymOpRepresentation.hh.
|
inherited |
Change m_master_group and determine op_index.
Definition at line 46 of file SymOpRepresentation.cc.
|
inherited |
Set m_master_group, _rep_ID, and op_index.
Definition at line 66 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 39 of file SymOpRepresentation.cc.
|
inline |
|
overridevirtual |
Implements CASM::SymOpRepresentation.
|
inlinestatic |
|
private |
|
protectedinherited |
Pointer to the MasterSymGroup where prototype of this SymOp lives.
Definition at line 117 of file SymOpRepresentation.hh.
|
private |
|
protectedinherited |
Index into MasterSymGroup that specifies the operation.
Definition at line 123 of file SymOpRepresentation.hh.
|
protectedinherited |
ID of this representation within the master_group. Default is uninitialized.
Definition at line 120 of file SymOpRepresentation.hh.
|
private |