CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::GenericOrbitree< ClustType > Singleton Reference

#include <Clex.hh>

+ Inheritance diagram for CASM::GenericOrbitree< ClustType >:

Detailed Description

template<typename ClustType>
singleton CASM::GenericOrbitree< ClustType >

Definition at line 13 of file Clex.hh.

Public Types

typedef Array
< GenericOrbitBranch
< ClustType > > 
X1
 
typedef Array< X1X2
 
typedef Array< X2X3
 
typedef Array< X3X4
 
typedef Array< X4X5
 
typedef Array< X5X6
 
typedef Array< X6X7
 
typedef Array< X7X8
 
typedef Array< X8X9
 
typedef GenericOrbitBranch
< ClustType > 
value_type
 
typedef Index size_type
 
typedef GenericOrbitBranch
< ClustType > * 
iterator
 
typedef const
GenericOrbitBranch< ClustType > * 
const_iterator
 

Public Member Functions

 GenericOrbitree (const Lattice &t_lat, double _tol)
 
 GenericOrbitree (const GenericOrbitree< ClustType > &starttree)
 
double tol () const
 Access orbitree tolerance. More...
 
GenericOrbit< ClustType > & orbit (Index np, Index no)
 Access orbits using 2-D indexing. More...
 
const GenericOrbit< ClustType > & orbit (Index np, Index no) const
 
const ClustType & prototype (Index np, Index no) const
 Access prototype of orbit (np, no) More...
 
ClustType & prototype (Index np, Index no)
 
const ClustType & equiv (Index np, Index no, Index ne) const
 Access equivalent cluster 'ne' of orbit (np, no) More...
 
ClustType & equiv (Index np, Index no, Index ne)
 
Index size (Index np) const
 Number of orbits in OrbitBranch 'np'. More...
 
Index size (Index np, Index no) const
 Number of equivalent clusters in Orbit (np, no) More...
 
Index basis_set_size () const
 Count number of basis functions at each orbit and sum result. More...
 
const jsonParserbspecs () const
 
void set_bspecs (const jsonParser &_bspecs)
 
void resize (Index NP)
 Initialize NP orbitbranches in the Orbitree. Any existing orbits get deleted. More...
 
void push_back (const GenericOrbit< ClustType > &new_orbit)
 
void push_back (const GenericOrbitBranch< ClustType > &new_branch)
 push_back new OrbitBranch. Verifies that new branch uses this->lattice as home lattice More...
 
void set_lattice (const Lattice &new_lat, COORD_TYPE mode)
 sets lattice=new_lat and also updates all OrbitBranches, Orbits, and Clusters More...
 
void get_index () const
 Populates 'index', 'index_to_row' and 'index_to_column' Arrays. More...
 
void sort ()
 Calls 'sort()' on each OrbitBranch to sort Orbits by lengthscale. More...
 
void sort (Index np)
 Calls 'sort()' on the np OrbitBranch. More...
 
void collect_basis_info (const Structure &struc)
 
void get_s2s_vec ()
 Call get_s2s_vec on all clusters in orbitree. More...
 
void generate_clust_bases (std::vector< BasisSet const * > const &global_args, Index max_poly_order=-1)
 get clust_basis for all equivalent clusters More...
 
void generate_clust_bases (Index max_poly_order=-1)
 
Index find (const ClustType &test_clust) const
 If cluster/orbit exists in current orbitree, return its linear index; else, return number of orbits in orbitree. More...
 
Index find (const GenericOrbit< ClustType > &test_orbit) const
 
Index find (const ClustType &test_clust, Index nb) const
 
bool contains (const ClustType &test_clust)
 If cluster exists in current orbitree, return true. More...
 
bool contains (const GenericOrbit< ClustType > &test_orbit)
 If orbit exists in current orbitree, return true. More...
 
void generate_orbitree (const Structure &prim, bool verbose=false)
 
void generate_orbitree_TB (const Structure &prim)
 
void generate_orbitree (const Structure &prim, const int maxClust)
 
void generate_orbitree_neighbour (const Structure &prim, const Array< int > maxNeighbour)
 
void generate_decorated_orbitree (const GenericOrbitree< ClustType > &in_tree, const SymGroup &symgroup, PERIODICITY_TYPE ptype, bool full_decor=false)
 
void generate_hop_orbitree (const GenericOrbitree< SiteCluster > &in_tree, const Structure &prim)
 
void generate_orbitree_from_proto_file (std::string filename, const SymGroup &sym_group, PERIODICITY_TYPE ptype)
 
