CASM
AClustersApproachtoStatisticalMechanics
|
#include <SymGroup.hh>
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operations are stored as their coordinate representation, as described by the SymOp class i.e., if SymOps 'A' and 'B' are in SymGroup, C=A*B is also in SymGroup if 'A' is in SymGroup, then A.inverse() is in SymGroup SymGroup always contains an identity operation.
Definition at line 33 of file SymGroup.hh.
Public Types | |
typedef SymOp::vector_type | vector_type |
typedef SymOp::matrix_type | matrix_type |
typedef Array< SymOp > | X1 |
typedef Array< X1 > | X2 |
typedef Array< X2 > | X3 |
typedef Array< X3 > | X4 |
typedef Array< X4 > | X5 |
typedef Array< X5 > | X6 |
typedef Array< X6 > | X7 |
typedef Array< X7 > | X8 |
typedef Array< X8 > | X9 |
typedef SymOp | value_type |
typedef Index | size_type |
typedef SymOp * | iterator |
typedef const SymOp * | const_iterator |
Public Member Functions | |
SymGroup (PERIODICITY_TYPE init_type=PERIODIC) | |
Initialize by setting periodicity mode (default mode is PERIODIC) More... | |
SymGroup (const Array< SymOp > &from_array, PERIODICITY_TYPE init_type=PERIODIC) | |
virtual void | push_back (const SymOp &new_op) |
virtual void | clear () |
virtual void | clear_tables () |
void | set_lattice (const Lattice &new_lat) |
const Lattice & | lattice () const |
const MasterSymGroup & | master_group () const |
ReturnArray< Index > | op_indices () const |
bool | contains_periodic (const SymOp &test_op, double tol=TOL) const |
Check to see if a SymOp is contained in in SymGroup. More... | |
Index | find_no_trans (const SymOp &test_op) const |
Check to see if a SymOp is contained in in SymGroup and return its index. More... | |
Index | find_periodic (const SymOp &test_op, double tol=TOL) const |
ReturnArray< Index > | find_all_periodic (const Array< SymOp > &subgroup, double tol=TOL) const |
virtual void | sort () |
Sort SymOp in the SymGroup. More... | |
SymGroup | get_union (const SymGroup &other_group) const |
Adds SymOps from 'other_group' and enforces the group property. More... | |
SymGroup & | apply_sym (const SymOp &op) |
Calls 'apply_sym' on all SymOps in the group. More... | |
Index | ind_prod (Index i, Index j) const |
Get index of operation that is result of multiplication of at(i)*at(j) More... | |
Index | ind_inverse (Index i) const |
Get index of operation that is inverse of operation at(i) More... | |
Index | class_of_op (Index i) const |
Get conjugacy class index of operation at(i) More... | |
void | set_irrep_ID (Index i, SymGroupRepID ID) const |
set symrep ID of a particular irrep More... | |
SymGroupRepID | get_irrep_ID (Index i) const |
Get symrep ID of a particular irrep. More... | |
SymGroupRepID | coord_rep_ID () const |
Get symrep ID of the representation that stores the Cartesian symop matrices. More... | |
SymGroupRep const & | get_irrep (Index i) const |
Get symrep for a particular irrep. More... | |
SymGroupRepID | add_empty_representation () const |
Add a new empty representation. More... | |
void | calc_space_group_in_cell (SymGroup &space_group, const Lattice &_cell) const |
void | calc_space_group_in_range (SymGroup &space_group, const Lattice &_cell, Eigen::Vector3i min_trans, Eigen::Vector3i max_trans) const |
bool | is_group (double tol=TOL) const |
Check to see if SymGroup satisfies the group property. More... | |
void | enforce_group (double tol=TOL, Index max_size=200) |
Enforce group property by adding products of operations to the group. More... | |
void | print_locations (std::ostream &stream) const |
print locations of the symmetry-generating element of each SymOp More... | |
void | write (std::string filename, COORD_TYPE mode) const |
Write the SymGroup to a file. More... | |
void | print (std::ostream &out, COORD_TYPE mode) const |
Print the SymGroup to a stream. More... | |
SymGroup & | operator+= (const Eigen::Ref< const SymOp::vector_type > &shift) |
Cartesian translation of SymGroup origin by vector 'shift'. More... | |
SymGroup & | operator-= (const Eigen::Ref< const SymOp::vector_type > &shift) |
double | max_error () |
This returns the group's max_error. More... | |
ReturnArray< Array< Index > > | left_cosets (const Array< SymOp > &subgroup, double tol=TOL) const |
ReturnArray< Array< Index > > | left_cosets (const Array< Index > &subgroup_inds) const |
const Array< Index >::X2 & | get_multi_table () const |
const Array< Index >::X2 & | get_alt_multi_table () const |
void | invalidate_multi_tables () const |
const Array< Index >::X2 & | get_conjugacy_classes () const |
const Array< std::complex < double > >::X2 & | character_table () const |
const Array< bool > & | get_complex_irrep_list () const |
const std::string & | get_name () const |
const std::string & | get_latex_name () const |
PERIODICITY_TYPE | periodicity () const |
std::string | possible_space_groups () const |
const Array< Index >::X3 & | subgroups () const |
void | print_character_table (std::ostream &stream) |
ReturnArray< Index > | get_irrep_decomposition () const |
bool | is_irreducible () const |
std::vector< SymGroup > | unique_subgroups () const |
void | get_rotation_groups () const |
Space group (added by Donghee );. More... | |
void | get_point_group_type () const |
void | print_space_group_info (std::ostream &out) const |
void | copy_no_trans (SymGroup &shiftless, bool keep_repeated=false) const |
Fill up a SymGroup with *this minus the shifts. More... | |
jsonParser & | to_json (jsonParser &json) const |
void | from_json (const jsonParser &json) |
SymInfo | info (Index i) const |
Index | size () const |
void | swap (Array< SymOp > &RHS) |
SymOp & | at (Index ind) |
const SymOp & | at (Index ind) const |
const SymOp & | operator[] (Index ind) const |
SymOp & | operator[] (Index ind) |
SymOp & | back () |
const SymOp & | back () const |
SymOpconst * | begin () const |
SymOp * | begin () |
SymOpconst * | cbegin () const |
SymOpconst * | end () const |
SymOp * | end () |
SymOpconst * | cend () const |
void | pop_back () |
void | remove (Index ind) |
void | resize (Index new_N) |
void | resize (Index new_N, const SymOp &fill_val) |
void | reserve (Index new_max) |
void | sort (const CompareType &comp) |
void | sort (Array< Index > &ind_order) |
Array & | append (const Array &new_tail) |
Array & | append_unique (const Array &new_tail) |
void | swap_elem (Index i, Index j) |
Array & | permute (const Array< Index > &perm_array) |
Array & | ipermute (const Array< Index > &perm_array) |
bool | next_permute () |
ReturnArray< Index > | as_perm_inverse () const |
ReturnArray< Index > | as_perm_transform_by (const Array< Index > &trans_perm) const |
const SymOp & | max () const |
const SymOp & | min () const |
ReturnArray< SymOp > | sub_array (Index ind_begin, Index ind_end) const |
SymOp | sum () const |
bool | is_ascending () const |
bool | is_descending () const |
bool | is_constant () const |
bool | is_permute () const |
bool | has_fixed_points () const |
Checks whether any values are equal to their index – only valid for Array<Index> More... | |
bool | operator== (const Array< SymOp > &RHS) const |
bool | operator!= (const Array< SymOp > &RHS) const |
bool | operator< (const Array< SymOp > &RHS) const |
bool | operator> (const Array< SymOp > &RHS) const |
bool | operator<= (const Array< SymOp > &RHS) const |
bool | operator>= (const Array< SymOp > &RHS) const |
bool | all_in (const Array &superset) const |
Index | coincidence (const Array &superset) const |
Index | incidences (const SymOp &test_elem) const |
Index | find (const SymOp &test_elem) const |
Index | reverse_find (const SymOp &test_elem) const |
Same as find, but starts from the last element of the Array. More... | |
Index | almost_find (const SymOp &test_elem, double tol_val=TOL) const |
Index | almost_reverse_find (const SymOp &test_elem, double tol_val=TOL) const |
Same as almost_find, but start from the last element of the Array. More... | |
bool | contains (const SymOp &test_elem) const |
bool | almost_contains (const SymOp &test_elem, double tol_val=TOL) const |
void | print_column (std::ostream &stream, const std::string &indent="") const |
Static Public Member Functions | |
static ReturnArray< SymOp > | sequence (const SymOp &initial, const SymOp &final) |
Returns an array with the sequence (initial, ++initial, ..., final), inclusive. More... | |
static ReturnArray< SymOp > | sequence (const SymOp &initial, const SymOp &increment, const SymOp &final) |
Protected Member Functions | |
void | _generate_conjugacy_classes () const |
void | _generate_character_table () const |
void | _generate_centralizers () const |
void | _generate_elem_order_table () const |
void | _generate_class_names () const |
void | _generate_irrep_names () const |
bool | _generate_multi_table () const |
void | _generate_alt_multi_table () const |
void | _generate_subgroups () const |
Array< Index >::X3 | _small_subgroups () const |
Protected Attributes | |
Lattice const * | m_lat_ptr |
Pointer to a lattice for doing periodic comparisons. More... | |
PERIODICITY_TYPE | m_group_periodicity |
Specifies whether to use lattice periodicity when testing for equivalence. More... | |
Array< Array< Index > > | multi_table |
multi_table[i][j] gives index of operation that is result of at(i)*at(j) More... | |
Array< Array< Index > > | alt_multi_table |
alt_multi_table[i][j] gives index of operation that is result of at(i).inverse()*at(j) More... | |
Array< Array< Index > > | conjugacy_classes |
Array< std::string > | class_names |
Array< Index > | index2conjugacy_class |
Array< Array< std::complex < double > > > | m_character_table |
Array< SymGroupRepID > | irrep_IDs |
Array< bool > | complex_irrep |
Array< std::string > | irrep_names |
Array< Array< Array< Index > > > | m_subgroups |
Array< Array< Index > > | centralizer_table |
Array< Array< Index > > | elem_order_table |
std::string | name |
std::string | latex_name |
std::string | comment |
double | m_max_error |
Array< Array< SymOp > > | rotation_groups |
Space group (added by Donghee );. More... | |
std::string | crystal_system |
bool | centric |
Array< int > | group_number |
Array< std::string > | group_name |
|
inherited |
Definition at line 36 of file SymGroup.hh.
|
inherited |
Definition at line 35 of file SymGroup.hh.
|
inline |
Initialize by setting periodicity mode (default mode is PERIODIC)
Definition at line 38 of file SymGroup.hh.
CASM::SymGroup::SymGroup | ( | const Array< SymOp > & | from_array, |
PERIODICITY_TYPE | init_type = PERIODIC |
||
) |
Definition at line 425 of file SymGroup.cc.
|
protected |
Definition at line 3286 of file SymGroup.cc.
|
protected |
The centralizer of a subset S of a group G is the set of elements of G that commute with each element of S. The centralizer is a subgroup of G.
In our specific case, the subsets are the conjugacy classes, so we fill the centralizer_table with subgroups of G that commute with the corresponding conjugacy class.qq
Definition at line 1861 of file SymGroup.cc.
|
protected |
We need to figure out the dimensionality of each irreducible representation. We know that the total number of irreducible representations is the same as the total number of conjugacy classes, which we are calling nc. Also, we know that the sum of the squares of the dimensionalities of all of theirreducible representations must be equal to the size of the group, h.
If you're in this block, you have finished your character table using only real +/- 1 characters because all of your representations are dimension 1. Life is good. Also, your group is Abelian.
The group you are dealing with is one of the following: C1, C2, C2v, C1h (S1), C2h, S2 (Ci), D2, D2h.
This group is one of the following... If nc = 1: C1 If nc = 2: C2, C1h, S2. If nc = 4: C2v, C2h, D2 If nc = 8: D2h
If you're in this loop, then you're not done yet because you either have complex dimension 1 characters or higher dimension real characters still to look for. In this case, we need to check our group for inversion and mirror symmetries to determine if it can be broken up into subgroups in a convenient way that will help us construct the rest of the character table.
This part will handle groups that do not have special symmetries (sigma_h mirror planes or inversion). We then need to know if the group is Abelian. We can check this by looking at the number of conjugacy classes and comparing to the number of dimension 1 representations we are supposed to find. So if d1 = nc, the group must be Abelian. If this is not the case, the group must have higher dimension representations, which will be dealt with separately.
Then the group is cyclic & Abelian. This means that we can proceed by determining the smallest rotation angle in the group, which will give us omega because omega is just 2*pi*i/3 for 120 degree rotations, 2*pi*i/4 for 90 degree rotations, or 2*pi*i/6 for 60 degree rotations. We then "guess" powers of omega for our one of the complex characters if our representation and determine the rest of the characters in that representation by enforcing the cycle (which is equivalent to enforcing the multiplication table).
The possibilities here are: If nc = 3: C3 If nc = 4: C4 If nc = 6: C6
We need to keep in mind that the angle returned by get_rotation_angle() is real and is given in degrees. We need to convert it to complex radian form, which we will do using Euler's formula: e^(ix) = cos(x) + i*sin(x).
For every complex representation in the character table, there is also a complex conjugate representation, so once we have found a full set of complex characters, we can conjugate them to get another row in the table.
If we are in this loop, then our group has mirror or inversion symmetry, which means that we can determine its character table by breaking it up into subgroups and computing their character tables first. It turns out that all groups containing i or sigma_h symmetry can be broken up into the product of some other group and C1h or S2 group, for which the character table is really simple.
We can find this subgroup by looking at the sign representation, or equivalently, the determinants of our SymOp matrices. If we collect all SymOps that have positive determinant matrices, we will have found the large subgroup we are looking for.
Yes, this part is going to be recursive and therefore scary. But don't worry, we thought this through. Any subgroup that is created by only including group elements with positive determinant matrices cannot have either inversion or sigma_h symmetry. Thus, we can never end up in this loop more than once...
This next part is a little tricky. We're effectively going to paste our sub-character-table into our big character table four times. We have to be careful because we need to make sure that the columns or conjugacy classes that we are copying correspond correctly to the columns we are copying them into. Luckily, we know which SymOps the columns correspond do, we know a little bit about the order that they appear in, and we can check the weird ones by just hiting the normal ones with inversion or sigma_h. We're going to use the inversion symmetry whenever it is possible. There is at least one case where we are forced to use mirror symmetry, but this will become obvious.
At this point, we gave up on elegance entirely and decided to tabulate the three remaining character tables that would be stupidly impractical to attempt to calculate. So here they are. Point groups: Td, T, O
Definition at line 1888 of file SymGroup.cc.
|
protected |
This will name your conjugacy classes according to some crazy convention, which is similar, but not exactly identical to the Schoenflies notation.
We start by finding the principal axes. Often, there will only be one. However, in cases like fcc, there can be several. All rotations that are about the principal axis will be named "XCn" if they are proper and "XSn" if they are improper. Here, X is the size of their conjugacy class, and n is the foldedness of the rotation, i.e. 60 degree rotations are 6-fold, while 120 degree rotations are 3-fold.
Definition at line 1308 of file SymGroup.cc.
|
protected |
The number of irreducible representations is equal to the number of conjugacy classes.
The number of elements in each conjugacy class must be a divisor of the number of symmetry group operations.
Definition at line 2995 of file SymGroup.cc.
|
protected |
Definition at line 2744 of file SymGroup.cc.
|
protected |
Definition at line 947 of file SymGroup.cc.
|
protected |
Definition at line 3251 of file SymGroup.cc.
|
protected |
Definition at line 2836 of file SymGroup.cc.
Definition at line 2776 of file SymGroup.cc.
SymGroupRepID CASM::SymGroup::add_empty_representation | ( | ) | const |
Add a new empty representation.
Definition at line 3109 of file SymGroup.cc.
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
Same as almost_find, but start from the last element of the Array.
|
inherited |
|
inherited |
Calls 'apply_sym' on all SymOps in the group.
Definition at line 3413 of file SymGroup.cc.
|
inherited |
Construct permutation that undoes the permutation performed by 'this' Inverse operation is calculated the same, regardless of permutation convention
|
inherited |
Given N distinct objects labeled from 0 to N-1, a permutation 'P_permute' that physically permutes the objects (with labels) in terms of their labels, and a permutation 'L_permute' that permutes their labels only, rewrite 'P_permute' in terms of the relabeling induced by 'L_permute' Rearrange 'this' permutation to form an equivalent permutation for any list that has already been permuted by trans_perm. Does not (nearly certain of this) depend on permutation convention
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
void CASM::SymGroup::calc_space_group_in_cell | ( | SymGroup & | space_group, |
const Lattice & | _cell | ||
) | const |
Gets all the space group operations in unit cell and stores them in space_group assuming that this SymGroup contains the factor group
Definition at line 3447 of file SymGroup.cc.
void CASM::SymGroup::calc_space_group_in_range | ( | SymGroup & | space_group, |
const Lattice & | _cell, | ||
Eigen::Vector3i | min_trans, | ||
Eigen::Vector3i | max_trans | ||
) | const |
gets all teh space group operations corresponding to translations in the specified range max_trans sets boundary of parillellipiped centered at origin.
Definition at line 3489 of file SymGroup.cc.
|
inlineinherited |
|
inlineinherited |
Definition at line 3212 of file SymGroup.cc.
Get conjugacy class index of operation at(i)
Definition at line 3071 of file SymGroup.cc.
|
virtual |
Reimplemented in CASM::MasterSymGroup.
Definition at line 490 of file SymGroup.cc.
|
virtual |
Definition at line 450 of file SymGroup.cc.
|
inherited |
|
inlineinherited |
Check to see if a SymOp is contained in in SymGroup.
Definition at line 3407 of file SymGroup.cc.
SymGroupRepID CASM::SymGroup::coord_rep_ID | ( | ) | const |
Get symrep ID of the representation that stores the Cartesian symop matrices.
Definition at line 3098 of file SymGroup.cc.
void CASM::SymGroup::copy_no_trans | ( | SymGroup & | shiftless, |
bool | keep_repeated = false |
||
) | const |
Fill up a SymGroup with *this minus the shifts.
Definition at line 907 of file SymGroup.cc.
|
inlineinherited |
|
inlineinherited |
Enforce group property by adding products of operations to the group.
Definition at line 3365 of file SymGroup.cc.
|
inherited |
ReturnArray< Index > CASM::SymGroup::find_all_periodic | ( | const Array< SymOp > & | subgroup, |
double | tol = TOL |
||
) | const |
Definition at line 3332 of file SymGroup.cc.
Check to see if a SymOp is contained in in SymGroup and return its index.
Check to see if a SymOp matrix ONLY is contained in SymGroup and return the index of this operation. This was originally written for pruning the factor groups of primitive structures to construct the factor groups of their superstructures to be consistent with the supercell lattice point groups.
Definition at line 3309 of file SymGroup.cc.
This is meant for factor groups. It will compare the Cartesian matrix of the test_op with those of the SymOps in the group. Upon a successful matrix match, it will attempt to match the shift shift vector with min_dist.
Definition at line 3321 of file SymGroup.cc.
void CASM::SymGroup::from_json | ( | const jsonParser & | json | ) |
re-throw exceptions
Definition at line 3832 of file SymGroup.cc.
Definition at line 3180 of file SymGroup.cc.
const Array< bool > & CASM::SymGroup::get_complex_irrep_list | ( | ) | const |
Definition at line 3204 of file SymGroup.cc.
Definition at line 3197 of file SymGroup.cc.
SymGroupRep const & CASM::SymGroup::get_irrep | ( | Index | i | ) | const |
Get symrep for a particular irrep.
Definition at line 3121 of file SymGroup.cc.
ReturnArray< Index > CASM::SymGroup::get_irrep_decomposition | ( | ) | const |
Definition at line 3707 of file SymGroup.cc.
SymGroupRepID CASM::SymGroup::get_irrep_ID | ( | Index | i | ) | const |
Get symrep ID of a particular irrep.
Definition at line 3088 of file SymGroup.cc.
const std::string & CASM::SymGroup::get_latex_name | ( | ) | const |
Definition at line 3236 of file SymGroup.cc.
Definition at line 3170 of file SymGroup.cc.
const std::string & CASM::SymGroup::get_name | ( | ) | const |
Definition at line 3220 of file SymGroup.cc.
void CASM::SymGroup::get_point_group_type | ( | ) | const |
Definition at line 565 of file SymGroup.cc.
void CASM::SymGroup::get_rotation_groups | ( | ) | const |
Space group (added by Donghee );.
Definition at line 509 of file SymGroup.cc.
Adds SymOps from 'other_group' and enforces the group property.
|
inherited |
Checks whether any values are equal to their index – only valid for Array<Index>
|
inherited |
Get index of operation that is inverse of operation at(i)
Definition at line 3046 of file SymGroup.cc.
Get index of operation that is result of multiplication of at(i)*at(j)
Definition at line 3055 of file SymGroup.cc.
Definition at line 927 of file SymGroup.cc.
void CASM::SymGroup::invalidate_multi_tables | ( | ) | const |
Definition at line 3189 of file SymGroup.cc.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
bool CASM::SymGroup::is_group | ( | double | tol = TOL | ) | const |
Check to see if SymGroup satisfies the group property.
Definition at line 3346 of file SymGroup.cc.
bool CASM::SymGroup::is_irreducible | ( | ) | const |
Definition at line 3674 of file SymGroup.cc.
|
inherited |
Checks that Array contains values from 0 to perm_array.size()-1 and that no value is repeated does not depend on definition of permutation convention
const Lattice & CASM::SymGroup::lattice | ( | ) | const |
Definition at line 940 of file SymGroup.cc.
ReturnArray< Array< Index > > CASM::SymGroup::left_cosets | ( | const Array< SymOp > & | subgroup, |
double | tol = TOL |
||
) | const |
Definition at line 3131 of file SymGroup.cc.
ReturnArray< Array< Index > > CASM::SymGroup::left_cosets | ( | const Array< Index > & | subgroup_inds | ) | const |
Definition at line 3139 of file SymGroup.cc.
|
inline |
Definition at line 56 of file SymGroup.hh.
|
inherited |
double CASM::SymGroup::max_error | ( | ) |
This returns the group's max_error.
Definition at line 933 of file SymGroup.cc.
|
inherited |
|
inherited |
ReturnArray< Index > CASM::SymGroup::op_indices | ( | ) | const |
Definition at line 474 of file SymGroup.cc.
|
inlineinherited |
SymGroup & CASM::SymGroup::operator+= | ( | const Eigen::Ref< const SymOp::vector_type > & | shift | ) |
Cartesian translation of SymGroup origin by vector 'shift'.
Translation operators for origin shift need to be defined.
Definition at line 3691 of file SymGroup.cc.
SymGroup & CASM::SymGroup::operator-= | ( | const Eigen::Ref< const SymOp::vector_type > & | shift | ) |
Definition at line 3699 of file SymGroup.cc.
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
Definition at line 160 of file SymGroup.hh.
|
inherited |
|
inlineinherited |
|
inline |
Definition at line 164 of file SymGroup.hh.
void CASM::SymGroup::print | ( | std::ostream & | out, |
COORD_TYPE | mode | ||
) | const |
Print the SymGroup to a stream.
Definition at line 3431 of file SymGroup.cc.
void CASM::SymGroup::print_character_table | ( | std::ostream & | stream | ) |
Definition at line 1545 of file SymGroup.cc.
|
inherited |
void CASM::SymGroup::print_locations | ( | std::ostream & | stream | ) | const |
print locations of the symmetry-generating element of each SymOp
Definition at line 3518 of file SymGroup.cc.
void CASM::SymGroup::print_space_group_info | ( | std::ostream & | out | ) | const |
Definition at line 883 of file SymGroup.cc.
|
virtual |
Reimplemented in CASM::MasterSymGroup.
Definition at line 441 of file SymGroup.cc.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Same as find, but starts from the last element of the Array.
|
staticinherited |
Returns an array with the sequence (initial, ++initial, ..., final), inclusive.
Returns an array with the sequence (initial, ++initial, ..., final), inclusive requires that operator<() and operator++() are defined on type T
|
staticinherited |
Returns an array with the sequence (initial, initial+increment, ..., final?), inclusive if final is in the sequence requires that operator<() and operator+=() are defined on type T
Returns an array with the sequence (initial, initial+increment, ..., final?), inclusive if final is in the sequence
void CASM::SymGroup::set_irrep_ID | ( | Index | i, |
SymGroupRepID | ID | ||
) | const |
set symrep ID of a particular irrep
Definition at line 3079 of file SymGroup.cc.
void CASM::SymGroup::set_lattice | ( | const Lattice & | new_lat | ) |
Definition at line 435 of file SymGroup.cc.
|
inlineinherited |
|
virtual |
SymOp are sorted by lexicographical comparison of: (-det, -trace, angle, axis, tau)
Reimplemented in CASM::MasterSymGroup.
Definition at line 3574 of file SymGroup.cc.
|
inherited |
|
inherited |
|
inherited |
Definition at line 3243 of file SymGroup.cc.
|
inherited |
|
inherited |
|
inlineinherited |
jsonParser & CASM::SymGroup::to_json | ( | jsonParser & | json | ) | const |
Definition at line 3740 of file SymGroup.cc.
std::vector< SymGroup > CASM::SymGroup::unique_subgroups | ( | ) | const |
Definition at line 2913 of file SymGroup.cc.
void CASM::SymGroup::write | ( | std::string | filename, |
COORD_TYPE | mode | ||
) | const |
Write the SymGroup to a file.
Definition at line 3421 of file SymGroup.cc.
alt_multi_table[i][j] gives index of operation that is result of at(i).inverse()*at(j)
Definition at line 218 of file SymGroup.hh.
Definition at line 238 of file SymGroup.hh.
|
mutableprotected |
Definition at line 250 of file SymGroup.hh.
|
mutableprotected |
Definition at line 223 of file SymGroup.hh.
|
mutableprotected |
Definition at line 243 of file SymGroup.hh.
|
mutableprotected |
Definition at line 230 of file SymGroup.hh.
Definition at line 222 of file SymGroup.hh.
|
mutableprotected |
Definition at line 249 of file SymGroup.hh.
Definition at line 239 of file SymGroup.hh.
|
mutableprotected |
Definition at line 252 of file SymGroup.hh.
|
mutableprotected |
Definition at line 251 of file SymGroup.hh.
Definition at line 224 of file SymGroup.hh.
|
mutableprotected |
Definition at line 229 of file SymGroup.hh.
|
mutableprotected |
Definition at line 231 of file SymGroup.hh.
|
mutableprotected |
Definition at line 242 of file SymGroup.hh.
Definition at line 228 of file SymGroup.hh.
|
protected |
Specifies whether to use lattice periodicity when testing for equivalence.
Definition at line 212 of file SymGroup.hh.
|
protected |
Pointer to a lattice for doing periodic comparisons.
Definition at line 209 of file SymGroup.hh.
|
mutableprotected |
Definition at line 245 of file SymGroup.hh.
Definition at line 235 of file SymGroup.hh.
multi_table[i][j] gives index of operation that is result of at(i)*at(j)
Definition at line 215 of file SymGroup.hh.
|
mutableprotected |
Definition at line 241 of file SymGroup.hh.
Space group (added by Donghee );.
Definition at line 248 of file SymGroup.hh.