CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ConfigIO::Clex Class Referenceabstract

#include <ConfigIO.hh>

+ Inheritance diagram for CASM::ConfigIO::Clex:

Detailed Description

Returns predicted formation energy.

Returns predicted formation energy (only formation energy for now)

Definition at line 385 of file ConfigIO.hh.

Public Types

typedef DataObject DataObject
 
typedef long difference_type
 
typedef DataFormatterDictionary< DataObject, BaseDatumFormatter< DataObject > > DictType
 

Public Member Functions

 Clex ()
 
 Clex (const Clexulator &clexulator, const ECIContainer &eci, const Norm< Configuration > &norm)
 Construct with Clexulator, ECI, and either 'formation_energy' or 'formation_energy_per_species'. More...
 
double evaluate (const Configuration &config) const override
 Returns the atom fraction. More...
 
std::unique_ptr< Clexclone () const
 Clone using copy constructor. More...
 
bool init (const Configuration &_tmplt) const override
 If not yet initialized, use the global clexulator and eci from the PrimClex. More...
 
bool parse_args (const std::string &args) override
 Expects 'clex', 'clex(formation_energy)', or 'clex(formation_energy_per_species)'. More...
 
std::string short_header (const Configuration &_tmplt) const override
 Short header returns: 'clex(formation_energy)', 'clex(formation_energy_per_species)', etc. More...
 
virtual ValueType operator() (const DataObject &obj) const
 Return requested data from obj, throwing std::runtime_error if not valid. More...
 
virtual ValueType evaluate (const DataObject &obj) const =0
 
virtual void inject (const DataObject &_data_obj, DataStream &_stream, Index pass_index=0) const override
 Default implementation injects each element, via operator<<. More...
 
virtual void print (const DataObject &_data_obj, std::ostream &_stream, Index pass_index=0) const override
 Default implementation prints each element in a column, via operator<<. More...
 
virtual jsonParserto_json (const DataObject &_data_obj, jsonParser &json) const override
 Default implementation calls jsonParser& to_json(const ValueType&, jsonParser&) More...
 
const std::string & name () const
 Returns a name for the formatter, which becomes the tag used for parsing. More...
 
const std::string & description () const
 Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens. More...
 
virtual DatumFormatterClass type () const
 
const DictTypehome () const
 const Access the dictionary containing this formatter, set during DictType::lookup More...
 
void set_home (const DictType &home) const
 Set the dictionary containing this formatter, set during DictType::lookup. More...
 
virtual bool init (const DataObject &_template_obj) const
 Perform all initialization steps using _template_obj. Returns true if initialization is successful and false if _template_obj has insufficient data to complete initialization. More...
 
virtual bool validate (const DataObject &_data_obj) const
 Returns true if _data_obj has valid values for requested data. More...
 
virtual std::vector< std::string > col_header (const DataObject &_template_obj) const
 Returns a header string for each scalar produced by the formatter parsing the entries in the col_header should reproduce the exact query described by the formatter. Ex: "clex(formation_energy)" or "comp(a)", "comp(c)". More...
 
virtual std::string long_header (const DataObject &_template_obj) const
 Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)". More...
 
virtual std::string short_header (const DataObject &_template_obj) const
 Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp". More...
 
virtual Index num_passes (const DataObject &_data_obj) const
 

Static Public Attributes

static const std::string Name = "clex"
 
static const std::string Desc
 

Protected Types

typedef multivector< Index >::X< 2 > IndexContainer
 

Protected Member Functions

void _parse_index_expression (const std::string &_expr)
 
void _add_rule (const std::vector< Index > &new_rule) const
 
const IndexContainer_index_rules () const
 

Private Member Functions

double _norm (const Configuration &config) const
 Returns the normalization. More...
 
Clex_clone () const override
 Clone using copy constructor. More...
 

Private Attributes

std::string m_clex_name
 
Clexulator m_clexulator
 
ECIContainer m_eci
 
