CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ClexBasis Class Reference

#include <ClexBasis.hh>

Detailed Description

Definition at line 31 of file ClexBasis.hh.

Public Types

typedef std::vector< BasisSetBSetOrbit
 
typedef std::vector< BSetOrbit >::const_iterator BSetOrbitIterator
 
typedef Structure PrimType
 
typedef std::shared_ptr< const StructurePrimType_ptr
 

Public Member Functions

 ClexBasis (PrimType_ptr _prim_ptr, ClexBasisSpecs const &_basis_set_specs, ParsingDictionary< DoFType::Traits > const *_dof_dict)
 
PrimType const & prim () const
 
PrimType_ptr shared_prim () const
 
ClexBasisSpecs const & basis_set_specs () const
 
ParsingDictionary< DoFType::Traits > const * dof_dict () const
 
DoFType::Traits const & lookup_dof_type_traits (std::string const &key) const
 
Index n_sublat () const
 Total number of basis sites in primitive cell. More...
 
Index n_orbits () const
 Total number of BasisSet orbits. More...
 
Index n_functions () const
 Total number of basis functions. More...
 
BasisSet const & clust_basis (Index orbit_ind, Index equiv_ind) const
 Const access of clust basis of orbit. More...
 
BSetOrbit const & bset_orbit (Index orbit_ind) const
 Const access of BSetOrbit of orbit. More...
 
BSetOrbitIterator begin () const
 Const iterator to first BasisSet orbit. More...
 
BSetOrbitIterator cbegin () const
 Const iterator to first BasisSet orbit. More...
 
BSetOrbitIterator end () const
 Const past-the-end iterator for BasisSet orbits. More...
 
BSetOrbitIterator cend () const
 Const past-the-end iterator for BasisSet orbits. More...
 
std::map< DoFKey, std::vector< BasisSet > > const & site_bases () const
 Const access to dictionary of all site BasisSets. More...
 
std::map< DoFKey, std::vector< BasisSet > > const & global_bases () const
 Const access to dictionary of all global BasisSets. More...
 
template<typename OrbitIterType >
void generate (OrbitIterType _begin, OrbitIterType _end)
 generate clust_basis for all equivalent clusters in More...
 
template<typename OrbitIteratorType >
void generate (OrbitIteratorType _orbit_begin, OrbitIteratorType _orbit_end)
 

Private Member Functions

template<typename OrbitType >
BasisSet _construct_prototype_basis (OrbitType const &_orbit, std::vector< DoFKey > const &local_keys, std::vector< DoFKey > const &global_keys, Index max_poly_order) const
 
void _populate_site_bases ()
 Performs heavy lifting for populating site bases in m_site_bases. More...
 

Private Attributes

PrimType_ptr m_prim_ptr
 
ClexBasisSpecs m_basis_set_specs
 
ParsingDictionary< DoFType::Traits > const * m_dof_dict
 
notstd::cloneable_ptr< ClexBasisBuilderm_basis_builder
 pointer to class that constructs cluster functions More...
 
std::vector< BSetOrbitm_bset_tree
 Collection of all cluster orbits (are we keeping this?) More...
 
std::map< DoFKey, std::vector< BasisSet > > m_site_bases
 Dictionary of all site BasisSets, initialized on construction m_site_basis[DOF][b] gives site basis functions for 'DOF' at site 'b' of prim. More...
 
std::map< DoFKey, std::vector< BasisSet > > m_global_bases
 Dictionary of all global BasisSets, initialized. More...
 

Member Typedef Documentation

◆ BSetOrbit

typedef std::vector<BasisSet> CASM::ClexBasis::BSetOrbit

Definition at line 33 of file ClexBasis.hh.

◆ BSetOrbitIterator

typedef std::vector<BSetOrbit>::const_iterator CASM::ClexBasis::BSetOrbitIterator

Definition at line 34 of file ClexBasis.hh.

◆ PrimType

Definition at line 36 of file ClexBasis.hh.

◆ PrimType_ptr

typedef std::shared_ptr<const Structure> CASM::ClexBasis::PrimType_ptr

Definition at line 37 of file ClexBasis.hh.

Constructor & Destructor Documentation

◆ ClexBasis()

CASM::ClexBasis::ClexBasis ( PrimType_ptr  _prim_ptr,
ClexBasisSpecs const &  _basis_set_specs,
ParsingDictionary< DoFType::Traits > const *  _dof_dict 
)

Constructor

Parameters
_prim_ptrShared pointer to prim Structure
_basis_function_specsParameters specifying how to construct basis functions. See BasisFunctionSpecs for documentation of options.

The constructor constructs site bases, so that they are ready to be used when the generate method is called with a range of cluster orbits to generate cluster expasion basis functions.

Definition at line 31 of file ClexBasis.cc.

Member Function Documentation

◆ _construct_prototype_basis()

template<typename OrbitType >
template BasisSet CASM::ClexBasis::_construct_prototype_basis< AperiodicIntegralClusterOrbit > ( OrbitType const &  _orbit,
std::vector< DoFKey > const &  local_keys,
std::vector< DoFKey > const &  global_keys,
Index  max_poly_order 
) const
private

Definition at line 109 of file ClexBasis_impl.hh.

◆ _populate_site_bases()

void CASM::ClexBasis::_populate_site_bases ( )
private

Performs heavy lifting for populating site bases in m_site_bases.

Definition at line 107 of file ClexBasis.cc.

◆ basis_set_specs()

