29 std::map<std::string, Eigen::MatrixXd>
const &values)
const {
30 std::pair<Eigen::MatrixXd, std::set<std::string> > result;
31 for (
auto const &val : values) {
33 auto pos = valname.find(
"strain");
34 if (pos != std::string::npos) {
40 result.second.insert(val.first);
44 throw std::runtime_error(
45 "Could not identify DoF values for DoF '" + (this->
name()) +
46 "' from provided list of tabulated structure properties.");
60 return std::vector<BasisSet>();
62 std::vector<BasisSet> result(1);
90 json[
"deformation"] = F;
static std::string name_suffix(std::string const &_name, char delim='_')
GlobalContinuousConfigDoFValues const & global_dof(DoFKey const &_key) const
jsonParser dof_to_json(ConfigDoF const &_dof, BasicStructure const &_reference) const override
Serialize strain DoF values from ConfigDoF.
std::string const m_metric
std::vector< BasisSet > construct_site_bases(Structure const &_prim, std::vector< Orbit< PrimPeriodicSymCompare< IntegralCluster > > > &_asym_unit, BasisFunctionSpecs const &_basis_function_specs) const override
Construct the site basis (if DOF_MODE is LOCAL) for a DoF, given its site.
void apply_dof(ConfigDoF const &_dof, BasicStructure const &_reference, SimpleStructure &_struc) const override
Transforms SimpleSructure.
std::pair< Eigen::MatrixXd, std::set< std::string > > find_values(std::map< std::string, Eigen::MatrixXd > const &values) const override
Retrieve the standard values for a DoF from dictionary of properties from properties....
std::string const & name() const
Eigen::MatrixXd standard_values() const
Get global DoF values as standard DoF values.
Matrix3d unrolled_strain_metric_to_F(Eigen::Ref< const VectorXd > const &E) const
VectorXd unrolled_strain_metric(Eigen::Ref< const Matrix3d > const &F) const
void set_mode(const std::string &mode_name)
Structure specifies the lattice and atomic basis of a crystal.
const xtal::BasicStructure & structure() const
SymGroupRepID global_dof_symrep_ID(const std::string dof_name) const
BasicStructure specifies the lattice and atomic basis of a crystal.
std::map< DoFKey, DoFSet > const & global_dofs() const
DoFSet const & global_dof(std::string const &dof_type) const
Representation of a crystal of molecular and/or atomic occupants, and any additional properties....
Eigen::Matrix3d lat_column_mat
CASM::jsonParser & to_json_array(const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json)
Write Eigen Matrix with 1 row or 1 column to JSON array.
DoF_impl::StrainDoFTraits GLstrain()
DoF_impl::StrainDoFTraits Hstrain()
DoF_impl::StrainDoFTraits EAstrain()
Specify how to construct basis functions.
Eigen::MatrixXd coords
(3 x names.size()) matrix of coordinates. coords.col(i) is Cartesian coordinate of site 'i'