notstd::cloneable_ptr< Norm< Configuration > > m_norm
 
std::string m_name
 
std::string m_description
 
IndexContainer m_index_rules
 
const DictTypem_home
 

Member Typedef Documentation

◆ DataObject

Definition at line 334 of file DataFormatter.hh.

◆ DictType

◆ difference_type

Definition at line 335 of file DataFormatter.hh.

◆ IndexContainer

typedef multivector<Index>::X<2> CASM::BaseDatumFormatter< DataObject >::IndexContainer
protectedinherited

Definition at line 459 of file DataFormatter.hh.

Constructor & Destructor Documentation

◆ Clex() [1/2]

CASM::ConfigIO::Clex::Clex ( )

Definition at line 476 of file ConfigIO.cc.

◆ Clex() [2/2]

CASM::ConfigIO::Clex::Clex ( const Clexulator clexulator,
const ECIContainer eci,
const Norm< Configuration > &  norm 
)

Construct with Clexulator, ECI, and either 'formation_energy' or 'formation_energy_per_species'.

Definition at line 478 of file ConfigIO.cc.

Member Function Documentation

◆ _add_rule()

void CASM::BaseDatumFormatter< DataObject >::_add_rule ( const std::vector< Index > &  new_rule) const
inlineprotectedinherited

Definition at line 472 of file DataFormatter.hh.

◆ _clone()

Clex * CASM::ConfigIO::Clex::_clone ( ) const
overrideprivatevirtual

Clone using copy constructor.

Implements CASM::BaseValueFormatter< ValueType, DataObject >.

Definition at line 556 of file ConfigIO.cc.

◆ _index_rules()

const IndexContainer& CASM::BaseDatumFormatter< DataObject >::_index_rules ( ) const
inlineprotectedinherited

Definition at line 476 of file DataFormatter.hh.

◆ _norm()

double CASM::ConfigIO::Clex::_norm ( const Configuration config) const
private

Returns the normalization.

Definition at line 551 of file ConfigIO.cc.

◆ _parse_index_expression()

void CASM::BaseDatumFormatter< DataObject >::_parse_index_expression ( const std::string &  _expr)
protectedinherited

Derived DatumFormatters have some optional functionality for parsing index expressions in order to make it easy to handle ranges such as:

formatter_name(3,4:8)

in which case, DerivedDatumFormatter::parse_args() is called with the string "3,4:8" by dispatching that string to BaseDatumFormatter::_parse_index_expression(), m_index_rules will be populated with {{3,4},{3,5},{3,6},{3,7},{3,8}}

Definition at line 470 of file DataFormatter_impl.hh.

◆ clone()

std::unique_ptr< Clex > CASM::ConfigIO::Clex::clone ( ) const

Clone using copy constructor.

Definition at line 491 of file ConfigIO.cc.

◆ col_header()

virtual std::vector<std::string> CASM::BaseDatumFormatter< DataObject >::col_header ( const DataObject _template_obj) const
inlinevirtualinherited

Returns a header string for each scalar produced by the formatter parsing the entries in the col_header should reproduce the exact query described by the formatter. Ex: "clex(formation_energy)" or "comp(a)", "comp(c)".

  • Default uses short_header

Reimplemented in CASM::Base2DDatumFormatter< Container, DataObject >, CASM::Base1DDatumFormatter< Container, DataObject >, and CASM::DatumFormatterAlias< DataObject >.

Definition at line 389 of file DataFormatter.hh.

◆ description()

const std::string& CASM::BaseDatumFormatter< DataObject >::description ( ) const
inlineinherited

Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens.

Definition at line 352 of file DataFormatter.hh.

◆ evaluate() [1/2]

double CASM::ConfigIO::Clex::evaluate ( const Configuration config) const
override

Returns the atom fraction.

Definition at line 486 of file ConfigIO.cc.

◆ evaluate() [2/2]