ClexBasisSpecs const & CASM::ClexBasis::basis_set_specs ( ) const

Definition at line 75 of file ClexBasis.cc.

◆ begin()

BSetOrbitIterator CASM::ClexBasis::begin ( ) const
inline

Const iterator to first BasisSet orbit.

Definition at line 83 of file ClexBasis.hh.

◆ bset_orbit()

BSetOrbit const& CASM::ClexBasis::bset_orbit ( Index  orbit_ind) const
inline

Const access of BSetOrbit of orbit.

Parameters
orbit_ind

Definition at line 78 of file ClexBasis.hh.

◆ cbegin()

BSetOrbitIterator CASM::ClexBasis::cbegin ( ) const
inline

Const iterator to first BasisSet orbit.

Definition at line 86 of file ClexBasis.hh.

◆ cend()

BSetOrbitIterator CASM::ClexBasis::cend ( ) const
inline

Const past-the-end iterator for BasisSet orbits.

Definition at line 92 of file ClexBasis.hh.

◆ clust_basis()

BasisSet const& CASM::ClexBasis::clust_basis ( Index  orbit_ind,
Index  equiv_ind 
) const
inline

Const access of clust basis of orbit.

Parameters
orbit_indand equivalent cluster
equiv_ind

Definition at line 73 of file ClexBasis.hh.

◆ dof_dict()

ParsingDictionary< DoFType::Traits > const * CASM::ClexBasis::dof_dict ( ) const

Definition at line 79 of file ClexBasis.cc.

◆ end()

BSetOrbitIterator CASM::ClexBasis::end ( ) const
inline

Const past-the-end iterator for BasisSet orbits.

Definition at line 89 of file ClexBasis.hh.

◆ generate() [1/2]

template<typename OrbitIteratorType >
void CASM::ClexBasis::generate ( OrbitIteratorType  _orbit_begin,
OrbitIteratorType  _orbit_end 
)

Definition at line 31 of file ClexBasis_impl.hh.

◆ generate() [2/2]

template<typename OrbitIterType >
void CASM::ClexBasis::generate ( OrbitIterType  _begin,
OrbitIterType  _end 
)

generate clust_basis for all equivalent clusters in

Parameters
_orbitree
_begin,_endA range of cluster orbits for which to generate cluster basis functions

◆ global_bases()

std::map<DoFKey, std::vector<BasisSet> > const& CASM::ClexBasis::global_bases ( ) const
inline

Const access to dictionary of all global BasisSets.

Definition at line 100 of file ClexBasis.hh.

◆ lookup_dof_type_traits()

DoFType::Traits const & CASM::ClexBasis::lookup_dof_type_traits ( std::string const &  key) const

Definition at line 83 of file ClexBasis.cc.

◆ n_functions()

Index CASM::ClexBasis::n_functions ( ) const

Total number of basis functions.

Definition at line 96 of file ClexBasis.cc.

◆ n_orbits()

Index CASM::ClexBasis::n_orbits ( ) const

Total number of BasisSet orbits.

Total number of cluster orbits.

Definition at line 93 of file ClexBasis.cc.

◆ n_sublat()

Index CASM::ClexBasis::n_sublat ( ) const

Total number of basis sites in primitive cell.

Definition at line 90 of file ClexBasis.cc.

◆ prim()

const ClexBasis::PrimType & CASM::ClexBasis::prim ( ) const

Definition at line 71 of file ClexBasis.cc.

◆ shared_prim()

ClexBasis::PrimType_ptr CASM::ClexBasis::shared_prim ( ) const

Definition at line 73 of file ClexBasis.cc.

◆ site_bases()

std::map<DoFKey, std::vector<BasisSet> > const& CASM::ClexBasis::site_bases ( ) const
inline

Const access to dictionary of all site BasisSets.

Definition at line 95 of file ClexBasis.hh.

Member Data Documentation

◆ m_basis_builder

notstd::cloneable_ptr<ClexBasisBuilder> CASM::ClexBasis::m_basis_builder
private

pointer to class that constructs cluster functions

Definition at line 129 of file ClexBasis.hh.

◆ m_basis_set_specs

ClexBasisSpecs CASM::ClexBasis::m_basis_set_specs
private

Definition at line 124 of file ClexBasis.hh.

◆ m_bset_tree

std::vector<BSetOrbit> CASM::ClexBasis::m_bset_tree
private

Collection of all cluster orbits (are we keeping this?)

Collection of all cluster BasisSets, one per cluster orbit

Definition at line 135 of file ClexBasis.hh.

◆ m_dof_dict

ParsingDictionary<DoFType::Traits> const* CASM::ClexBasis::m_dof_dict
private

Definition at line 126 of file ClexBasis.hh.

◆ m_global_bases

std::map<DoFKey, std::vector<BasisSet> > CASM::ClexBasis::m_global_bases
private

Dictionary of all global BasisSets, initialized.

Definition at line 143 of file ClexBasis.hh.

◆ m_prim_ptr

PrimType_ptr CASM::ClexBasis::m_prim_ptr
private

Definition at line 122 of file ClexBasis.hh.

◆ m_site_bases

std::map<DoFKey, std::vector<BasisSet> > CASM::ClexBasis::m_site_bases
private

Dictionary of all site BasisSets, initialized on construction m_site_basis[DOF][b] gives site basis functions for 'DOF' at site 'b' of prim.

Definition at line 140 of file ClexBasis.hh.


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