1 #ifndef CASM_SupercellIO
2 #define CASM_SupercellIO
15 template <
typename Base>
25 bool parse_args(
const std::string &args)
override;
61 static const std::string
Name;
62 static const std::string
Desc;
69 std::unique_ptr<IsSupercellOf>
clone()
const;
78 static const std::string
Name;
79 static const std::string
Desc;
86 std::unique_ptr<IsUnitcellOf>
clone()
const;
95 static const std::string
Name;
96 static const std::string
Desc;
105 std::unique_ptr<TransfMat>
clone()
const;
108 bool parse_args(
const std::string &args)
override;
122 bool parse_args(
const std::string &args)
override;
142 std::unique_ptr<Nconfig>
clone()
const;
159 std::unique_ptr<Ncalc>
clone()
const;
176 std::unique_ptr<Ndata>
clone()
const;
185 template <
typename ValueType>
std::vector< std::string > col_header(const Supercell &_tmplt) const override
col_header returns: {'short_name(refcell_name)'}
std::string m_type
Reference supercell name, given meaning by derived class.
bool parse_args(const std::string &args) override
Expects arguments of the form 'is_supercell_of(scelname)'.
ConfigCountBase(std::string name, std::string desc)
bool evaluate(const Supercell &scel) const override
std::unique_ptr< IsSupercellOf > clone() const
Clone using copy constructor.
static const std::string Desc
IsSupercellOf * _clone() const override
Clone using copy constructor.
static const std::string Name
static const std::string Name
static const std::string Desc
std::unique_ptr< IsUnitcellOf > clone() const
Clone using copy constructor.
bool evaluate(const Supercell &unit) const override
IsUnitcellOf * _clone() const override
Clone using copy constructor.
static const std::string Desc
Ncalc * _clone() const override
Clone using copy constructor.
std::unique_ptr< Ncalc > clone() const
Clone using copy constructor.
static const std::string Name
Index evaluate(const Supercell &scel) const override
Index evaluate(const Supercell &scel) const override
static const std::string Desc
static const std::string Name
Nconfig * _clone() const override
Clone using copy constructor.
std::unique_ptr< Nconfig > clone() const
Clone using copy constructor.
std::unique_ptr< Ndata > clone() const
Clone using copy constructor.
Index evaluate(const Supercell &scel) const override
static const std::string Name
static const std::string Desc
Ndata * _clone() const override
Clone using copy constructor.
bool init(const Supercell &_tmplt) const override
Set pointer to ref supercell.
const Supercell * m_last_scel
SupercellCheckBase(std::string name, std::string desc)
bool parse_args(const std::string &args) override
Expects arguments of the form 'is_supercell_of(scelname)'.
std::tuple< bool, SymOp, Eigen::MatrixXi > result_type
const result_type & _evaluate(const Supercell &scel, const Supercell &unit) const
const Supercell * m_last_unit
const Supercell * m_refcell
Reference supercell, given meaning by derived class.
Supercell const & refcell() const
std::string m_refcell_name
Reference supercell name, given meaning by derived class.
std::vector< std::string > col_header(const Supercell &_tmplt) const override
col_header returns: {'short_name(refcell_name)'}
notstd::cloneable_ptr< result_type > m_last_result
std::unique_ptr< TransfMat > clone() const
Clone using copy constructor.
Eigen::VectorXi evaluate(const Supercell &scel) const override
static const std::string Name
bool validate(const Supercell &scel) const override
bool parse_args(const std::string &args) override
Expects arguments of the form 'transf_mat(unitcell_name)'.
TransfMat * _clone() const override
Clone using copy constructor.
static const std::string Desc
Represents a supercell of the primitive parent crystal structure.
Generic1DDatumFormatter< Eigen::VectorXd, Supercell > GenericVectorXdScelFormatter
GenericVectorXdScelFormatter lattice_params()
GenericVectorXdScelFormatter lattice()
GenericScelFormatter< Index > multiplicity()
GenericScelFormatter< std::string > pointgroup_name()
GenericScelFormatter< Index > scel_size()
GenericScelFormatter< double > volume()
GenericScelFormatter< Index > factorgroup_size()
IntegerAttributeDictionary< Supercell > make_integer_dictionary< Supercell >()
BooleanAttributeDictionary< Supercell > make_boolean_dictionary< Supercell >()
VectorXiAttributeDictionary< Supercell > make_vectorxi_dictionary< Supercell >()
GenericDatumFormatter< std::string, DataObject > name()
VectorXdAttributeDictionary< Supercell > make_vectorxd_dictionary< Supercell >()
INDEX_TYPE Index
For long integer indexing:
StringAttributeDictionary< Supercell > make_string_dictionary< Supercell >()
ScalarAttributeDictionary< Supercell > make_scalar_dictionary< Supercell >()