11 class DirectoryStructure;
12 class ProjectSettings;
13 struct ClexDescription;
14 class CompositionConverter;
15 class ChemicalReference;
16 class PrimNeighborList;
17 struct ClexBasisSpecs;
29 class PropertiesDatabase;
30 class DatabaseHandler;
63 std::shared_ptr<PrimType const> _shared_prim);
68 explicit PrimClex(
const fs::path &_root);
75 void refresh(
bool read_settings =
false,
bool read_composition =
false,
76 bool read_chem_ref =
false,
bool read_configs =
false,
77 bool clear_clex =
false);
116 std::shared_ptr<PrimType const>
const &
shared_prim()
const;
122 std::shared_ptr<PrimNeighborList>
const &
shared_nlist()
const;
135 template <
typename T>
138 template <
typename T>
141 template <
typename T>
144 template <
typename T>
147 template <
typename T>
150 template <
typename T>
161 std::string
const &basis_set_name)
const;
186 std::string
const &basis_set_name,
198 std::string
const &basis_set_name,
std::shared_ptr< Structure const > shared_prim
PrimNeighborList const & prim_neighbor_list
Convert between number of species per unit cell and parametric composition.
Provides access to all databases.
Generic interface for database of a particular CASM type.
Specification of CASM project directory structure.
A sparse container of ECI values and their corresponding orbit indices.
PrimClex is the top-level data structure for a CASM project.
The PrimNeighborList gives the coordinates of UnitCell that are neighbors of the origin UnitCell.
Structure specifies the lattice and atomic basis of a crystal.
const DB::PropertiesDatabase & const_db_props(std::string calc_type) const
DB::Database< T > & db() const
DB::DatabaseHandler & db_handler() const
ProjectSettings & settings()
Index vacancy_index() const
returns the index of vacancies in composition vectors
bool has_chemical_reference() const
check if ChemicalReference object initialized
std::shared_ptr< PrimNeighborList > const & shared_nlist() const
Access to the primitive neighbor list as a shared resource.
double crystallography_tol() const
Get the crystallography_tol.
const DirectoryStructure & dir() const
Access DirectoryStructure object. Throw if not set.
std::unique_ptr< PrimClexData > m_data
Index n_basis() const
const Access to number of basis atoms
void write_basis_set_data(std::shared_ptr< Structure const > shared_prim, ProjectSettings const &settings, std::string const &basis_set_name, ClexBasisSpecs const &basis_set_specs, PrimNeighborList &prim_neighbor_list)
bool has_dir() const
Check if DirectoryStructure exists.
PrimClex(ProjectSettings const &_project_settings, std::shared_ptr< PrimType const > _shared_prim)
Initial construction of a PrimClex, from ProjectSettings and shared prim.
bool vacancy_allowed() const
returns true if vacancy are an allowed species
PrimClex(const PrimClex &)=delete
bool has_eci(const ClexDescription &key) const
Clexulator make_clexulator(ProjectSettings const &settings, std::string const &basis_set_name, PrimNeighborList &prim_neighbor_list)
void refresh(bool read_settings=false, bool read_composition=false, bool read_chem_ref=false, bool read_configs=false, bool clear_clex=false)
Reload PrimClex data from settings.
ClexBasisSpecs const & basis_set_specs(std::string const &basis_set_name) const
ECIContainer const & eci(const ClexDescription &key) const
const DB::DatabaseHandler & const_db_handler() const
DB::ValDatabase< T > & generic_db() const
Clexulator clexulator(std::string const &basis_set_name) const
DB::PropertiesDatabase & db_props(std::string calc_type) const
const CompositionConverter & composition_axes() const
const Access CompositionConverter object
PrimNeighborList & nlist() const
Access to the primitive neighbor list.
std::shared_ptr< PrimType const > const & shared_prim() const
Access to the primitive Structure as a shared resource.
bool has_composition_axes() const
check if CompositionConverter object initialized
~PrimClex()
Necessary for "pointer to implementation".
void _init()
Initialization routines.
const DB::ValDatabase< T > & const_generic_db() const
const ChemicalReference & chemical_reference() const
const Access ChemicalReference object
bool has_basis_set_specs(std::string const &basis_set_name) const
const DB::Database< T > & const_db() const
const PrimType & prim() const
const Access to primitive Structure
INDEX_TYPE Index
For long integer indexing:
Provides parameters for constructing a cluster expansion basis (ClexBasis)
Specifies a particular cluster expansion.