CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::ConfigIO::OnClexHull Class Reference

#include <ConfigIOHull.hh>

+ Inheritance diagram for CASM::ConfigIO::OnClexHull:

Detailed Description

Returns a boolean indicating if a Configuration is a predicted convex hull vertex.

Whether configuration is a vertex on the cluster-expanded formation_energy convex hull (i.e., is a predicted groundstate). Only one Configuration out of a set that have identical or almost identical points in composition/energy space will return true.

Accepts arguments ($selection, $composition):

  • $selection may be one of: <filename>, 'ALL', 'CALCULATED', 'MASTER' <–default
  • $composition may be one of: 'comp', 'atom_frac' <–default
    • For 'comp', 'clex(formation_energy)' is used. For 'atom_frac', 'clex(formation_energy_per_atom)' is used.

Ex: 'on_clex_hull', 'on_clex_hull(MASTER,comp)'

Definition at line 191 of file ConfigIOHull.hh.

Public Types

enum  FormatterType
 
typedef Configuration DataObject
 
typedef long difference_type
 
typedef
DataFormatterDictionary
< DataObject,
BaseDatumFormatter< DataObject > > 
DictType
 

Public Member Functions

 OnClexHull ()
 Constructor. More...
 
std::unique_ptr< OnClexHullclone () const
 Clone. More...
 
virtual bool validate (const Configuration &_config) const override
 Validate that the Configuration has a cluster expanded formation energy per species. More...
 
virtual bool evaluate (const Configuration &_config) const override
 Check if the Configuration is a hull vertex. More...
 
void init (const Configuration &_tmplt) const override
 Calculates the convex hull. More...
 
std::string short_header (const Configuration &_config) const override
 column header to use More...
 
bool parse_args (const std::string &args) override
 Determine the selection to use to generate the hull. More...
 
virtual bool operator() (const Configuration &obj) const
 Return requested data from obj, throwing std::runtime_error if not valid. More...
 
virtual void inject (const Configuration &_data_obj, DataStream &_stream, Index pass_index=0) const override
 Default implementation injects each element, via operator<<. More...
 
virtual void print (const Configuration &_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 Configuration &_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 FormatterType 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 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 Index num_passes (const DataObject &_data_obj) const
 

Static Public Attributes

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

Protected Types

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

Protected Member Functions

const Hull_hull () const
 const Access the Hull object More...
 
void _parse_index_expression (const std::string &_expr)
 
void _add_rule (const std::vector< Index > &new_rule) const
 
const IndexContainer_index_rules () const
 

Protected Attributes

Hull::CalculatorOptions m_calculator_map
 

Static Protected Attributes

static constexpr double m_dist_to_hull_tol
 

Private Member Functions

OnClexHull_clone () const override
 Clone. More...
 

Member Typedef Documentation

Definition at line 313 of file DataFormatter.hh.

Definition at line 315 of file DataFormatter.hh.

Definition at line 435 of file DataFormatter.hh.

Member Enumeration Documentation

Definition at line 314 of file DataFormatter.hh.

Constructor & Destructor Documentation

CASM::ConfigIO::OnClexHull::OnClexHull ( )

Constructor.

Definition at line 124 of file ConfigIOHull.cc.

Member Function Documentation

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

Definition at line 447 of file DataFormatter.hh.

OnClexHull* CASM::ConfigIO::OnClexHull::_clone ( ) const
inlineoverrideprivatevirtual

Clone.

Implements CASM::BaseValueFormatter< bool, Configuration >.

Definition at line 216 of file ConfigIOHull.hh.

const Hull& CASM::ConfigIO::BaseHull< bool >::_hull ( ) const
protectedinherited

const Access the Hull object

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

Definition at line 451 of file DataFormatter.hh.

void CASM::BaseDatumFormatter< Configuration >::_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}}

std::unique_ptr<OnClexHull> CASM::ConfigIO::OnClexHull::clone ( ) const
inline

Clone.

Definition at line 203 of file ConfigIOHull.hh.

virtual std::vector<std::string> CASM::BaseDatumFormatter< Configuration >::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 col_header

Definition at line 373 of file DataFormatter.hh.

const std::string& CASM::BaseDatumFormatter< Configuration >::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 332 of file DataFormatter.hh.

bool CASM::ConfigIO::OnClexHull::evaluate ( const Configuration _config) const
overridevirtual

Check if the Configuration is a hull vertex.

  • Only returns true for one Configuration out of a set that have identical or almost identical points in composition/energy space

Implements CASM::BaseValueFormatter< bool, Configuration >.

Definition at line 139 of file ConfigIOHull.cc.

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

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

Definition at line 341 of file DataFormatter.hh.

void CASM::ConfigIO::BaseHull< bool >::init ( const Configuration _tmplt) const
overridevirtualinherited

Calculates the convex hull.

  • Uses the parsed args to determine the selection to use to calculate the hull
  • Calls 'init' on the CompCalculator and EnergyCalculator
  • Constructs the hull

