20 template<
typename DataObject>
24 template<
bool IsConst>
31 namespace ConfigIO_impl {
49 bool parse_args(
const std::string &args)
override;
71 template<
typename ValueType>
75 template<
typename ValueType>
84 static const std::string
Name;
86 static const std::string
Desc;
99 std::unique_ptr<Comp>
clone()
const {
100 return std::unique_ptr<Comp>(this->
_clone());
110 bool parse_args(
const std::string &args)
override;
119 return new Comp(*
this);
146 std::unique_ptr<CompN>
clone()
const {
147 return std::unique_ptr<CompN>(this->
_clone());
154 return new CompN(*
this);
183 std::unique_ptr<SiteFrac>
clone()
const {
184 return std::unique_ptr<SiteFrac>(this->
_clone());
220 std::unique_ptr<AtomFrac>
clone()
const {
221 return std::unique_ptr<AtomFrac>(this->
_clone());
258 std::unique_ptr<MagBase>
clone()
const {
259 return std::unique_ptr<MagBase>(this->
_clone());
303 std::unique_ptr<Corr>
clone()
const {
304 return std::unique_ptr<Corr>(this->
_clone());
315 bool parse_args(
const std::string &args)
override;
322 return new Corr(*
this);
355 std::unique_ptr<Clex>
clone()
const;
367 bool parse_args(
const std::string &args)
override;
410 template<
bool IsConst>
bool parse_args(const std::string &args) override
Expects arguments of the form 'name' or 'name(Au)', 'name(Pt)', etc.
std::unique_ptr< Comp > clone() const
Clone using copy constructor.
AtomFrac SpeciesFrac
In the future, AtomFrac will actually be atoms only.
void init(const Configuration &_tmplt) const override
Adds index rules corresponding to the parsed args.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the mag sites.
static const std::string Name
ConfigIO::GenericConfigFormatter< std::string > failure_type()
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the parametric composition.
Returns fraction of all species that are a particular species, excluding vacancies.
void init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator and eci from the PrimClex.
std::vector< std::string > col_header(const Configuration &_tmplt) const override
col_header returns: {'comp(a)', 'comp(b)', ...'}
static const std::string Desc
static const std::string Desc
notstd::cloneable_ptr< Norm< Configuration > > m_norm
std::string short_header(const Configuration &_tmplt) const override
Short header returns: 'clex(formation_energy)', 'clex(formation_energy_per_species)', etc.
static const std::string Desc
ConfigIO::Selected selected_in(const ConfigSelection< IsConst > &_selection)
std::unique_ptr< SiteFrac > clone() const
Clone using copy constructor.
std::unique_ptr< Corr > clone() const
Clone using copy constructor.
ConfigIO::GenericConfigFormatter< std::string > calc_status()
ConfigIO::GenericConfigFormatter< double > relaxed_energy()
ConfigIO::GenericConfigFormatter< double > relaxed_magmom()
IntegerAttributeDictionary< Configuration > make_integer_dictionary< Configuration >()
static const std::string Desc
Returns fraction of sites occupied by a species, including vacancies.
ConfigIO::GenericConfigFormatter< std::string > subgroup_name()
bool parse_args(const std::string &args) override
Expects 'clex', 'clex(formation_energy)', or 'clex(formation_energy_per_species)'.
MagBase * _clone() const override
Clone using copy constructor.
MolDependent(const std::string &_name, const std::string &_desc)
Calculate number of each species per unit cell.
static const std::string Desc
Calculate param composition of a Configuration.
ConfigIO::GenericConfigFormatter< double > lattice_deformation()
ConfigIO::GenericConfigFormatter< double > rms_force()
ConfigIO::GenericConfigFormatter< double > relaxed_magmom_per_species()
Corr(const Clexulator &clexulator)
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
ConfigIO::GenericConfigFormatter< double > reference_energy()
double evaluate(const Configuration &config) const override
Returns the atom fraction.
double _norm(const Configuration &config) const
Returns the normalization.
void init(const Configuration &_tmplt) const override
If not yet initialized, use the global clexulator from the PrimClex.
ConfigIO::GenericConfigFormatter< bool > is_primitive()
T norm(const Tensor< T > &ttens)
Generic1DDatumFormatter< std::vector< double >, Configuration > relaxation_strain()
static const std::string Name
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.
StringAttributeDictionary< Configuration > make_string_dictionary< Configuration >()
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the site fraction.
BooleanAttributeDictionary< Configuration > make_boolean_dictionary< Configuration >()
CompN * _clone() const override
Clone using copy constructor.
ConfigIO::GenericConfigFormatter< double > volume_relaxation()
ConfigIO::GenericConfigFormatter< double > formation_energy()
SiteFrac * _clone() const override
Clone using copy constructor.
std::vector< std::string > col_header(const Configuration &_tmplt) const override
col_header returns: {'name(Au)', 'name(Pt)', ...}
std::unique_ptr< MagBase > clone() const
Clone using copy constructor.
std::vector< std::string > m_mol_names
ConfigIO::GenericConfigFormatter< bool > is_calculated()
ScalarAttributeDictionary< Configuration > make_scalar_dictionary< Configuration >()
Comp * _clone() const override
Clone using copy constructor.
std::unique_ptr< CompN > clone() const
Clone using copy constructor.
ConfigIO::GenericConfigFormatter< std::string > configname()
Constructs DataFormmaterDictionary containing all Configuration DatumFormatters.
AtomFrac * _clone() const override
Clone using copy constructor.
static const std::string Name
Returns predicted formation energy.
Returns fraction of sites occupied by a species.
static const std::string Name
bool validate(const Configuration &config) const override
Returns true if the Configuration has relaxed_mag.
bool validate(const Configuration &config) const override
Returns true if the PrimClex has composition axes.
static const std::string Name
ConfigIO::GenericConfigFormatter< double > basis_deformation()
ConfigIO::GenericConfigFormatter< double > reference_energy_per_species()
static const std::string Name
std::unique_ptr< AtomFrac > clone() const
Clone using copy constructor.
static const std::string Name
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
std::unique_ptr< Clex > clone() const
Clone using copy constructor.
Clex * _clone() const override
Clone using copy constructor.
ConfigIO::GenericConfigFormatter< Index > scel_size()
Returns the site-specific magnetic moments.
ConfigIO::GenericConfigFormatter< std::string > scelname()
static const std::string Desc
ConfigIO::GenericConfigFormatter< Index > multiplicity()
Returns correlation values.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the atom fraction.
ConfigIO::GenericConfigFormatter< bool > is_canonical()
ConfigIO::GenericConfigFormatter< double > relaxed_energy_per_species()
bool parse_args(const std::string &args) override
Expects 'corr', 'corr(clex_name)', 'corr(index_expression)', or 'corr(clex_name,index_expression)'.
Corr * _clone() const override
Clone using copy constructor.
A Configuration represents the values of all degrees of freedom in a Supercell.
Eigen::VectorXd evaluate(const Configuration &config) const override
Returns the parametric composition.
Returns true if configuration is specified in given selection (default: MASTER)
VectorXdAttributeDictionary< Configuration > make_vectorxd_dictionary< Configuration >()
ConfigIO::GenericConfigFormatter< double > formation_energy_per_species()
A sparse container of ECI values and their corresponding orbit indices.