template<typename ValueType , typename DataObject >
virtual ValueType CASM::BaseValueFormatter< ValueType, DataObject >::evaluate ( const DataObject obj) const
pure virtualinherited

◆ home()

const DictType& CASM::BaseDatumFormatter< DataObject >::home ( ) const
inlineinherited

const Access the dictionary containing this formatter, set during DictType::lookup

Definition at line 360 of file DataFormatter.hh.

◆ init() [1/2]

bool CASM::ConfigIO::Clex::init ( const Configuration _tmplt) const
override

If not yet initialized, use the global clexulator and eci from the PrimClex.

If not yet initialized, use the default cluster expansion from the PrimClex.

Definition at line 497 of file ConfigIO.cc.

◆ init() [2/2]

virtual bool CASM::BaseDatumFormatter< DataObject >::init ( const DataObject _template_obj) const
inlinevirtualinherited

Perform all initialization steps using _template_obj. Returns true if initialization is successful and false if _template_obj has insufficient data to complete initialization.

Reimplemented in CASM::Base2DDatumFormatter< Container, DataObject >, CASM::Base1DDatumFormatter< Container, DataObject >, and CASM::DatumFormatterAlias< DataObject >.

Definition at line 376 of file DataFormatter.hh.

◆ inject()

template<typename ValueType , typename DataObject >
virtual void CASM::BaseValueFormatter< ValueType, DataObject >::inject ( const DataObject _data_obj,
DataStream _stream,
Index  pass_index = 0 
) const
inlineoverridevirtualinherited

Default implementation injects each element, via operator<<.

Implements CASM::BaseDatumFormatter< DataObject >.

Reimplemented in CASM::Base2DDatumFormatter< Container, DataObject >, and CASM::Base1DDatumFormatter< Container, DataObject >.

Definition at line 821 of file DataFormatterTools.hh.

◆ long_header()

virtual std::string CASM::BaseDatumFormatter< DataObject >::long_header ( const DataObject _template_obj) const
inlinevirtualinherited

Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)".

  • Default uses col_header

Definition at line 399 of file DataFormatter.hh.

◆ name()

const std::string& CASM::BaseDatumFormatter< DataObject >::name ( ) const
inlineinherited

Returns a name for the formatter, which becomes the tag used for parsing.

Definition at line 347 of file DataFormatter.hh.

◆ num_passes()

virtual Index CASM::BaseDatumFormatter< DataObject >::num_passes ( const DataObject _data_obj) const
inlinevirtualinherited

If data must be printed on multiple rows, returns number of rows needed to output all data from _data_obj DataFormatter class will subsequently pass over _data_obj multiple times to complete printing (if necessary)

Reimplemented in CASM::Base2DDatumFormatter< Container, DataObject >, and CASM::DatumFormatterAlias< DataObject >.

Definition at line 424 of file DataFormatter.hh.

◆ operator()()

template<typename ValueType , typename DataObject >
virtual ValueType CASM::BaseValueFormatter< ValueType, DataObject >::operator() ( const DataObject obj) const
inlinevirtualinherited

Return requested data from obj, throwing std::runtime_error if not valid.

Definition at line 803 of file DataFormatterTools.hh.

◆ parse_args()

bool CASM::ConfigIO::Clex::parse_args ( const std::string &  args)
overridevirtual

Expects 'clex', 'clex(formation_energy)', or 'clex(formation_energy_per_species)'.

Expects 'clex', 'clex(formation_energy)', or 'clex(formation_energy,per_species)'.

Reimplemented from CASM::BaseDatumFormatter< DataObject >.

Definition at line 518 of file ConfigIO.cc.

◆ print()

template<typename ValueType , typename DataObject >
virtual void CASM::BaseValueFormatter< ValueType, DataObject >::print ( const DataObject _data_obj,
std::ostream &  _stream,
Index  pass_index = 0 
) const
inlineoverridevirtualinherited

Default implementation prints each element in a column, via operator<<.

  • Prints "unknown" if validation fails

