CASM
AClustersApproachtoStatisticalMechanics
|
#include <ClusterFunctions.hh>
GenericOrbit is the set of all clusters that are equivalent with respect to a SymGroup and have at least one point in the unit cell. If two clusters can be mapped onto each other by translation only one of them will be included in orbit (typically)
Definition at line 10 of file ClusterFunctions.hh.
Public Types | |
typedef Array< ClustType > | 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 ClustType | value_type |
typedef Index | size_type |
typedef ClustType * | iterator |
typedef const ClustType * | const_iterator |
Public Member Functions | |
GenericOrbit (const ClustType &init_prototype) | |
void | set_lattice (const Lattice &new_home, COORD_TYPE mode) |
calls set_lattice on prototype, and all equivalent clusters More... | |
void | get_equivalent (const SymGroup &sym_group, double tol) |
GenericOrbit & | apply_sym (const SymOp &op) |
Apply symmetry to prototype and all the clusters in the orbit. More... | |
bool | contains (const ClustType &test_clust, double tol) const |
bool | contains (const typename ClustType::WhichCoordType &test_site, double tol) const |
Index | find (const ClustType &test_clust, double tol) const |
Same as contains, but returns index of equivalent cluster that maps onto test_clust. More... | |
Index | find (const ClustType &test_clust, Coordinate &trans, double tol) const |
void | collect_basis_info (const Array< typename ClustType::WhichCoordType > &basis, const Coordinate &shift) |
calls collect_basis_info on all clusters in orbit More... | |
void | collect_basis_info (const Array< typename ClustType::WhichCoordType > &basis) |
calls collect_basis_info on all clusters in orbit, with respect to a translation More... | |
SymGroupRep const * | get_full_permutation_representation () |
get permutation representation of every operation in equivalence_map to describe how operations permute site order More... | |
SymGroupRep const * | get_full_coord_representation () |
double | max_length () const |
return max_length of clusters in Orbit More... | |
double | min_length () const |
return min_length of clusters in Orbit More... | |
void | read (std::istream &stream, int num_sites, COORD_TYPE mode) |
void | read (std::istream &stream, COORD_TYPE mode, const SymGroup &sym_group) |
reads in an Orbit More... | |
ReturnArray< std::string > | orbit_function_cpp_strings (const Array< FunctionVisitor * > &labelers) |
returns Array of std::string, each of which is More... | |
ReturnArray< std::string > | flower_function_cpp_strings (const Array< FunctionVisitor * > &labelers, Index nlist_index) |
nlist_index is the index into the nlist for the site the flower centers on More... | |
ReturnArray< std::string > | delta_occfunc_flower_function_cpp_strings (BasisSet site_basis, const Array< FunctionVisitor * > &labelers, Index nlist_index, Index b_index, Index f_index) |
Index | get_index () const |
void | set_index (Index ind) const |
jsonParser & | to_json (jsonParser &json) const |
void | from_json (const jsonParser &json) |
Assumes the prototype lattice is already set. More... | |
Index | size () const |
void | swap (Array< ClustType > &RHS) |
ClustType & | at (Index ind) |
const ClustType & | at (Index ind) const |
const ClustType & | operator[] (Index ind) const |
ClustType & | operator[] (Index ind) |
ClustType & | back () |
const ClustType & | back () const |
ClustTypeconst * | begin () const |
ClustType * | begin () |
ClustTypeconst * | cbegin () const |
ClustTypeconst * | end () const |
ClustType * | end () |
ClustTypeconst * | cend () const |
void | push_back (const ClustType &toPush) |
void | pop_back () |
void | remove (Index ind) |
void | clear () |
void | resize (Index new_N) |
void | resize (Index new_N, const ClustType &fill_val) |
void | reserve (Index new_max) |
void | sort (const CompareType &comp) |
void | sort (Array< Index > &ind_order) |
void | sort () |
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 ClustType & | max () const |
const ClustType & | min () const |
ReturnArray< ClustType > | sub_array (Index ind_begin, Index ind_end) const |
ClustType | 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< ClustType > &RHS) const |
bool | operator!= (const Array< ClustType > &RHS) const |
bool | operator< (const Array< ClustType > &RHS) const |
bool | operator> (const Array< ClustType > &RHS) const |
bool | operator<= (const Array< ClustType > &RHS) const |
bool | operator>= (const Array< ClustType > &RHS) const |
bool | all_in (const Array &superset) const |
Index | coincidence (const Array &superset) const |
Index | incidences (const ClustType &test_elem) const |
Index | find (const ClustType &test_elem) const |
Index | reverse_find (const ClustType &test_elem) const |
Same as find, but starts from the last element of the Array. More... | |
Index | almost_find (const ClustType &test_elem, double tol_val=TOL) const |
Index | almost_reverse_find (const ClustType &test_elem, double tol_val=TOL) const |
Same as almost_find, but start from the last element of the Array. More... | |
bool | contains (const ClustType &test_elem) const |
bool | almost_contains (const ClustType &test_elem, double tol_val=TOL) const |
void | print_column (std::ostream &stream, const std::string &indent="") const |
Static Public Member Functions | |
static ReturnArray< ClustType > | sequence (const ClustType &initial, const ClustType &final) |
Returns an array with the sequence (initial, ++initial, ..., final), inclusive. More... | |
static ReturnArray< ClustType > | sequence (const ClustType &initial, const ClustType &increment, const ClustType &final) |
Public Attributes | |
ClustType | prototype |
Array< Array< SymOp > > | equivalence_map |
Private Attributes | |
Index | index |
Linear index of this orbit, when many orbits are stored in a complicated structure (e.g., Orbitree) More... | |
Index | permute_rep_ID |
Index | coord_rep_ID |
Array< GenericOrbit * > | sub_cluster |
Pointers to all orbits whose clusters are subclusters of clusters in this orbit. More... | |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
Same as almost_find, but start from the last element of the Array.
|
inherited |
|
inherited |
GenericOrbit< ClustType > & CASM::GenericOrbit< ClustType >::apply_sym | ( | const SymOp & | op | ) |
Apply symmetry to prototype and all the clusters in the orbit.
Definition at line 106 of file Orbit_impl.hh.
|
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 |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
void CASM::GenericOrbit< ClustType >::collect_basis_info | ( | const Array< typename ClustType::WhichCoordType > & | basis, |
const Coordinate & | shift | ||
) |
calls collect_basis_info on all clusters in orbit
Definition at line 188 of file Orbit_impl.hh.
void CASM::GenericOrbit< ClustType >::collect_basis_info | ( | const Array< typename ClustType::WhichCoordType > & | basis | ) |
calls collect_basis_info on all clusters in orbit, with respect to a translation
Definition at line 197 of file Orbit_impl.hh.
bool CASM::GenericOrbit< ClustType >::contains | ( | const ClustType & | test_clust, |
double | tol | ||
) | const |
go through all cluster in orbit array and see if test_clust is among them, to within a lattice translation only translates if the periodicity flag is on
Definition at line 124 of file Orbit_impl.hh.
bool CASM::GenericOrbit< ClustType >::contains | ( | const typename ClustType::WhichCoordType & | test_site, |
double | tol | ||
) | const |
check if test_site is contained in any of the equivalent clusters, to within a lattice translation only translates if the periodicity flag is on
Definition at line 140 of file Orbit_impl.hh.
|
inlineinherited |
ReturnArray< std::string > CASM::GenericOrbit< ClustType >::delta_occfunc_flower_function_cpp_strings | ( | BasisSet | site_basis, |
const Array< FunctionVisitor * > & | labelers, | ||
Index | nlist_index, | ||
Index | b_index, | ||
Index | f_index | ||
) |
b_index is the basis site index, f_index is the index of the configurational site basis function in Site::occupant_basis nlist_index is the index into the nlist for the site the flower centers on
b_index is the basis site index, f_index is the index of the configurational site basis function in Site::occupant_basis nlist_index is the index of the basis site in the neighbor list
Definition at line 364 of file Orbit_impl.hh.
|
inlineinherited |
|
inlineinherited |
Index CASM::GenericOrbit< ClustType >::find | ( | const ClustType & | test_clust, |
double | tol | ||
) | const |
Same as contains, but returns index of equivalent cluster that maps onto test_clust.
Definition at line 156 of file Orbit_impl.hh.
Index CASM::GenericOrbit< ClustType >::find | ( | const ClustType & | test_clust, |
Coordinate & | trans, | ||
double | tol | ||
) | const |
Same as contains, but returns index of equivalent cluster that maps onto test_clust translation that maps equivalent cluster onto test_clust is stored in 'trans'
Definition at line 172 of file Orbit_impl.hh.
|
inherited |
ReturnArray< std::string > CASM::GenericOrbit< ClustType >::flower_function_cpp_strings | ( | const Array< FunctionVisitor * > & | labelers, |
Index | nlist_index | ||
) |
nlist_index is the index into the nlist for the site the flower centers on
nlist_index is the index of the basis site in the neighbor list
Definition at line 312 of file Orbit_impl.hh.
void CASM::GenericOrbit< ClustType >::from_json | ( | const jsonParser & | json | ) |
Assumes the prototype lattice is already set.
re-throw exceptions
Definition at line 458 of file Orbit_impl.hh.
void CASM::GenericOrbit< ClustType >::get_equivalent | ( | const SymGroup & | sym_group, |
double | tol | ||
) |
Take prototype cluster, find all of the equivalent clusters (fills orbit array) only translates if the periodicity flag is on Also, fill equivalence_map example: GenericOrbit<SiteCluster> my_orbit(my_cluster); //specifies prototype my_orbit.get_equivalent(my_point_group); //maps protype onto all its equivalents
Definition at line 34 of file Orbit_impl.hh.
SymGroupRep const* CASM::GenericOrbit< ClustType >::get_full_coord_representation | ( | ) |
get symmetry representation of every operation in equivalence_map to describe how operations map coordinates at site 'i' of prototype onto coordinates of site 'j' of equivalent cluster
SymGroupRep const* CASM::GenericOrbit< ClustType >::get_full_permutation_representation | ( | ) |
get permutation representation of every operation in equivalence_map to describe how operations permute site order
|
inline |
|
inherited |
Checks whether any values are equal to their index – only valid for Array<Index>
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
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
|
inherited |
|
inline |
|
inherited |
|
inline |
|
inherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
ReturnArray< std::string > CASM::GenericOrbit< ClustType >::orbit_function_cpp_strings | ( | const Array< FunctionVisitor * > & | labelers | ) |
returns Array of std::string, each of which is
Definition at line 278 of file Orbit_impl.hh.
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
void CASM::GenericOrbit< ClustType >::read | ( | std::istream & | stream, |
int | num_sites, | ||
COORD_TYPE | mode | ||
) |
void CASM::GenericOrbit< ClustType >::read | ( | std::istream & | stream, |
COORD_TYPE | mode, | ||
const SymGroup & | sym_group | ||
) |
reads in an Orbit
Reads the orbit in the specified mode.
stream | Input file stream |
mode | Cartesian or fractional mode |
Definition at line 213 of file Orbit_impl.hh.
|
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
|
inline |
void CASM::GenericOrbit< ClustType >::set_lattice | ( | const Lattice & | new_home, |
COORD_TYPE | mode | ||
) |
calls set_lattice on prototype, and all equivalent clusters
Definition at line 12 of file Orbit_impl.hh.
|
inlineinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
jsonParser & CASM::GenericOrbit< ClustType >::to_json | ( | jsonParser & | json | ) | const |
Definition at line 424 of file Orbit_impl.hh.
|
private |
Array< Array<SymOp> > CASM::GenericOrbit< ClustType >::equivalence_map |
|
mutableprivate |
|
private |
ClustType CASM::GenericOrbit< ClustType >::prototype |
|
private |