Reimplemented from CASM::BaseDatumFormatter< Configuration >.

virtual void CASM::BaseValueFormatter< bool , Configuration >::inject ( const Configuration _data_obj,
DataStream _stream,
Index  pass_index = 0 
) const
inlineoverridevirtualinherited

Default implementation injects each element, via operator<<.

  • sets DataStream::failbit if validation fails

Implements CASM::BaseDatumFormatter< Configuration >.

Definition at line 747 of file DataFormatterTools.hh.

virtual std::string CASM::BaseDatumFormatter< Configuration >::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 382 of file DataFormatter.hh.

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

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

Definition at line 326 of file DataFormatter.hh.

virtual Index CASM::BaseDatumFormatter< Configuration >::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)

Definition at line 406 of file DataFormatter.hh.

virtual bool CASM::BaseValueFormatter< bool , Configuration >::operator() ( const Configuration obj) const
inlinevirtualinherited

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

Definition at line 729 of file DataFormatterTools.hh.

bool CASM::ConfigIO::BaseHull< bool >::parse_args ( const std::string &  args)
overridevirtualinherited

Determine the selection to use to generate the hull.

Args are: ($selection,$composition,$dim_tol,$bottom_tol)

Options for $selection are:

  • "ALL", use all configurations
  • "MASTER", use the current MASTER selection (default for no args)
  • "CALCULATED", use configurations for which is_calculated is true
  • other, assume the argument is the filename for a selection to use

Options for $composition are:

  • "atom_frac", (default) use atom_frac for the composition and "formation_energy_per_species" for the energy
  • "comp", use parametric composition for the composition and "formation_energy" for the energy

$dim_tol, default=1e-8

  • singular value tolerance used for detecting composition dimensions

$bottom_tol, default=1e-8

  • tolerance used for detecting facets on the convex hull bottom

Reimplemented from CASM::BaseDatumFormatter< Configuration >.

virtual void CASM::BaseValueFormatter< bool , Configuration >::print ( const Configuration _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< Configuration >.

Definition at line 757 of file DataFormatterTools.hh.

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

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

Definition at line 346 of file DataFormatter.hh.

std::string CASM::ConfigIO::BaseHull< bool >::short_header ( const Configuration _config) const
overridevirtualinherited

column header to use

Returns
'name() + '(' + args + ')'
  • ex: 'on_hull(MASTER)' if name() is 'on_hull', and args is "MASTER"
  • ex: 'on_clex_hull(ALL,comp) if name() is 'on_clex_hull', and args is "ALL,comp"

Reimplemented from CASM::BaseDatumFormatter< Configuration >.

virtual jsonParser& CASM::BaseValueFormatter< bool , Configuration >::to_json ( const Configuration _data_obj,
jsonParser json 
) const
inlineoverridevirtualinherited

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

  • Does nothing if validation fails

Implements CASM::BaseDatumFormatter< Configuration >.

Definition at line 769 of file DataFormatterTools.hh.

virtual FormatterType CASM::BaseDatumFormatter< Configuration >::type ( ) const
inlinevirtualinherited

Definition at line 336 of file DataFormatter.hh.

bool CASM::ConfigIO::OnClexHull::validate ( const Configuration _config) const
overridevirtual

Validate that the Configuration has a cluster expanded formation energy per species.

  • Currently always returns true

Reimplemented from CASM::BaseDatumFormatter< Configuration >.

Definition at line 131 of file ConfigIOHull.cc.

Member Data Documentation

const std::string CASM::ConfigIO::OnClexHull::Desc
static
Initial value:
=
"Whether configuration is a vertex on the *cluster-expanded* formation_energy "
"convex hull (i.e., is a *predicted* groundstate)."
" Only one Configuration out of a set that have identical or almost identical points in"
" composition/energy space will return true."
" Accepts arguments ($selection,$composition,$dim_tol,$bottom_tol)."
" ($selection may be one of: <filename>, 'ALL', 'CALCULATED', 'MASTER' <--default)"
" ($composition may be one of: 'comp', 'atom_frac' <--default)"
" ($dim_tol: tolerance for detecting composition dimensionality, default=1e-8)"
" ($bottom_tol: tolerance for detecting which facets form the convex hull bottom, default=1e-8)"
" For 'comp', 'clex(formation_energy)' is used. For 'atom_frac', 'clex(formation_energy_per_atom)' is used."
" Ex: clex_hull_dist, clex_hull_dist(MASTER,comp)."

Definition at line 196 of file ConfigIOHull.hh.

Hull::CalculatorOptions CASM::ConfigIO::BaseHull< bool >::m_calculator_map
protectedinherited

Definition at line 59 of file ConfigIOHull.hh.

constexpr double CASM::ConfigIO::BaseHull< bool >::m_dist_to_hull_tol
staticprotectedinherited

Definition at line 62 of file ConfigIOHull.hh.

const std::string CASM::ConfigIO::OnClexHull::Name = "on_clex_hull"
static

Definition at line 195 of file ConfigIOHull.hh.


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