11 class PermuteIterator;
39 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
94 assert(
has_deformation() &&
"Non-const method ConfigDoF::F() should only be called after ConfigDoF::set_deformation()!!!");
176 jsonParser &
to_json(
const ConfigDoF &value, jsonParser &json);
178 void from_json(ConfigDoF &value,
const jsonParser &json);
182 ConfigDoF &
apply(
const PermuteIterator &it, ConfigDoF &dof);
184 void swap(ConfigDoF &A, ConfigDoF &B);
void reset_properties(ConfigDoF &_dof)
ReturnArray< int > get_num_each_molecule(const ConfigDoF &configdof, const Supercell &scel)
Returns num_each_molecule[ molecule_type], where 'molecule_type' is ordered as Structure::get_struc_m...
void from_json(ClexDescription &desc, const jsonParser &json)
void set_displacement(const displacement_matrix_t &_displacement)
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
Eigen::Matrix3d m_deformation
Array< int > & _occupation()
double & F(Index i, Index j)
Correlation correlations(const ConfigDoF &configdof, const Supercell &scel, Clexulator &clexulator)
Returns correlations using 'clexulator'. Supercell needs a correctly populated neighbor list...
void swap(ConfigDoF &RHS)
void from_json(const jsonParser &json)
Index size() const
*** ACCESSORS ***
const Eigen::Matrix3d & deformation() const
displacement_matrix_t & _displacement()
void swap(ConfigDoF &A, ConfigDoF &B)
Eigen::VectorXi get_num_each_molecule_vec(const ConfigDoF &configdof, const Supercell &scel)
Returns num_each_molecule(molecule_type), where 'molecule_type' is ordered as Structure::get_struc_mo...
Eigen::VectorXd comp_n(const ConfigDoF &configdof, const Supercell &scel)
Returns comp_n, the number of each molecule per primitive cell, ordered as Structure::get_struc_molec...
displacement_matrix_t::ColXpr displacement_t
displacement_matrix_t::ConstColXpr const_displacement_t
EigenIndex Index
For long integer indexing:
const int & occ(Index i) const
A container class for the different degrees of freedom a Configuration might have.
jsonParser & to_json(jsonParser &json) const
const double & F(Index i, Index j) const
void set_deformation(const Eigen::Matrix3d &_deformation)
set_deformation sets ConfigDoF::has_deformation() to true
Index m_N
Number of sites in the Configuration.
Eigen::VectorXd Correlation
displacement_matrix_t m_displacement
const_displacement_t disp(Index i) const
void clear_displacement()
const displacement_matrix_t & displacement() const
const Array< int > & occupation() const
Eigen::Matrix3d & _deformation()
bool has_deformation() const
Eigen::MatrixXd displacement_matrix_t
displacement_t disp(Index i)
bool has_displacement() const
Eigen::VectorXd correlations_vec(const ConfigDoF &configdof, const Supercell &scel, Clexulator &clexulator)
Returns correlations using 'clexulator'. Supercell needs a correctly populated neighbor list...
Object & apply(const Transform &f, Object &obj, Args &&...args)
void set_occupation(const Array< int > &_occupation)
bool has_occupation() const
Array< int > m_occupation
With one value for each site in the Configuration, this Array describes which occupant is at each of ...
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ConfigDoF(Index N=0, double _tol=TOL)
fixes alignment of m_deformation