CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SupercellSymInfo.hh>
A class that collects all symmetry information for for performing symmetry transformations on the site indices, site DoFs, and global DoFs of a Supercell or Configuration.
Definition at line 31 of file SupercellSymInfo.hh.
Public Types | |
using | permute_const_iterator = PermuteIterator |
using | SublatSymReps = std::vector< SymGroupRep::RemoteHandle > |
Public Member Functions | |
SupercellSymInfo (Lattice const &_prim_lat, Lattice const &_super_lat, Index number_of_sublats, SymGroup const &_prim_factor_group, SymGroupRepID basis_permutation_symrep_ID, std::map< DoFKey, SymGroupRepID > const &global_dof_symrep_IDs, std::vector< SymGroupRepID > const &occ_symrep_IDs, std::map< DoFKey, std::vector< SymGroupRepID > > const &local_dof_symrep_IDs) | |
Construct with primitive and super lattice, number of sublattice and all relevant representation IDs. More... | |
SymGroupRep::RemoteHandle const & | basis_permutation_symrep () const |
SymGroupRep::RemoteHandle const & | site_permutation_symrep () const |
std::map< DoFKey, SymGroupRep::RemoteHandle > const & | global_dof_symreps () const |
Const reference global DoF matrix representations of the supercell's factor group. More... | |
SymGroupRep::RemoteHandle const & | global_dof_symrep (DoFKey const &_key) const |
SublatSymReps const & | occ_symreps () const |
SymGroupRep handle for occupant permutation representation of supercell's factor group An occupant permutation describes how the occupants at a site change identity due to a spatial transformation EXAMPLE: The label of a x-oriented dimer and a y-oriented dimer will be exchanged due to a 90-degree rotation about z If these are the only two species at the site, the permutation will have the form p=[1,0], with p[index_after]=index_before If sites are also permuted, then the occ_symrep is used as site_at(site_index_after).specie(index_after)=site_at(site_index_before).specie(p[index_after]);. More... | |
std::map< DoFKey, SublatSymReps > const & | local_dof_symreps () const |
Const reference local DoF matrix representations of the supercell's factor group. More... | |
SublatSymReps const & | local_dof_symreps (DoFKey const &_key) const |
SymGroupRep handle for site DoF matrix representation of supercell's factor group If sites are also permuted, then the local_dof_symrep is used as site_at(site_index_after).dof_value(_key) = representation_matrix * site_at(site_index_before).dof_value(_key) More... | |
const xtal::UnitCellIndexConverter & | unitcell_index_converter () const |
UnitCellIndexConverter for this superlattice/primlattice pair Used to convert from lattice translations to site permutations. More... | |
const xtal::UnitCellCoordIndexConverter & | unitcellcoord_index_converter () const |
UnitCellCoordIndexConverter for this superstructure/primstructure pair Used to convert from lattice translations to site permutations. More... | |
const std::vector< Permutation > & | translation_permutations () const |
Permutations describing reordering of sites of supercell due to a lattice translation of the primitive translation_permutation()[l] gives the site permutation due to translating to origin cell to unitcell[l] of the supercell. More... | |
SymGroup const & | factor_group () const |
Subgroup of primitive-cell factor group operations that leave supercell lattice invariant. More... | |
bool | has_aniso_occs () const |
true if any species are anisotropic, such that the occ_symreps are non-trivial More... | |
bool | has_occupation_dofs () const |
true if any sublattice has more than one allowed occupant More... | |
const xtal::Lattice & | supercell_lattice () const |
const reference to supercell lattice More... | |
const xtal::Lattice & | prim_lattice () const |
const reference to primitive lattice More... | |
const xtal::Superlattice & | superlattice () const |
const reference to superlattice More... | |
Eigen::Matrix3l | transformation_matrix_to_super () const |
long-int transformation from primitive lattice vectors to supercell lattice vectors supercell_lattice().lat_column_mat() = prim_lattice().lat_column_mat() * transformation_matrix_to_super() More... | |
permute_const_iterator | translate_begin () const |
Begin PermuteIterator over pure translational permutations / Equivalent to permute_begin() More... | |
permute_const_iterator | translate_end () const |
End PermuteIterator over pure translational permutations. More... | |
const Permutation & | factor_group_permute (Index supercell_factor_group_index) const |
Site permutation corresponding to supercell factor group operation. More... | |
permute_const_iterator | permute_begin () const |
permute_const_iterator | permute_end () const |
permute_const_iterator | permute_it (Index supercell_factor_group_index, Index translation_index) const |
permute_const_iterator | permute_it (Index supercell_factor_group_index, UnitCell translation) const |
Definition at line 33 of file SupercellSymInfo.hh.
using CASM::SupercellSymInfo::SublatSymReps = std::vector<SymGroupRep::RemoteHandle> |
Definition at line 34 of file SupercellSymInfo.hh.
CASM::SupercellSymInfo::SupercellSymInfo | ( | Lattice const & | _prim_lat, |
Lattice const & | _super_lat, | ||
Index | number_of_sublats, | ||
SymGroup const & | _prim_factor_group, | ||
SymGroupRepID | basis_permutation_symrep_ID, | ||
std::map< DoFKey, SymGroupRepID > const & | global_dof_symrep_IDs, | ||
std::vector< SymGroupRepID > const & | occ_symrep_IDs, | ||
std::map< DoFKey, std::vector< SymGroupRepID > > const & | local_dof_symrep_IDs | ||
) |
Construct with primitive and super lattice, number of sublattice and all relevant representation IDs.
Definition at line 56 of file SupercellSymInfo.cc.
SymGroupRep::RemoteHandle const & CASM::SupercellSymInfo::basis_permutation_symrep | ( | ) | const |
Returns a "RemoteHandle" to the sublattice permutation representation of the supercell's factor group
Returns a "RemoteHandle" to the sublattice permutation representation of the supercell's factor group
A sublattice permutation consists of an index permutation and an integer lattice translation
Definition at line 130 of file SupercellSymInfo.cc.
|
inline |
Subgroup of primitive-cell factor group operations that leave supercell lattice invariant.
Definition at line 117 of file SupercellSymInfo.hh.
const Permutation & CASM::SupercellSymInfo::factor_group_permute | ( | Index | supercell_factor_group_index | ) | const |
Site permutation corresponding to supercell factor group operation.
Definition at line 179 of file SupercellSymInfo.cc.
|
inline |
Returns a "RemoteHandle" to the global DoF matrix representation of the supercell's factor group
Definition at line 63 of file SupercellSymInfo.hh.
|
inline |
Const reference global DoF matrix representations of the supercell's factor group.
Definition at line 56 of file SupercellSymInfo.hh.
|
inline |
true if any species are anisotropic, such that the occ_symreps are non-trivial
Definition at line 121 of file SupercellSymInfo.hh.
|
inline |
true if any sublattice has more than one allowed occupant
Definition at line 124 of file SupercellSymInfo.hh.
|
inline |
Const reference local DoF matrix representations of the supercell's factor group.
Definition at line 80 of file SupercellSymInfo.hh.
|
inline |
SymGroupRep handle for site DoF matrix representation of supercell's factor group If sites are also permuted, then the local_dof_symrep is used as site_at(site_index_after).dof_value(_key) = representation_matrix * site_at(site_index_before).dof_value(_key)
Definition at line 90 of file SupercellSymInfo.hh.
|
inline |
SymGroupRep handle for occupant permutation representation of supercell's factor group An occupant permutation describes how the occupants at a site change identity due to a spatial transformation EXAMPLE: The label of a x-oriented dimer and a y-oriented dimer will be exchanged due to a 90-degree rotation about z If these are the only two species at the site, the permutation will have the form p=[1,0], with p[index_after]=index_before If sites are also permuted, then the occ_symrep is used as site_at(site_index_after).specie(index_after)=site_at(site_index_before).specie(p[index_after]);.
Definition at line 76 of file SupercellSymInfo.hh.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::permute_begin | ( | ) | const |
Definition at line 197 of file SupercellSymInfo.cc.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::permute_end | ( | ) | const |
Definition at line 202 of file SupercellSymInfo.cc.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::permute_it | ( | Index | supercell_factor_group_index, |
Index | translation_index | ||
) | const |
Definition at line 206 of file SupercellSymInfo.cc.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::permute_it | ( | Index | supercell_factor_group_index, |
UnitCell | translation | ||
) | const |
Definition at line 211 of file SupercellSymInfo.cc.
|
inline |
const reference to primitive lattice
Definition at line 132 of file SupercellSymInfo.hh.
SymGroupRep::RemoteHandle const & CASM::SupercellSymInfo::site_permutation_symrep | ( | ) | const |
Returns a "RemoteHandle" to the site permutation representation of the supercell's factor group
Returns a "RemoteHandle" to the site permutation representation
A site permutation consists of an index permutation for the sites of the supercell. If
site_coordinate(index_after) = apply(operation, site_coordinate(index_before)),
then this encodes permutations as
permutation[index_after] = index_before.
This convention treats fixed positions in space as having an unchanging order, and the permutation describes a rearrangement of objects among those sites, due to a transformation.
Note:
this->prim().factor_group()
, which may contain more operations than this->factor_group()
, so the Permutation SymGroupRep may have 'gaps' at the operations that aren't in this->factor_group()
.this->factor_group()
) instead of the "prim_factor_group_index" (index into this->prim().factor_group()
). Definition at line 164 of file SupercellSymInfo.cc.
|
inline |
const reference to supercell lattice
Definition at line 127 of file SupercellSymInfo.hh.
|
inline |
const reference to superlattice
Definition at line 137 of file SupercellSymInfo.hh.
|
inline |
long-int transformation from primitive lattice vectors to supercell lattice vectors supercell_lattice().lat_column_mat() = prim_lattice().lat_column_mat() * transformation_matrix_to_super()
Definition at line 145 of file SupercellSymInfo.hh.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::translate_begin | ( | ) | const |
Begin PermuteIterator over pure translational permutations / Equivalent to permute_begin()
Begin iterator over translation permutations.
Definition at line 186 of file SupercellSymInfo.cc.
SupercellSymInfo::permute_const_iterator CASM::SupercellSymInfo::translate_end | ( | ) | const |
End PermuteIterator over pure translational permutations.
End iterator over translation permutations.
Definition at line 192 of file SupercellSymInfo.cc.
|
inline |
Permutations describing reordering of sites of supercell due to a lattice translation of the primitive translation_permutation()[l] gives the site permutation due to translating to origin cell to unitcell[l] of the supercell.
Definition at line 111 of file SupercellSymInfo.hh.
|
inline |
UnitCellIndexConverter for this superlattice/primlattice pair Used to convert from lattice translations to site permutations.
Definition at line 96 of file SupercellSymInfo.hh.
|
inline |
UnitCellCoordIndexConverter for this superstructure/primstructure pair Used to convert from lattice translations to site permutations.
Definition at line 102 of file SupercellSymInfo.hh.
|
private |
Definition at line 207 of file SupercellSymInfo.hh.
|
mutableprivate |
Definition at line 205 of file SupercellSymInfo.hh.
|
private |
Definition at line 213 of file SupercellSymInfo.hh.
|
private |
Definition at line 216 of file SupercellSymInfo.hh.
|
private |
Definition at line 219 of file SupercellSymInfo.hh.
|
private |
Definition at line 211 of file SupercellSymInfo.hh.
|
private |
Definition at line 209 of file SupercellSymInfo.hh.
|
mutableprivate |
Definition at line 231 of file SupercellSymInfo.hh.
|
private |
Couples the primitive lattice to the supercell lattice, and knows the transformation matrix
Definition at line 172 of file SupercellSymInfo.hh.
|
private |
Stores the permutations associated with making translations from a lattice point to the origin
Definition at line 188 of file SupercellSymInfo.hh.
|
private |
Converts between ijk (UnitCell) values and their corresponding index in an unrolled vector
Definition at line 179 of file SupercellSymInfo.hh.
|
private |
Converts between bijk (UnitCellCoord) values and their corresponding linear index
Definition at line 184 of file SupercellSymInfo.hh.