1 #ifndef CASM_ConfigEnumStrain
2 #define CASM_ConfigEnumStrain
28 const std::vector<Index> &subspace_partitions,
29 const std::vector<double> &magnitudes,
32 std::string
name()
const override {
PermuteIterator m_perm_begin
A Counter allows looping over many incrementing variables in one loop.
const PermuteIterator & _perm_begin()
Base class for generic use of enumerators that may be accessed through the API.
Eigen::MatrixXd m_shape_factor
Represents a supercell of the primitive parent crystal structure.
const PermuteIterator & _perm_end()
void increment() override
Implements increment over all strain states.
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
static int run(PrimClex &primclex, const jsonParser &kwargs, const Completer::EnumOption &enum_opt)
EigenIndex Index
For long integer indexing:
ConfigEnumStrain(Supercell &scel, const Configuration &_init, const std::vector< Index > &subspace_partitions, const std::vector< double > &magnitudes, std::string _mode)
PrimClex is the top-level data structure for a CASM project.
PermuteIterator m_perm_end
static const std::string interface_help
static const std::string enumerator_name
std::vector< Eigen::MatrixXd > m_trans_mats
StrainConverter m_strain_calc
CASM::EnumInterfaceBase * make_ConfigEnumStrain_interface()
EigenCounter< Eigen::VectorXd > m_counter
A Configuration represents the values of all degrees of freedom in a Supercell.