21 using xtal::BasicStructure;
28 class PrimNeighborList;
29 class ClexBasisBuilder;
95 std::map<DoFKey, std::vector<BasisSet> >
const &
site_bases()
const {
109 template <
typename OrbitIterType>
110 void generate(OrbitIterType _begin, OrbitIterType _end);
113 template <
typename OrbitType>
115 std::vector<DoFKey>
const &local_keys,
116 std::vector<DoFKey>
const &global_keys,
117 Index max_poly_order)
const;
151 int space = 18,
char delim =
'\n');
153 template <
typename OrbitType>
156 std::vector<OrbitType>
const &_tree);
158 namespace ClexBasis_impl {
161 template <
typename OrbitType>
std::map< DoFKey, std::vector< BasisSet > > m_global_bases
Dictionary of all global BasisSets, initialized.
std::vector< BSetOrbit >::const_iterator BSetOrbitIterator
std::shared_ptr< const Structure > PrimType_ptr
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 f...
notstd::cloneable_ptr< ClexBasisBuilder > m_basis_builder
pointer to class that constructs cluster functions
Index n_orbits() const
Total number of BasisSet orbits.
BSetOrbitIterator end() const
Const past-the-end iterator for BasisSet orbits.
void generate(OrbitIterType _begin, OrbitIterType _end)
generate clust_basis for all equivalent clusters in
BSetOrbitIterator cend() const
Const past-the-end iterator for BasisSet orbits.
std::map< DoFKey, std::vector< BasisSet > > const & site_bases() const
Const access to dictionary of all site BasisSets.
std::vector< BasisSet > BSetOrbit
BasisSet _construct_prototype_basis(OrbitType const &_orbit, std::vector< DoFKey > const &local_keys, std::vector< DoFKey > const &global_keys, Index max_poly_order) const
BSetOrbitIterator cbegin() const
Const iterator to first BasisSet orbit.
PrimType_ptr shared_prim() const
ClexBasis(PrimType_ptr _prim_ptr, ClexBasisSpecs const &_basis_set_specs, ParsingDictionary< DoFType::Traits > const *_dof_dict)
ParsingDictionary< DoFType::Traits > const * dof_dict() const
std::map< DoFKey, std::vector< BasisSet > > const & global_bases() const
Const access to dictionary of all global BasisSets.
ParsingDictionary< DoFType::Traits > const * m_dof_dict
Index n_sublat() const
Total number of basis sites in primitive cell.
std::vector< BSetOrbit > m_bset_tree
Collection of all cluster orbits (are we keeping this?)
void _populate_site_bases()
Performs heavy lifting for populating site bases in m_site_bases.
BSetOrbitIterator begin() const
Const iterator to first BasisSet orbit.
PrimType const & prim() const
Index n_functions() const
Total number of basis functions.
BasisSet const & clust_basis(Index orbit_ind, Index equiv_ind) const
Const access of clust basis of orbit.
ClexBasisSpecs const & basis_set_specs() const
DoFType::Traits const & lookup_dof_type_traits(std::string const &key) const
ClexBasisSpecs m_basis_set_specs
BSetOrbit const & bset_orbit(Index orbit_ind) const
Const access of BSetOrbit of orbit.
Collection of all the traits specific to a DoF type.
Parsing dictionary for obtaining the correct MoleculeAttribute given a name.
Structure specifies the lattice and atomic basis of a crystal.
BasicStructure specifies the lattice and atomic basis of a crystal.
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
BasisSet construct_proto_dof_basis(OrbitType const &_orbit, BasisSet::ArgList const &site_dof_sets)
std::vector< DoFKey > extract_dof_types(Structure const &_prim)
Index print_clust_basis(std::ostream &stream, BasisSet _clust_basis, IntegralCluster const &_prototype, Index func_ind=0, int space=18, char delim='\n')
void print_proto_clust_funcs(ClexBasis const &_clex_basis, std::ostream &out, BasicStructure const &_prim, std::vector< OrbitType > const &_tree)
INDEX_TYPE Index
For long integer indexing:
Provides parameters for constructing a cluster expansion basis (ClexBasis)