CASM
AClustersApproachtoStatisticalMechanics
|
#include <ClusterFunctions.hh>
GenericOrbitBranch contains a set of GericOrbits that belong together (decided by user) with the constraint that all Orbits in an OrbitBranch have clusters with the same number of points i.e, an OrbitBranch contains only pairs, only triplets, only quadruplets, etc.
Definition at line 11 of file ClusterFunctions.hh.
Public Types | |
typedef Array< GenericOrbit < 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 GenericOrbit< ClustType > | value_type |
typedef Index | size_type |
typedef GenericOrbit< ClustType > * | iterator |
typedef const GenericOrbit < ClustType > * | const_iterator |
Public Member Functions | |
GenericOrbitBranch (const Lattice &init_home) | |
GenericOrbitBranch (const Lattice &init_home, Index tnum_sites) | |
GenericOrbitBranch (const ClustType &init_pivot) | |
GenericOrbitBranch (const ClustType &init_pivot, Index tnum_sites) | |
void | clear () |
GenericOrbit< ClustType > & | orbit (Index no) |
Method to access orbits. More... | |
const GenericOrbit< ClustType > & | orbit (Index no) const |
Index | num_sites () const |
How many points are allowed in clusters belonging to this OrbitBranch. More... | |
ClustType & | prototype (Index no) |
Method to access prototypes. More... | |
const ClustType & | prototype (Index no) const |
const ClustType & | equiv (Index no, Index ne) const |
Method to access equivalent clusters of Orbit 'no'. More... | |
ClustType & | equiv (Index no, Index ne) |
Index | size (Index no) const |
How many equivalent clusters are int orbit 'no'. More... | |
void | set_lattice (const Lattice &new_lat, COORD_TYPE mode) |
Calls set_lattice on all orbits of OrbitBranch. More... | |
void | set_pivot (const ClustType &new_pivot) |
void | push_back (const GenericOrbit< ClustType > &new_orbit) |
void | print (std::ostream &stream, COORD_TYPE mode=FRAC) |
void | sort () |
Sorts all of the orbits in OrbitBranch by max_length. More... | |
Index | find (const ClustType &test_clust, double tol) const |
bool | contains (const ClustType &test_clust, double tol) const |
If cluster exists in current OrbitBranch, return true. More... | |
GenericOrbitBranch & | apply_sym (const SymOp &op) |
apply_sym to everything in this OrbitBranch (i.e, pivot and all Orbits) More... | |
void | generate_asymmetric_unit (const Array< typename ClustType::WhichCoordType > &basis, const SymGroup &factor_group, double tol) |
bool | extract_orbits_including (const ClustType &pivot, GenericOrbitBranch &flowerbranch, double tol) const |
GenericOrbitBranch & | operator+= (const Coordinate &shift) |
GenericOrbitBranch & | operator-= (const Coordinate &shift) |
jsonParser & | to_json (jsonParser &json) const |
void | from_json (const jsonParser &json) |
Assumes the pivot lattice is already set. More... | |
Index | size () const |
void | swap (Array< GenericOrbit< ClustType > > &RHS) |
GenericOrbit< ClustType > & | at (Index ind) |
const GenericOrbit< ClustType > & | at (Index ind) const |
const GenericOrbit< ClustType > & | operator[] (Index ind) const |
GenericOrbit< ClustType > & | operator[] (Index ind) |
GenericOrbit< ClustType > & | back () |
const GenericOrbit< ClustType > & | back () const |
GenericOrbit< ClustType >const * | begin () const |
GenericOrbit< ClustType > * | begin () |
GenericOrbit< ClustType >const * | cbegin () const |
GenericOrbit< ClustType >const * | end () const |
GenericOrbit< ClustType > * | end () |
GenericOrbit< ClustType >const * | cend () const |
void | pop_back () |
void | remove (Index ind) |
void | resize (Index new_N) |
void | resize (Index new_N, const GenericOrbit< ClustType > &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 GenericOrbit< ClustType > & | max () const |
const GenericOrbit< ClustType > & | min () const |
ReturnArray< GenericOrbit < ClustType > > | sub_array (Index ind_begin, Index ind_end) const |
GenericOrbit< 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< GenericOrbit< ClustType > > &RHS) const |
bool | operator!= (const Array< GenericOrbit< ClustType > > &RHS) const |
bool | operator< (const Array< GenericOrbit< ClustType > > &RHS) const |
bool | operator> (const Array< GenericOrbit< ClustType > > &RHS) const |
bool | operator<= (const Array< GenericOrbit< ClustType > > &RHS) const |
bool | operator>= (const Array< GenericOrbit< ClustType > > &RHS) const |
bool | all_in (const Array &superset) const |
Index | coincidence (const Array &superset) const |
Index | incidences (const GenericOrbit< ClustType > &test_elem) const |
Index | find (const GenericOrbit< ClustType > &test_elem) const |
Index | reverse_find (const GenericOrbit< ClustType > &test_elem) const |
Same as find, but starts from the last element of the Array. More... | |
Index | almost_find (const GenericOrbit< ClustType > &test_elem, double tol_val=TOL) const |
Index | almost_reverse_find (const GenericOrbit< 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 GenericOrbit< ClustType > &test_elem) const |
bool | almost_contains (const GenericOrbit< 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 < GenericOrbit< ClustType > > | sequence (const GenericOrbit< ClustType > &initial, const GenericOrbit< ClustType > &final) |
Returns an array with the sequence (initial, ++initial, ..., final), inclusive. More... | |
static ReturnArray < GenericOrbit< ClustType > > | sequence (const GenericOrbit< ClustType > &initial, const GenericOrbit< ClustType > &increment, const GenericOrbit< ClustType > &final) |
Public Attributes | |
ClustType | pivot |
Array< Index > | index |
'index' is index of each orbit in an ordered linear array More... | |
Private Attributes | |
Index | m_num_sites |
The number of points for all Orbits in this OrbitBranch. More... | |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
Definition at line 46 of file OrbitBranch.hh.
|
inline |
Definition at line 47 of file OrbitBranch.hh.
|
inline |
Definition at line 48 of file OrbitBranch.hh.
|
inline |
Definition at line 49 of file OrbitBranch.hh.
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
Same as almost_find, but start from the last element of the Array.
|
inherited |
|
inherited |
GenericOrbitBranch< ClustType > & CASM::GenericOrbitBranch< ClustType >::apply_sym | ( | const SymOp & | op | ) |
apply_sym to everything in this OrbitBranch (i.e, pivot and all Orbits)
Definition at line 107 of file OrbitBranch_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 |
void CASM::GenericOrbitBranch< ClustType >::clear | ( | ) |
Definition at line 5 of file OrbitBranch_impl.hh.
|
inherited |
bool CASM::GenericOrbitBranch< ClustType >::contains | ( | const ClustType & | test_clust, |
double | tol | ||
) | const |
If cluster exists in current OrbitBranch, return true.
Definition at line 181 of file OrbitBranch_impl.hh.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
const ClustType & CASM::GenericOrbitBranch< ClustType >::equiv | ( | Index | no, |
Index | ne | ||
) | const |
Method to access equivalent clusters of Orbit 'no'.
Definition at line 43 of file OrbitBranch_impl.hh.
ClustType & CASM::GenericOrbitBranch< ClustType >::equiv | ( | Index | no, |
Index | ne | ||
) |
Definition at line 50 of file OrbitBranch_impl.hh.
bool CASM::GenericOrbitBranch< ClustType >::extract_orbits_including | ( | const ClustType & | pivot, |
GenericOrbitBranch< ClustType > & | flowerbranch, | ||
double | tol | ||
) | const |
Finds Orbits of Clusters for which 'pivot' is a subcluster and adds them to 'flowerbranch' e.g., my_big_branch.extract_orbits_including(my_little_cluster, my_flower_branch);
Definition at line 251 of file OrbitBranch_impl.hh.
Index CASM::GenericOrbitBranch< ClustType >::find | ( | const ClustType & | test_clust, |
double | tol | ||
) | const |
If cluster is contained in OrbitBranch, return linear index of Orbit that contains it; else, return number of orbits in orbitree
Definition at line 170 of file OrbitBranch_impl.hh.
|
inherited |
void CASM::GenericOrbitBranch< ClustType >::from_json | ( | const jsonParser & | json | ) |
Assumes the pivot lattice is already set.
re-throw exceptions
Definition at line 320 of file OrbitBranch_impl.hh.
void CASM::GenericOrbitBranch< ClustType >::generate_asymmetric_unit | ( | const Array< typename ClustType::WhichCoordType > & | basis, |
const SymGroup & | factor_group, | ||
double | tol | ||
) |
Definition at line 194 of file OrbitBranch_impl.hh.
|
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 |
|
inherited |
|
inherited |
|
inline |
How many points are allowed in clusters belonging to this OrbitBranch.
Definition at line 58 of file OrbitBranch.hh.
|
inlineinherited |
|
inline |
Definition at line 105 of file OrbitBranch.hh.
|
inline |
Definition at line 108 of file OrbitBranch.hh.
|
inherited |
|
inlineinherited |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
GenericOrbit< ClustType > & CASM::GenericOrbitBranch< ClustType >::orbit | ( | Index | no | ) |
Method to access orbits.
Definition at line 22 of file OrbitBranch_impl.hh.
const GenericOrbit< ClustType > & CASM::GenericOrbitBranch< ClustType >::orbit | ( | Index | no | ) | const |
Definition at line 15 of file OrbitBranch_impl.hh.
|
inherited |
|
inlineinherited |
void CASM::GenericOrbitBranch< ClustType >::print | ( | std::ostream & | stream, |
COORD_TYPE | mode = FRAC |
||
) |
Definition at line 116 of file OrbitBranch_impl.hh.
|
inherited |
ClustType & CASM::GenericOrbitBranch< ClustType >::prototype | ( | Index | no | ) |
Method to access prototypes.
Definition at line 36 of file OrbitBranch_impl.hh.
const ClustType & CASM::GenericOrbitBranch< ClustType >::prototype | ( | Index | no | ) | const |
Definition at line 29 of file OrbitBranch_impl.hh.
void CASM::GenericOrbitBranch< ClustType >::push_back | ( | const GenericOrbit< ClustType > & | new_orbit | ) |
Adds new orbit to OrbitBranch, but only if it has clusters of the correct size given by num_site(); if num_site() is undefined, push_back uses new_orbit to define its value
Definition at line 89 of file OrbitBranch_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
void CASM::GenericOrbitBranch< ClustType >::set_lattice | ( | const Lattice & | new_lat, |
COORD_TYPE | mode | ||
) |
Calls set_lattice on all orbits of OrbitBranch.
Definition at line 64 of file OrbitBranch_impl.hh.
void CASM::GenericOrbitBranch< ClustType >::set_pivot | ( | const ClustType & | new_pivot | ) |
Definition at line 74 of file OrbitBranch_impl.hh.
Index CASM::GenericOrbitBranch< ClustType >::size | ( | Index | no | ) | const |
How many equivalent clusters are int orbit 'no'.
Definition at line 57 of file OrbitBranch_impl.hh.
|
inlineinherited |
void CASM::GenericOrbitBranch< ClustType >::sort | ( | ) |
Sorts all of the orbits in OrbitBranch by max_length.
Definition at line 150 of file OrbitBranch_impl.hh.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
jsonParser & CASM::GenericOrbitBranch< ClustType >::to_json | ( | jsonParser & | json | ) | const |
Definition at line 293 of file OrbitBranch_impl.hh.
Array<Index> CASM::GenericOrbitBranch< ClustType >::index |
'index' is index of each orbit in an ordered linear array
Definition at line 44 of file OrbitBranch.hh.
|
private |
The number of points for all Orbits in this OrbitBranch.
Definition at line 32 of file OrbitBranch.hh.
ClustType CASM::GenericOrbitBranch< ClustType >::pivot |
Pivot is used for 'local' OrbitBranch; pivot is the cluster around which all clusters of the OrbitBranch are centered (i.e., the symmetry properties of pivot)
Definition at line 41 of file OrbitBranch.hh.