Implements CASM::BaseDatumFormatter< DataObject >.

Reimplemented in CASM::Base2DDatumFormatter< Container, DataObject >, and CASM::Base1DDatumFormatter< Container, DataObject >.

Definition at line 833 of file DataFormatterTools.hh.

◆ set_home()

void CASM::BaseDatumFormatter< DataObject >::set_home ( const DictType home) const
inlineinherited

Set the dictionary containing this formatter, set during DictType::lookup.

Definition at line 364 of file DataFormatter.hh.

◆ short_header() [1/2]

std::string CASM::ConfigIO::Clex::short_header ( const Configuration _tmplt) const
inlineoverride

Short header returns: 'clex(formation_energy)', 'clex(formation_energy_per_species)', etc.

Definition at line 421 of file ConfigIO.hh.

◆ short_header() [2/2]

virtual std::string CASM::BaseDatumFormatter< DataObject >::short_header ( const DataObject _template_obj) const
inlinevirtualinherited

Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp".

Reimplemented in CASM::DatumFormatterAlias< DataObject >, and CASM::DataFormatterOperator< ValueType, ArgType, DataObject >.

Definition at line 417 of file DataFormatter.hh.

◆ to_json()

template<typename ValueType , typename DataObject >
virtual jsonParser& CASM::BaseValueFormatter< ValueType, DataObject >::to_json ( const DataObject _data_obj,
jsonParser json 
) const
inlineoverridevirtualinherited

Default implementation calls jsonParser& to_json(const ValueType&, jsonParser&)

  • Does nothing if validation fails

Implements CASM::BaseDatumFormatter< DataObject >.

Definition at line 847 of file DataFormatterTools.hh.

◆ type()

◆ validate()

virtual bool CASM::BaseDatumFormatter< DataObject >::validate ( const DataObject _data_obj) const
inlinevirtualinherited

Member Data Documentation

◆ Desc

const std::string CASM::ConfigIO::Clex::Desc
static
Initial value:
=
"Predicted property value."
" Accepts arguments ($clex_name,$norm)."
" ($clex_name is a cluster expansion name as listed by 'casm settings -l', "
"default=the default clex)"
" ($norm is the normalization, either 'per_species', or 'per_unitcell' "
"<--default)"

Definition at line 389 of file ConfigIO.hh.

◆ m_clex_name

std::string CASM::ConfigIO::Clex::m_clex_name
mutableprivate

Definition at line 432 of file ConfigIO.hh.

◆ m_clexulator

Clexulator CASM::ConfigIO::Clex::m_clexulator
mutableprivate

Definition at line 433 of file ConfigIO.hh.

◆ m_description

std::string CASM::BaseDatumFormatter< DataObject >::m_description
privateinherited

Definition at line 486 of file DataFormatter.hh.

◆ m_eci

ECIContainer CASM::ConfigIO::Clex::m_eci
mutableprivate

Definition at line 434 of file ConfigIO.hh.

◆ m_home

const DictType* CASM::BaseDatumFormatter< DataObject >::m_home
mutableprivateinherited

Definition at line 488 of file DataFormatter.hh.

◆ m_index_rules

IndexContainer CASM::BaseDatumFormatter< DataObject >::m_index_rules
mutableprivateinherited

Definition at line 487 of file DataFormatter.hh.

◆ m_name

std::string CASM::BaseDatumFormatter< DataObject >::m_name
privateinherited

{ return notstd::make_unique<DerivedDatumFormatter>(*this);}

Definition at line 485 of file DataFormatter.hh.

◆ m_norm

notstd::cloneable_ptr<Norm<Configuration> > CASM::ConfigIO::Clex::m_norm
mutableprivate

Definition at line 435 of file ConfigIO.hh.

◆ Name

const std::string CASM::ConfigIO::Clex::Name = "clex"
static

Definition at line 387 of file ConfigIO.hh.


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