void generate_in_cell (const Structure &prim, const Lattice &cell, int num_images=0)
 
void get_clusters_by_site (const GenericOrbitree< ClustType > &in_tree, GenericOrbitree< ClustType > &out_tree, int num_sites)
 
void get_hierarchy () const
 
void read (std::istream &stream, int num_sites, COORD_TYPE mode)
 
void read (std::istream &stream, COORD_TYPE mode)
 
void read_CSPECS (std::istream &stream)
 
void print (std::ostream &stream) const
 
void write_full_clust (std::string file) const
 
void write_proto_clust (std::string file) const
 
void write_full_decorated_clust (std::string file) const
 
void write_proto_decorated_clust (std::string file) const
 
void print_full_clust (std::ostream &out) const
 
void print_full_basis_info (std::ostream &out) const
 
void print_proto_clust (std::ostream &out) const
 
void print_proto_clust_funcs (std::ostream &out) const
 
void print_full_decorated_clust (std::ostream &out) const
 
void print_proto_decorated_clust (std::ostream &out) const
 
void write_eci_in (std::string filename) const
 
void print_eci_in (std::ostream &out) const
 
void get_dynamical_matrix (MatrixXcd &dmat, const Coordinate &k, Index bands_per_site)
 
void apply_sym (const SymOp &op)
 
template<class PhenomType >
void generate_local_orbitree (const Structure &prim, const PhenomType &tmp_phenom_clust, bool include_phenom_clust_sites)
 Constructs a local orbitree about a Phenom Cluster, given a Structure. More...
 
void trans_and_expand (const Array< Coordinate > &prim_grid, bool override=0)
 
GenericOrbitree< ClustType > & operator= (const GenericOrbitree< ClustType > &RHS)
 
void from_json (const jsonParser &json)
 Assumes the pivot lattice is already set. More...
 
void read_orbitree_from_json (const std::string &json_file_name, const SymGroup &sym_group, const Structure &ref_struc)
 
bool read_custom_clusters_from_json (const jsonParser &json, const Structure &struc, const SymGroup &sym_group, bool verbose=false)
 Add more orbits to Orbitree based on JSON input. More...
 
void add_subclusters (const ClustType &big_clust, const Structure &prim, bool verbose=false)
 Adding in subclusters of a specific cluster into *this Orbitree. More...
 
const GenericOrbitBranch
< ClustType > & 
asym_unit () const
 
Index size () const
 
void swap (Array< GenericOrbitBranch< ClustType > > &RHS)
 
GenericOrbitBranch< ClustType > & at (Index ind)
 
const GenericOrbitBranch
< ClustType > & 
at (Index ind) const
 
const GenericOrbitBranch
< ClustType > & 
operator[] (Index ind) const
 
GenericOrbitBranch< ClustType > & operator[] (Index ind)
 
GenericOrbitBranch< ClustType > & back ()
 
const GenericOrbitBranch
< ClustType > & 
back () const
 
GenericOrbitBranch< ClustType >
const * 
begin () const
 
GenericOrbitBranch< ClustType > * begin ()
 
GenericOrbitBranch< ClustType >
const * 
cbegin () const
 
GenericOrbitBranch< ClustType >
const * 
end () const
 
GenericOrbitBranch< ClustType > * end ()
 
GenericOrbitBranch< ClustType >
const * 
cend () const
 
void pop_back ()
 
void remove (Index ind)
 
void clear ()
 
void resize (Index new_N, const GenericOrbitBranch< ClustType > &fill_val)
 
void reserve (Index new_max)
 
void sort (const CompareType &comp)
 
void sort (Array< Index > &ind_order)
 
Arrayappend (const Array &new_tail)
 
Arrayappend_unique (const Array &new_tail)
 
void swap_elem (Index i, Index j)
 
Arraypermute (const Array< Index > &perm_array)
 
Arrayipermute (const Array< Index > &perm_array)
 
bool next_permute ()
 
ReturnArray< Indexas_perm_inverse () const
 
ReturnArray< Indexas_perm_transform_by (const Array< Index > &trans_perm) const
 
const GenericOrbitBranch
< ClustType > & 
max () const
 
const GenericOrbitBranch
< ClustType > & 
min () const
 
ReturnArray
< GenericOrbitBranch
< ClustType > > 
sub_array (Index ind_begin, Index ind_end) const
 
GenericOrbitBranch< 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< GenericOrbitBranch< ClustType > > &RHS) const
 
bool operator!= (const Array< GenericOrbitBranch< ClustType > > &RHS) const
 
