Avogadro::Calc::EnergyCalculator#
-
class EnergyCalculator : public cppoptlib::Problem<Real>#
Subclassed by LennardJones, UFF
Public Functions
-
EnergyCalculator() = default#
-
~EnergyCalculator() override = default#
-
virtual EnergyCalculator *newInstance() const = 0#
Create a new instance of the model. Ownership passes to the caller.
-
virtual std::string identifier() const = 0#
- Returns:
a unique identifier for this calculator.
-
virtual std::string name() const = 0#
- Returns:
A short translatable name for this method (e.g., MMFF94, UFF, etc.)
-
virtual std::string description() const = 0#
- Returns:
a description of the method
-
inline virtual bool setConfiguration(Core::VariantMap &config)#
Called to set the configuration (e.g., for a GUI options dialog)
-
virtual Core::Molecule::ElementMask elements() const = 0#
Indicate if your method only treats a subset of elements.
- Returns:
an element mask corresponding to the defined subset
-
inline virtual bool acceptsUnitCell() const#
Indicate if your method can handle unit cells.
- Returns:
true if unit cells are supported
-
inline virtual bool acceptsIons() const#
Indicate if your method can handle ions Many methods only treat neutral systems, either a neutral molecule or a neutral unit cell.
- Returns:
true if ions are supported
-
inline virtual bool acceptsRadicals() const#
Indicate if your method can handle radicals Most methods only treat closed-shell molecules.
- Returns:
true if radicals are supported
-
void gradient(const TVector &x, TVector &grad) override#
Calculate the gradients for this method, defaulting to numerical finite-difference methods
-
void cleanGradients(TVector &grad)#
Called to ‘clean’ gradients
- Parameters:
grad – (e.g., for constraints)
-
Real constraintEnergies(const TVector &x)#
Called to get the energies for the current set of constraints. which should be added to the value() method for real energies in derived classes
- Returns:
the sum of the constraint energies
-
void constraintGradients(const TVector &x, TVector &grad)#
Called to get the gradients for the current set of constraints. which should be added to the gradient() method in derived classes.
- Parameters:
x – the current coordinates
grad – the gradient vector to be updated with constraint gradients
-
std::vector<Core::Constraint> constraints() const#
Called to get the constraints for this method.
- Returns:
the constraints for this method
-
void setConstraints(const std::vector<Core::Constraint> &constraints)#
-
inline void setMask(TVector mask)#
Called to update the “frozen” mask (e.g., during editing)
-
inline TVector mask() const#
- Returns:
the frozen atoms mask
Protected Functions
-
void appendError(const std::string &errorString, bool newLine = true) const#
Append an error to the error string for the model.
- Parameters:
errorString – The error to be added.
newLine – Add a new line after the error string?
Protected Attributes
-
TVector m_mask#
-
std::vector<Core::Constraint> m_distanceConstraints#
-
std::vector<Core::Constraint> m_angleConstraints#
-
std::vector<Core::Constraint> m_torsionConstraints#
-
std::vector<Core::Constraint> m_outOfPlaneConstraints#
-
EnergyCalculator() = default#