20 template <
typename DataObject>
28 namespace ConfigIO_impl {
44 bool parse_args(
const std::string &args)
override;
64 template <
typename ValueType>
67 template <
typename ValueType>
74 static const std::string
Name;
76 static const std::string
Desc;
86 std::unique_ptr<Comp>
clone()
const {
87 return std::unique_ptr<Comp>(this->
_clone());
96 bool parse_args(
const std::string &args)
override;
123 std::unique_ptr<CompN>
clone()
const {
124 return std::unique_ptr<CompN>(this->
_clone());
151 std::unique_ptr<SiteFrac>
clone()
const {
152 return std::unique_ptr<SiteFrac>(this->
_clone());
181 std::unique_ptr<AtomFrac>
clone()
const {
182 return std::unique_ptr<AtomFrac>(this->
_clone());
215 std::unique_ptr<Corr>
clone()
const {
216 return std::unique_ptr<Corr>(this->
_clone());
226 bool parse_args(
const std::string &args)
override;
262 std::unique_ptr<CorrContribution>
clone()
const {
263 return std::unique_ptr<CorrContribution>(this->
_clone());
271 bool parse_args(
const std::string &args)
override;
313 std::unique_ptr<PointCorr>
clone()
const {
314 return std::unique_ptr<PointCorr>(this->
_clone());
324 bool parse_args(
const std::string &args)
override;
358 std::unique_ptr<GradCorr>
clone()
const {
359 return std::unique_ptr<GradCorr>(this->
_clone());
370 bool parse_args(
const std::string &args)
override;
404 std::unique_ptr<Clex>
clone()
const;
417 bool parse_args(
const std::string &args)
override;
Returns fraction of all species that are a particular species, excluding vacancies.
std::unique_ptr< AtomFrac > clone() const
Clone using copy constructor.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
static const std::string Name
AtomFrac * _clone() const override
Clone using copy constructor.
static const std::string Desc
Returns predicted formation energy.
double evaluate(const Configuration &config) const override
Returns the atom fraction.
std::string short_header(const Configuration &_tmplt) const override
Short header returns: 'clex(formation_energy)', 'clex(formation_energy_per_species)',...
double _norm(const Configuration &config) const
Returns the normalization.
bool init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator and eci from the PrimClex.
notstd::cloneable_ptr< Norm< Configuration > > m_norm
bool parse_args(const std::string &args) override
Expects 'clex', 'clex(formation_energy)', or 'clex(formation_energy_per_species)'.
Clex * _clone() const override
Clone using copy constructor.
static const std::string Name
static const std::string Desc
std::unique_ptr< Clex > clone() const
Clone using copy constructor.
Calculate param composition of a Configuration.
Comp * _clone() const override
Clone using copy constructor.
bool validate(const Configuration &config) const override
Returns true if the PrimClex has composition axes.
static const std::string Desc
bool parse_args(const std::string &args) override
Expects arguments of the form 'comp' or 'comp(a)', 'comp(b)', etc.
static const std::string Name
std::unique_ptr< Comp > clone() const
Clone using copy constructor.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the parametric composition.
std::vector< std::string > col_header(const Configuration &_tmplt) const override
col_header returns: {'comp(a)', 'comp(b)', ...'}
Calculate number of each species per unit cell.
std::unique_ptr< CompN > clone() const
Clone using copy constructor.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the parametric composition.
static const std::string Desc
CompN * _clone() const override
Clone using copy constructor.
static const std::string Name
Returns correlation values.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
bool parse_args(const std::string &args) override
CorrContribution * _clone() const override
Clone using copy constructor.
bool init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator from the PrimClex.
CorrContribution(const Clexulator &clexulator)
static const std::string Name
Index m_linear_unitcell_index
std::unique_ptr< CorrContribution > clone() const
Clone using copy constructor.
static const std::string Desc
Returns correlation values.
static const std::string Desc
Corr(const Clexulator &clexulator)
static const std::string Name
bool init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator from the PrimClex.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
Corr * _clone() const override
Clone using copy constructor.
bool parse_args(const std::string &args) override
Expects 'corr', 'corr(clex_name)', 'corr(index_expression)', or 'corr(clex_name,index_expression)'.
std::unique_ptr< Corr > clone() const
Clone using copy constructor.
Returns correlation values.
GradCorr(const Clexulator &clexulator)
static const std::string Desc
bool parse_args(const std::string &args) override
Expects 'gradcorr(dof_name)', 'gradcorr(dof_name,clex_name)', 'gradcorr(dof_name,index_expression)',...
GradCorr * _clone() const override
Clone using copy constructor.
bool init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator from the PrimClex.
Eigen::MatrixXd evaluate(const Configuration &config) const override
Returns the atom fraction.
static const std::string Name
std::unique_ptr< GradCorr > clone() const
Clone using copy constructor.
Returns point correlation values.
bool init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator from the PrimClex.
PointCorr * _clone() const override
Clone using copy constructor.
static const std::string Desc
std::unique_ptr< PointCorr > clone() const
Clone using copy constructor.
PointCorr(const Clexulator &clexulator)
static const std::string Name
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
bool parse_args(const std::string &args) override
Expects 'corr', 'corr(clex_name)', 'corr(index_expression)', or 'corr(clex_name,index_expression)'.
Index m_linear_unitcell_index
Returns fraction of sites occupied by a species, including vacancies.
SiteFrac * _clone() const override
Clone using copy constructor.
static const std::string Desc
std::unique_ptr< SiteFrac > clone() const
Clone using copy constructor.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the site fraction.
static const std::string Name
Returns fraction of sites occupied by a species.
bool init(const Configuration &_tmplt) const override
Adds index rules corresponding to the parsed args.
bool parse_args(const std::string &args) override
Expects arguments of the form 'name' or 'name(Au)', 'name(Pt)', etc.
std::vector< std::string > m_mol_names
MolDependent(const std::string &_name, const std::string &_desc)
std::vector< std::string > col_header(const Configuration &_tmplt) const override
col_header returns: {'name(Au)', 'name(Pt)', ...}
A sparse container of ECI values and their corresponding orbit indices.
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
MatrixXdAttributeDictionary< Configuration > make_matrixxd_dictionary< Configuration >()
IntegerAttributeDictionary< Configuration > make_integer_dictionary< Configuration >()
BooleanAttributeDictionary< Configuration > make_boolean_dictionary< Configuration >()
ScalarAttributeDictionary< Configuration > make_scalar_dictionary< Configuration >()
VectorXdAttributeDictionary< Configuration > make_vectorxd_dictionary< Configuration >()
StringAttributeDictionary< Configuration > make_string_dictionary< Configuration >()
T norm(const Tensor< T > &ttens)
ConfigIO::GenericConfigFormatter< std::string > poscar()
ConfigIO::GenericConfigFormatter< bool > is_canonical()
ConfigIO::GenericConfigFormatter< double > atomic_deformation()
ConfigIO::GenericConfigFormatter< double > energy_per_species()
ConfigIO::GenericConfigFormatter< double > lattice_deformation()
ConfigIO::GenericConfigFormatter< double > reference_energy()
ConfigIO::GenericConfigFormatter< std::string > point_group_name()
ConfigIO::GenericConfigFormatter< jsonParser > properties()
ConfigIO::GenericConfigFormatter< jsonParser > config()
ConfigIO::GenericConfigFormatter< double > formation_energy()
ConfigIO::GenericConfigFormatter< double > relaxed_magmom()
ConfigIO::GenericConfigFormatter< jsonParser > structure()
ConfigIO::GenericConfigFormatter< double > volume_relaxation()
ConfigIO::GenericConfigFormatter< std::string > failure_type()
ConfigIO::GenericConfigFormatter< double > formation_energy_per_species()
Generic1DDatumFormatter< std::vector< double >, Configuration > relaxation_strain()
ConfigIO::GenericConfigFormatter< double > relaxed_energy()
ConfigIO::GenericConfigFormatter< bool > is_primitive()
ConfigIO::GenericConfigFormatter< Index > multiplicity()
AtomFrac SpeciesFrac
In the future, AtomFrac will actually be atoms only.
ConfigIO::GenericConfigFormatter< bool > is_calculated()
ConfigIO::GenericConfigFormatter< Index > scel_size()
ConfigIO::GenericConfigFormatter< double > relaxed_energy_per_species()
ConfigIO::GenericConfigFormatter< std::string > scelname()
ConfigIO::GenericConfigFormatter< double > relaxed_magmom_per_species()
ConfigIO::GenericConfigFormatter< std::string > calc_status()
ConfigIO::GenericConfigFormatter< std::string > diff_trans_endpoint_of()
ConfigIO::GenericConfigFormatter< double > rms_force()
ConfigIO::GenericConfigFormatter< double > energy()
ConfigIO::GenericConfigFormatter< std::string > configname()
Constructs DataFormmaterDictionary containing all Configuration DatumFormatters.
ConfigIO::GenericConfigFormatter< double > reference_energy_per_species()
INDEX_TYPE Index
For long integer indexing: