CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ScelIO::TransfMat Class Referenceabstract

#include <SupercellIO.hh>

+ Inheritance diagram for CASM::ScelIO::TransfMat:

Detailed Description

Definition at line 93 of file SupercellIO.hh.

Public Types

typedef std::tuple< bool, SymOp, Eigen::MatrixXi > result_type
 
typedef ContainerTraits< Container >::Access Access
 Access methods for Container. More...
 
typedef ContainerTraits< Container >::value_type ValueType
 
typedef DataObject DataObject
 
typedef long difference_type
 
typedef DataFormatterDictionary< DataObject, BaseDatumFormatter< DataObject > > DictType
 

Public Member Functions

 TransfMat ()
 
Eigen::VectorXi evaluate (const Supercell &scel) const override
 
bool validate (const Supercell &scel) const override
 
std::unique_ptr< TransfMatclone () const
 Clone using copy constructor. More...
 
bool parse_args (const std::string &args) override
 Expects arguments of the form 'transf_mat(unitcell_name)'. More...
 
bool init (const Supercell &_tmplt) const override
 Set pointer to ref supercell. More...
 
virtual bool init (const DataObject &_template_obj) const override
 Default initialization adds rules for each element. More...
 
std::vector< std::string > col_header (const Supercell &_tmplt) const override
 col_header returns: {'short_name(refcell_name)'} More...
 
virtual std::vector< std::string > col_header (const DataObject &_template_obj) const override
 Default col_header uses 'name(index)' for each column. More...
 
const result_type_evaluate (const Supercell &scel, const Supercell &unit) const
 
virtual void inject (const DataObject &_data_obj, DataStream &_stream, Index pass_index=0) const override
 Default implementation injects each element. 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. More...
 
virtual Container operator() (const DataObject &obj) const
 Return requested data from obj, throwing std::runtime_error if not valid. More...
 
virtual Container evaluate (const DataObject &obj) const=0
 
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 validate (const DataObject &_data_obj) const
 Returns true if _data_obj has valid values for requested data. 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 = "transf_mat"
 
static const std::string Desc
 

Protected Types

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

Protected Member Functions

Supercell const & refcell () const
 
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

std::string m_refcell_name
 Reference supercell name, given meaning by derived class. More...
 

Private Member Functions

TransfMat_clone () const override
 Clone using copy constructor. More...
 

Private Attributes

const Supercellm_refcell
 Reference supercell, given meaning by derived class. More...
 
notstd::cloneable_ptr< result_typem_last_result
 
const Supercellm_last_scel
 
const Supercellm_last_unit
 
std::string m_name
 
std::string m_description
 
IndexContainer m_index_rules
 
const DictTypem_home
 

Member Typedef Documentation

◆ Access

template<typename Container , typename DataObject >
typedef ContainerTraits<Container>::Access CASM::Base1DDatumFormatter< Container, DataObject >::Access
inherited

Access methods for Container.

Definition at line 1006 of file DataFormatterTools.hh.

◆ 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.

◆ result_type

typedef std::tuple<bool, SymOp, Eigen::MatrixXi> CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::result_type
inherited

Definition at line 18 of file SupercellIO.hh.

◆ ValueType

template<typename Container , typename DataObject >
typedef ContainerTraits<Container>::value_type CASM::Base1DDatumFormatter< Container, DataObject >::ValueType
inherited

Definition at line 1007 of file DataFormatterTools.hh.

Constructor & Destructor Documentation

◆ TransfMat()

CASM::ScelIO::TransfMat::TransfMat ( )

Definition at line 82 of file SupercellIO.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()

TransfMat * CASM::ScelIO::TransfMat::_clone ( ) const
overrideprivatevirtual

Clone using copy constructor.

Implements CASM::Base1DDatumFormatter< Container, DataObject >.

Definition at line 120 of file SupercellIO.cc.

◆ _evaluate()

const SupercellCheckBase< VectorXiAttribute< Supercell > >::result_type & CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::_evaluate ( const Supercell scel,
const Supercell unit 
) const
inherited

Call is_supercell using prim.factor_group() to try possible orientations

Returns (bool, SymOp op, Eigen::MatrixXi T) with:

Definition at line 41 of file SupercellIO_impl.hh.

◆ _index_rules()

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

Definition at line 476 of file DataFormatter.hh.

◆ _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< TransfMat > CASM::ScelIO::TransfMat::clone ( ) const

Clone using copy constructor.

Definition at line 97 of file SupercellIO.cc.

◆ col_header() [1/2]

template<typename Container , typename DataObject >
virtual std::vector<std::string> CASM::Base1DDatumFormatter< Container, DataObject >::col_header ( const DataObject _template_obj) const
inlineoverridevirtualinherited

Default col_header uses 'name(index)' for each column.

Ex: "corr(0)" "corr(1)" "corr(5)" "corr(6)"

Reimplemented from CASM::BaseDatumFormatter< DataObject >.

Definition at line 1041 of file DataFormatterTools.hh.

◆ col_header() [2/2]

std::vector< std::string > CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::col_header ( const Supercell _tmplt) const
overrideinherited

col_header returns: {'short_name(refcell_name)'}

col_header returns: {'name(refcell_name)'}

Definition at line 31 of file SupercellIO_impl.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]

virtual Container CASM::BaseValueFormatter< Container , DataObject >::evaluate ( const DataObject obj) const
pure virtualinherited

◆ evaluate() [2/2]

Eigen::VectorXi CASM::ScelIO::TransfMat::evaluate ( const Supercell scel) const
override

Definition at line 84 of file SupercellIO.cc.

◆ 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]

template<typename Container , typename DataObject >
virtual bool CASM::Base1DDatumFormatter< Container, DataObject >::init ( const DataObject _template_obj) const
inlineoverridevirtualinherited

Default initialization adds rules for each element.

Reimplemented from CASM::BaseDatumFormatter< DataObject >.

Definition at line 1025 of file DataFormatterTools.hh.

◆ init() [2/2]

bool CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::init ( const Supercell _tmplt) const
overrideinherited

Set pointer to ref supercell.

Definition at line 28 of file SupercellIO_impl.hh.

◆ inject()

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

Default implementation injects each element.

Reimplemented from CASM::BaseValueFormatter< Container, DataObject >.

Definition at line 1063 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()()

virtual Container CASM::BaseValueFormatter< Container , 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::ScelIO::TransfMat::parse_args ( const std::string &  args)
overridevirtual

Expects arguments of the form 'transf_mat(unitcell_name)'.

Reimplemented from CASM::Base1DDatumFormatter< Container, DataObject >.

Definition at line 102 of file SupercellIO.cc.

◆ print()

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

Default implementation prints each element in a column.

  • Prints "unknown" if validation fails

Reimplemented from CASM::BaseValueFormatter< Container, DataObject >.

Definition at line 1087 of file DataFormatterTools.hh.

◆ refcell()

Supercell const & CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::refcell
protectedinherited

Definition at line 48 of file SupercellIO_impl.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()

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()

virtual jsonParser& CASM::BaseValueFormatter< Container , 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() [1/2]

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

◆ validate() [2/2]

bool CASM::ScelIO::TransfMat::validate ( const Supercell scel) const
override

Definition at line 91 of file SupercellIO.cc.

Member Data Documentation

◆ Desc

const std::string CASM::ScelIO::TransfMat::Desc
static
Initial value:
=
"For all supercells, S, returns the transformation matrix, T, that can be "
"used to create S from the specified unit cell, U, if possible, i.e. "
"S.lat = (op*U.lat)*T, where 'op' is an element of the crystal "
"point group, and lattices are represented by column vector matrices. "
"T is returned in column-major form: (T00, T10, T20, T01, ...) "
"If not specified, the primitive cell is used for the unit "
"cell. Ex: 'transf_mat', 'transf_mat(SCELV_A_B_C_D_E_F)'"

Definition at line 96 of file SupercellIO.hh.

◆ m_description

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

Definition at line 486 of file DataFormatter.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_last_result

Definition at line 54 of file SupercellIO.hh.

◆ m_last_scel

const Supercell* CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::m_last_scel
mutableprivateinherited

Definition at line 55 of file SupercellIO.hh.

◆ m_last_unit

const Supercell* CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::m_last_unit
mutableprivateinherited

Definition at line 56 of file SupercellIO.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_refcell

const Supercell* CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::m_refcell
mutableprivateinherited

Reference supercell, given meaning by derived class.

Definition at line 52 of file SupercellIO.hh.

◆ m_refcell_name

std::string CASM::ScelIO::SupercellCheckBase< VectorXiAttribute< Supercell > >::m_refcell_name
protectedinherited

Reference supercell name, given meaning by derived class.

Definition at line 46 of file SupercellIO.hh.

◆ Name

const std::string CASM::ScelIO::TransfMat::Name = "transf_mat"
static

Definition at line 95 of file SupercellIO.hh.


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