bool operator< (const Array< GenericOrbitBranch< ClustType > > &RHS) const
 
bool operator> (const Array< GenericOrbitBranch< ClustType > > &RHS) const
 
bool operator<= (const Array< GenericOrbitBranch< ClustType > > &RHS) const
 
bool operator>= (const Array< GenericOrbitBranch< ClustType > > &RHS) const
 
bool all_in (const Array &superset) const
 
Index coincidence (const Array &superset) const
 
Index incidences (const GenericOrbitBranch< ClustType > &test_elem) const
 
Index find (const GenericOrbitBranch< ClustType > &test_elem) const
 
Index reverse_find (const GenericOrbitBranch< ClustType > &test_elem) const
 Same as find, but starts from the last element of the Array. More...
 
Index almost_find (const GenericOrbitBranch< ClustType > &test_elem, double tol_val=TOL) const
 
Index almost_reverse_find (const GenericOrbitBranch< 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 GenericOrbitBranch< ClustType > &test_elem) const
 
bool almost_contains (const GenericOrbitBranch< 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
< GenericOrbitBranch
< ClustType > > 
sequence (const GenericOrbitBranch< ClustType > &initial, const GenericOrbitBranch< ClustType > &final)
 Returns an array with the sequence (initial, ++initial, ..., final), inclusive. More...
 
static ReturnArray
< GenericOrbitBranch
< ClustType > > 
sequence (const GenericOrbitBranch< ClustType > &initial, const GenericOrbitBranch< ClustType > &increment, const GenericOrbitBranch< ClustType > &final)
 

Public Attributes

Lattice lattice
 
double m_tol
 
Index max_num_sites
 
Index min_num_components
 
Array< double > max_length
 
double min_length
 
Array< int > num_clusts
 we don't use num_clusts yet. It might be a better way to specify how many clusters to enumerate More...
 
Array< int > index_to_row
 
Array< int > index_to_column
 
Array< Array< int > > index
 
Index Norbits
 
Array< Array< int > > subcluster
 

Private Member Functions

void _generate_asym_unit (const Structure &prim)
 
void _populate_site_bases ()
 
const GenericOrbitBranch
< ClustType > & 
_asym_unit () const
 

Private Attributes

GenericOrbitBranch< ClustType > m_asym_unit
 
Array< Array< Index > > m_b2asym
 
jsonParser m_bspecs
 

Member Typedef Documentation

typedef const GenericOrbitBranch< ClustType > * CASM::Array< GenericOrbitBranch< ClustType > >::const_iterator
inherited

Definition at line 76 of file Array.hh.

typedef GenericOrbitBranch< ClustType > * CASM::Array< GenericOrbitBranch< ClustType > >::iterator
inherited

Definition at line 75 of file Array.hh.

typedef Index CASM::Array< GenericOrbitBranch< ClustType > >::size_type
inherited

Definition at line 74 of file Array.hh.

typedef GenericOrbitBranch< ClustType > CASM::Array< GenericOrbitBranch< ClustType > >::value_type
inherited

Definition at line 73 of file Array.hh.

typedef Array<GenericOrbitBranch< ClustType > > CASM::Array< GenericOrbitBranch< ClustType > >::X1
inherited

Definition at line 63 of file Array.hh.

typedef Array<X1> CASM::Array< GenericOrbitBranch< ClustType > >::X2
inherited

Definition at line 64 of file Array.hh.

typedef Array<X2> CASM::Array< GenericOrbitBranch< ClustType > >::X3
inherited

Definition at line 65 of file Array.hh.

typedef Array<X3> CASM::Array< GenericOrbitBranch< ClustType > >::X4
inherited

Definition at line 66 of file Array.hh.

typedef Array<X4> CASM::Array< GenericOrbitBranch< ClustType > >::X5
inherited

Definition at line 67 of file Array.hh.

typedef Array<X5> CASM::Array< GenericOrbitBranch< ClustType > >::X6
inherited

Definition at line 68 of file Array.hh.

typedef Array<X6> CASM::Array< GenericOrbitBranch< ClustType > >::X7
inherited

Definition at line 69 of file Array.hh.

typedef Array<X7> CASM::Array< GenericOrbitBranch< ClustType > >::X8
inherited

Definition at line 70 of file Array.hh.

typedef Array<X8> CASM::Array< GenericOrbitBranch< ClustType > >::X9
inherited

Definition at line 71 of file Array.hh.

Constructor & Destructor Documentation

template<typename ClustType>
CASM::GenericOrbitree< ClustType >::GenericOrbitree ( const Lattice t_lat,
double  _tol 
)
inline

phenom_clust is the 'phenomenal cluster' around which local clusters are obtained When generating a local orbitree, the symmetry properties of phenom_cluster are used BP- Now phenom_clust is only a temporary object in generate_local_orbitree()

Definition at line 77 of file Orbitree.hh.

template<typename ClustType >
CASM::GenericOrbitree< ClustType >::GenericOrbitree ( const GenericOrbitree< ClustType > &  starttree)

Definition at line 10 of file Orbitree_impl.hh.

Member Function Documentation

template<typename ClustType>
const GenericOrbitBranch<ClustType>& CASM::GenericOrbitree< ClustType >::_asym_unit ( ) const
inlineprivate

Definition at line 234 of file Orbitree.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::_generate_asym_unit ( const Structure prim)
private

Definition at line 2528 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::_populate_site_bases ( )
private

Definition at line 2554 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::add_subclusters ( const ClustType &  big_clust,
const Structure prim,
bool  verbose = false 
)

Adding in subclusters of a specific cluster into *this Orbitree.

Definition at line 2407 of file Orbitree_impl.hh.

bool CASM::Array< GenericOrbitBranch< ClustType > >::all_in ( const Array< GenericOrbitBranch< ClustType > > &  superset) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::almost_contains ( const GenericOrbitBranch< ClustType > &  test_elem,
double  tol_val = TOL 
) const
inlineinherited

Definition at line 284 of file Array.hh.

Index CASM::Array< GenericOrbitBranch< ClustType > >::almost_find ( const GenericOrbitBranch< ClustType > &  test_elem,
double  tol_val = TOL 
) const
inherited
Index CASM::Array< GenericOrbitBranch< ClustType > >::almost_reverse_find ( const GenericOrbitBranch< ClustType > &  test_elem,
double  tol_val = TOL 
) const
inherited

Same as almost_find, but start from the last element of the Array.

Array& CASM::Array< GenericOrbitBranch< ClustType > >::append ( const Array< GenericOrbitBranch< ClustType > > &  new_tail)
inherited
Array& CASM::Array< GenericOrbitBranch< ClustType > >::append_unique ( const Array< GenericOrbitBranch< ClustType > > &  new_tail)
inherited
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::apply_sym ( const SymOp op)

Definition at line 2112 of file Orbitree_impl.hh.

ReturnArray<Index> CASM::Array< GenericOrbitBranch< ClustType > >::as_perm_inverse ( ) const
inherited

Construct permutation that undoes the permutation performed by 'this' Inverse operation is calculated the same, regardless of permutation convention

ReturnArray<Index> CASM::Array< GenericOrbitBranch< ClustType > >::as_perm_transform_by ( const Array< Index > &  trans_perm) const
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

template<typename ClustType>
const GenericOrbitBranch<ClustType>& CASM::GenericOrbitree< ClustType >::asym_unit ( ) const
inline

Definition at line 227 of file Orbitree.hh.

GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::at ( Index  ind)
inlineinherited

Definition at line 157 of file Array.hh.

const GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::at ( Index  ind) const
inlineinherited

Definition at line 162 of file Array.hh.

GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::back ( )
inlineinherited

Definition at line 177 of file Array.hh.

const GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::back ( ) const
inlineinherited

Definition at line 180 of file Array.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::basis_set_size ( ) const

Count number of basis functions at each orbit and sum result.

Definition at line 104 of file Orbitree_impl.hh.

GenericOrbitBranch< ClustType > const* CASM::Array< GenericOrbitBranch< ClustType > >::begin ( ) const
inlineinherited

Definition at line 185 of file Array.hh.

GenericOrbitBranch< ClustType > * CASM::Array< GenericOrbitBranch< ClustType > >::begin ( )
inlineinherited

Definition at line 192 of file Array.hh.

template<typename ClustType>
const jsonParser& CASM::GenericOrbitree< ClustType >::bspecs ( ) const
inline

Definition at line 104 of file Orbitree.hh.

GenericOrbitBranch< ClustType > const* CASM::Array< GenericOrbitBranch< ClustType > >::cbegin ( ) const
inlineinherited

Definition at line 189 of file Array.hh.

GenericOrbitBranch< ClustType > const* CASM::Array< GenericOrbitBranch< ClustType > >::cend ( ) const
inlineinherited

Definition at line 201 of file Array.hh.

void CASM::Array< GenericOrbitBranch< ClustType > >::clear ( )
inlineinherited

Definition at line 216 of file Array.hh.

Index CASM::Array< GenericOrbitBranch< ClustType > >::coincidence ( const Array< GenericOrbitBranch< ClustType > > &  superset) const
inherited
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::collect_basis_info ( const Structure struc)

Set basis_ind() of each site of each cluster in GenericOrbitree<ClustType> using the order of basis sites in 'struc'

Definition at line 223 of file Orbitree_impl.hh.

template<typename ClustType >
bool CASM::GenericOrbitree< ClustType >::contains ( const ClustType &  test_clust)

If cluster exists in current orbitree, return true.

Definition at line 300 of file Orbitree_impl.hh.

template<typename ClustType>
bool CASM::GenericOrbitree< ClustType >::contains ( const GenericOrbit< ClustType > &  test_orbit)

If orbit exists in current orbitree, return true.

bool CASM::Array< GenericOrbitBranch< ClustType > >::contains ( const GenericOrbitBranch< ClustType > &  test_elem) const
inlineinherited

Definition at line 281 of file Array.hh.

GenericOrbitBranch< ClustType > const* CASM::Array< GenericOrbitBranch< ClustType > >::end ( ) const
inlineinherited

Definition at line 197 of file Array.hh.

GenericOrbitBranch< ClustType > * CASM::Array< GenericOrbitBranch< ClustType > >::end ( )
inlineinherited

Definition at line 204 of file Array.hh.

template<typename ClustType >
const ClustType & CASM::GenericOrbitree< ClustType >::equiv ( Index  np,
Index  no,
Index  ne 
) const

Access equivalent cluster 'ne' of orbit (np, no)

Definition at line 75 of file Orbitree_impl.hh.

template<typename ClustType >
ClustType & CASM::GenericOrbitree< ClustType >::equiv ( Index  np,
Index  no,
Index  ne 
)

Definition at line 82 of file Orbitree_impl.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::find ( const ClustType &  test_clust) const

If cluster/orbit exists in current orbitree, return its linear index; else, return number of orbits in orbitree.

Definition at line 233 of file Orbitree_impl.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::find ( const GenericOrbit< ClustType > &  test_orbit) const

Definition at line 275 of file Orbitree_impl.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::find ( const ClustType &  test_clust,
Index  nb 
) const

Definition at line 260 of file Orbitree_impl.hh.

Index CASM::Array< GenericOrbitBranch< ClustType > >::find ( const GenericOrbitBranch< ClustType > &  test_elem) const
inherited
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::from_json ( const jsonParser json)

Assumes the pivot lattice is already set.

re-throw exceptions

Definition at line 2469 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_clust_bases ( std::vector< BasisSet const * > const &  global_args,
Index  max_poly_order = -1 
)

get clust_basis for all equivalent clusters

Definition at line 190 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_clust_bases ( Index  max_poly_order = -1)

Definition at line 183 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_decorated_orbitree ( const GenericOrbitree< ClustType > &  in_tree,
const SymGroup symgroup,
PERIODICITY_TYPE  ptype,
bool  full_decor = false 
)

Definition at line 879 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_hop_orbitree ( const GenericOrbitree< SiteCluster > &  in_tree,
const Structure prim 
)

Definition at line 953 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_in_cell ( const Structure prim,
const Lattice cell,
int  num_images = 0 
)

Definition at line 1246 of file Orbitree_impl.hh.

template<typename ClustType >
template<class PhenomType >
void CASM::GenericOrbitree< ClustType >::generate_local_orbitree ( const Structure prim,
const PhenomType &  tmp_phenom_clust,
bool  include_phenom_clust_sites 
)

Constructs a local orbitree about a Phenom Cluster, given a Structure.

  • First finds the point clusters, then pair clusters, then triplets, etc.
  • If 'include_phenom_clust_sites' is true, then clusters include sites in the phenom_clust, else they are not.
  • Sets the Orbitrees 'phenom_clust' to 'tmp_phenom_clust'

make an orbitree of local clusters around the cluster 'clust' in the structure 'prim' must set GenericOrbitree<ClustType>::max_num_sites and GenericOrbitree<ClustType>::max_length prior to calling GenericOrbitree<ClustType>::generate_local_orbitree

Definition at line 1880 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_orbitree ( const Structure prim,
bool  verbose = false 
)

Definition at line 355 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_orbitree ( const Structure prim,
const int  maxClust 
)

Definition at line 497 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_orbitree_from_proto_file ( std::string  filename,
const SymGroup sym_group,
PERIODICITY_TYPE  ptype 
)

Not sure how to treat this

Definition at line 1127 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::generate_orbitree_neighbour ( const Structure prim,
const Array< int >  maxNeighbour 
)

Definition at line 684 of file Orbitree_impl.hh.

template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::generate_orbitree_TB ( const Structure prim)
template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::get_clusters_by_site ( const GenericOrbitree< ClustType > &  in_tree,
GenericOrbitree< ClustType > &  out_tree,
int  num_sites 
)
template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::get_dynamical_matrix ( MatrixXcd &  dmat,
const Coordinate k,
Index  bands_per_site 
)
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::get_hierarchy ( ) const

Definition at line 1350 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::get_index ( ) const

Populates 'index', 'index_to_row' and 'index_to_column' Arrays.

Definition at line 312 of file Orbitree_impl.hh.

template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::get_s2s_vec ( )

Call get_s2s_vec on all clusters in orbitree.

bool CASM::Array< GenericOrbitBranch< ClustType > >::has_fixed_points ( ) const
inherited

Checks whether any values are equal to their index – only valid for Array<Index>

Index CASM::Array< GenericOrbitBranch< ClustType > >::incidences ( const GenericOrbitBranch< ClustType > &  test_elem) const
inherited
Array& CASM::Array< GenericOrbitBranch< ClustType > >::ipermute ( const Array< Index > &  perm_array)
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::is_ascending ( ) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::is_constant ( ) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::is_descending ( ) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::is_permute ( ) const
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 GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::max ( ) const
inherited
const GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::min ( ) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::next_permute ( )
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::operator!= ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inlineinherited

Definition at line 260 of file Array.hh.

bool CASM::Array< GenericOrbitBranch< ClustType > >::operator< ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::operator<= ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inlineinherited

Definition at line 265 of file Array.hh.

template<typename ClustType >
GenericOrbitree< ClustType > & CASM::GenericOrbitree< ClustType >::operator= ( const GenericOrbitree< ClustType > &  RHS)

Definition at line 1516 of file Orbitree_impl.hh.

bool CASM::Array< GenericOrbitBranch< ClustType > >::operator== ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::operator> ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inherited
bool CASM::Array< GenericOrbitBranch< ClustType > >::operator>= ( const Array< GenericOrbitBranch< ClustType > > &  RHS) const
inlineinherited

Definition at line 268 of file Array.hh.

const GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::operator[] ( Index  ind) const
inlineinherited

Definition at line 167 of file Array.hh.

GenericOrbitBranch< ClustType > & CASM::Array< GenericOrbitBranch< ClustType > >::operator[] ( Index  ind)
inlineinherited

Definition at line 172 of file Array.hh.

template<typename ClustType >
GenericOrbit< ClustType > & CASM::GenericOrbitree< ClustType >::orbit ( Index  np,
Index  no 
)

Access orbits using 2-D indexing.

Definition at line 54 of file Orbitree_impl.hh.

template<typename ClustType >
const GenericOrbit< ClustType > & CASM::GenericOrbitree< ClustType >::orbit ( Index  np,
Index  no 
) const

Definition at line 47 of file Orbitree_impl.hh.

Array& CASM::Array< GenericOrbitBranch< ClustType > >::permute ( const Array< Index > &  perm_array)
inherited
void CASM::Array< GenericOrbitBranch< ClustType > >::pop_back ( )
inlineinherited

Definition at line 212 of file Array.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print ( std::ostream &  stream) const

Definition at line 1485 of file Orbitree_impl.hh.

void CASM::Array< GenericOrbitBranch< ClustType > >::print_column ( std::ostream &  stream,
const std::string &  indent = "" 
) const
inherited
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_eci_in ( std::ostream &  out) const

Definition at line 2133 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_full_basis_info ( std::ostream &  out) const

Definition at line 1666 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_full_clust ( std::ostream &  out) const

Definition at line 1630 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_full_decorated_clust ( std::ostream &  out) const

Definition at line 1798 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_proto_clust ( std::ostream &  out) const

Definition at line 1701 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_proto_clust_funcs ( std::ostream &  out) const

Definition at line 1738 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::print_proto_decorated_clust ( std::ostream &  out) const

Definition at line 1832 of file Orbitree_impl.hh.

template<typename ClustType >
const ClustType & CASM::GenericOrbitree< ClustType >::prototype ( Index  np,
Index  no 
) const

Access prototype of orbit (np, no)

Definition at line 61 of file Orbitree_impl.hh.

template<typename ClustType >
ClustType & CASM::GenericOrbitree< ClustType >::prototype ( Index  np,
Index  no 
)

Definition at line 68 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::push_back ( const GenericOrbit< ClustType > &  new_orbit)

push_back a new orbit. If orbit has clusters of N sites, it will be placed in lowest-index OrbitBranch that contains N-clusters. If none is found, a new OrbitBranch is added

Definition at line 134 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::push_back ( const GenericOrbitBranch< ClustType > &  new_branch)

push_back new OrbitBranch. Verifies that new branch uses this->lattice as home lattice

Definition at line 124 of file Orbitree_impl.hh.

template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::read ( std::istream &  stream,
int  num_sites,
COORD_TYPE  mode 
)
template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::read ( std::istream &  stream,
COORD_TYPE  mode 
)
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::read_CSPECS ( std::istream &  stream)

Definition at line 1410 of file Orbitree_impl.hh.

template<typename ClustType >
bool CASM::GenericOrbitree< ClustType >::read_custom_clusters_from_json ( const jsonParser json,
const Structure struc,
const SymGroup sym_group,
bool  verbose = false 
)

Add more orbits to Orbitree based on JSON input.

Expected JSON format:

{
“orbits” : [
{ "coordinate_mode" : “Direct”, // could be “Fractional”, “Direct”, or “Cartesian”, future “UnitCellCoordinate”
"prototype" : [
[ 0.000000000000, 0.000000000000, 0.000000000000 ],
[ 1.000000000000, 0.000000000000, 0.000000000000 ],
[ 2.000000000000, 0.000000000000, 0.000000000000 ],
[ 3.000000000000, 0.000000000000, 0.000000000000 ]
],
“include_subclusters” : true (Default true if not specified)
},
... more orbit specs ...
}

Definition at line 2278 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::read_orbitree_from_json ( const std::string &  json_file_name,
const SymGroup sym_group,
const Structure ref_struc 
)

Definition at line 2228 of file Orbitree_impl.hh.

void CASM::Array< GenericOrbitBranch< ClustType > >::remove ( Index  ind)
inherited
void CASM::Array< GenericOrbitBranch< ClustType > >::reserve ( Index  new_max)
inherited
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::resize ( Index  NP)

Initialize NP orbitbranches in the Orbitree. Any existing orbits get deleted.

Definition at line 117 of file Orbitree_impl.hh.

void CASM::Array< GenericOrbitBranch< ClustType > >::resize ( Index  new_N,
const GenericOrbitBranch< ClustType > &  fill_val 
)
inherited
Index CASM::Array< GenericOrbitBranch< ClustType > >::reverse_find ( const GenericOrbitBranch< ClustType > &  test_elem) const
inherited

Same as find, but starts from the last element of the Array.

static ReturnArray<GenericOrbitBranch< ClustType > > CASM::Array< GenericOrbitBranch< ClustType > >::sequence ( const GenericOrbitBranch< ClustType > &  initial,
const GenericOrbitBranch< ClustType > &  final 
)
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

static ReturnArray<GenericOrbitBranch< ClustType > > CASM::Array< GenericOrbitBranch< ClustType > >::sequence ( const GenericOrbitBranch< ClustType > &  initial,
const GenericOrbitBranch< ClustType > &  increment,
const GenericOrbitBranch< ClustType > &  final 
)
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

template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::set_bspecs ( const jsonParser _bspecs)
inline

Definition at line 108 of file Orbitree.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::set_lattice ( const Lattice new_lat,
COORD_TYPE  mode 
)

sets lattice=new_lat and also updates all OrbitBranches, Orbits, and Clusters

Definition at line 150 of file Orbitree_impl.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::size ( Index  np) const

Number of orbits in OrbitBranch 'np'.

Definition at line 89 of file Orbitree_impl.hh.

template<typename ClustType >
Index CASM::GenericOrbitree< ClustType >::size ( Index  np,
Index  no 
) const

Number of equivalent clusters in Orbit (np, no)

Definition at line 96 of file Orbitree_impl.hh.

Index CASM::Array< GenericOrbitBranch< ClustType > >::size ( ) const
inlineinherited

Definition at line 145 of file Array.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::sort ( )

Calls 'sort()' on each OrbitBranch to sort Orbits by lengthscale.

Definition at line 165 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::sort ( Index  np)

Calls 'sort()' on the np OrbitBranch.

Definition at line 176 of file Orbitree_impl.hh.

void CASM::Array< GenericOrbitBranch< ClustType > >::sort ( const CompareType &  comp)
inherited
void CASM::Array< GenericOrbitBranch< ClustType > >::sort ( Array< Index > &  ind_order)
inherited
ReturnArray<GenericOrbitBranch< ClustType > > CASM::Array< GenericOrbitBranch< ClustType > >::sub_array ( Index  ind_begin,
Index  ind_end 
) const
inherited
GenericOrbitBranch< ClustType > CASM::Array< GenericOrbitBranch< ClustType > >::sum ( ) const
inherited
void CASM::Array< GenericOrbitBranch< ClustType > >::swap ( Array< GenericOrbitBranch< ClustType > > &  RHS)
inherited
void CASM::Array< GenericOrbitBranch< ClustType > >::swap_elem ( Index  i,
Index  j 
)
inlineinherited

Definition at line 231 of file Array.hh.

template<typename ClustType >
double CASM::GenericOrbitree< ClustType >::tol ( ) const

Access orbitree tolerance.

Definition at line 40 of file Orbitree_impl.hh.

template<typename ClustType>
void CASM::GenericOrbitree< ClustType >::trans_and_expand ( const Array< Coordinate > &  prim_grid,
bool  override = 0 
)
template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::write_eci_in ( std::string  filename) const

Definition at line 2123 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::write_full_clust ( std::string  file) const

Definition at line 1562 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::write_full_decorated_clust ( std::string  file) const

Definition at line 1596 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::write_proto_clust ( std::string  file) const

Definition at line 1579 of file Orbitree_impl.hh.

template<typename ClustType >
void CASM::GenericOrbitree< ClustType >::write_proto_decorated_clust ( std::string  file) const

Definition at line 1614 of file Orbitree_impl.hh.

Member Data Documentation

template<typename ClustType>
Array< Array<int> > CASM::GenericOrbitree< ClustType >::index
mutable

Definition at line 63 of file Orbitree.hh.

template<typename ClustType>
Array<int> CASM::GenericOrbitree< ClustType >::index_to_column
mutable

Definition at line 62 of file Orbitree.hh.

template<typename ClustType>
Array<int> CASM::GenericOrbitree< ClustType >::index_to_row
mutable

Arrays to map 2-D orbit indices onto a single index for my_orbitree[i][j], there is a unique index k=index[i][j] 'i' can be found using index_to_row[k] 'j' can be found using index_to_column[k]

Definition at line 62 of file Orbitree.hh.

template<typename ClustType>
Lattice CASM::GenericOrbitree< ClustType >::lattice

Definition at line 42 of file Orbitree.hh.

template<typename ClustType>
GenericOrbitBranch<ClustType> CASM::GenericOrbitree< ClustType >::m_asym_unit
private

Definition at line 239 of file Orbitree.hh.

template<typename ClustType>
Array<Array<Index> > CASM::GenericOrbitree< ClustType >::m_b2asym
private

Definition at line 243 of file Orbitree.hh.

template<typename ClustType>
jsonParser CASM::GenericOrbitree< ClustType >::m_bspecs
private

Definition at line 246 of file Orbitree.hh.

template<typename ClustType>
double CASM::GenericOrbitree< ClustType >::m_tol

Definition at line 44 of file Orbitree.hh.

template<typename ClustType>
Array<double> CASM::GenericOrbitree< ClustType >::max_length

Maximum allowed between any two points in a cluster of Orbitree[i] (e.g., max_length[i] is the max length allowed for a cluster in the 'i' OrbitBranch)

Definition at line 51 of file Orbitree.hh.

template<typename ClustType>
Index CASM::GenericOrbitree< ClustType >::max_num_sites

Definition at line 47 of file Orbitree.hh.

template<typename ClustType>
double CASM::GenericOrbitree< ClustType >::min_length

minimum length allowed between any two points in a cluster if negative, N-clusters with repeated points are allowed

Definition at line 54 of file Orbitree.hh.

template<typename ClustType>
Index CASM::GenericOrbitree< ClustType >::min_num_components

Definition at line 47 of file Orbitree.hh.

template<typename ClustType>
Index CASM::GenericOrbitree< ClustType >::Norbits
mutable

Definition at line 64 of file Orbitree.hh.

template<typename ClustType>
Array<int> CASM::GenericOrbitree< ClustType >::num_clusts

we don't use num_clusts yet. It might be a better way to specify how many clusters to enumerate

Definition at line 56 of file Orbitree.hh.

template<typename ClustType>
Array< Array<int> > CASM::GenericOrbitree< ClustType >::subcluster
mutable

For each orbit 'k', lists all orbits that contain subclusters of the clusters in orbit 'k' (given by their linear index)

Definition at line 68 of file Orbitree.hh.


The documentation for this singleton was generated from the following files: