|
AvogadroLibs 2.0.0
|
Public Member Functions | |
| virtual EnergyCalculator * | newInstance () const =0 |
| virtual std::string | identifier () const =0 |
| virtual std::string | name () const =0 |
| virtual std::string | description () const =0 |
| virtual std::string | userOptions () const |
| Return a JSON object string describing optional user-editable settings for this model. Empty string means no user options. | |
| virtual bool | setUserOptions (const std::string &optionsJson) |
| Set user-selected options serialized as a JSON object string. | |
| virtual Core::Molecule::ElementMask | elements () const =0 |
| Indicate if your method only treats a subset of elements. | |
| virtual bool | acceptsUnitCell () const |
| Indicate if your method can handle unit cells. | |
| 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. | |
| virtual bool | acceptsRadicals () const |
| Indicate if your method can handle radicals Most methods only treat closed-shell molecules. | |
| virtual Real | value (const Eigen::VectorXd &x)=0 |
| virtual void | gradient (const Eigen::VectorXd &x, Eigen::VectorXd &grad) |
| void | finiteGradient (const Eigen::VectorXd &x, Eigen::VectorXd &grad, int accuracy=0) |
| virtual Real | evaluate (const Eigen::VectorXd &x, Eigen::VectorXd *grad=nullptr) |
| virtual void | hessian (const Eigen::VectorXd &x, Eigen::MatrixXd &hess) |
| void | finiteHessian (const Eigen::VectorXd &x, Eigen::MatrixXd &hess, int accuracy=0) |
| void | cleanGradients (Eigen::VectorXd &grad) |
| Real | constraintEnergies (const Eigen::VectorXd &x) |
| void | constraintGradients (const Eigen::VectorXd &x, Eigen::VectorXd &grad) |
| std::vector< Core::Constraint > | constraints () const |
| void | setConstraints (const std::vector< Core::Constraint > &constraints) |
| void | setMask (Eigen::VectorXd mask) |
| Eigen::VectorXd | mask () const |
| virtual void | setMolecule (Core::Molecule *mol)=0 |
Protected Member Functions | |
| void | appendError (const std::string &errorString, bool newLine=true) const |
| Append an error to the error string for the model. | |
Protected Attributes | |
| Eigen::VectorXd | 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 |
|
pure virtual |
Create a new instance of the model. Ownership passes to the caller.
Implemented in LennardJones, and UFF.
|
pure virtual |
Implemented in LennardJones, and UFF.
|
pure virtual |
Implemented in LennardJones, and UFF.
|
pure virtual |
Implemented in LennardJones, and UFF.
|
virtual |
|
pure virtual |
Implemented in LennardJones, and UFF.
|
virtual |
Reimplemented in LennardJones, and UFF.
|
virtual |
Reimplemented in LennardJones, and UFF.
|
virtual |
Reimplemented in LennardJones, and UFF.
|
pure virtual |
Calculate the energy for this method.
Implemented in LennardJones, and UFF.
|
virtual |
Calculate the gradients for this method, defaulting to numerical finite-difference methods
Reimplemented in LennardJones, and UFF.
| void finiteGradient | ( | const Eigen::VectorXd & | x, |
| Eigen::VectorXd & | grad, | ||
| int | accuracy = 0 ) |
Calculate numerical gradients for this method.
|
virtual |
Evaluate the energy and optionally gradients in one call.
Derived classes with efficient fused implementations should override this.
Reimplemented in LennardJones, and UFF.
|
virtual |
Calculate the Hessian matrix for this method, defaulting to numerical finite-difference methods.
| void finiteHessian | ( | const Eigen::VectorXd & | x, |
| Eigen::MatrixXd & | hess, | ||
| int | accuracy = 0 ) |
Calculate numerical Hessian for this method.
| void cleanGradients | ( | Eigen::VectorXd & | grad | ) |
Called to 'clean' gradients
| grad | (e.g., for constraints) |
| Real constraintEnergies | ( | const Eigen::VectorXd & | 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
| void constraintGradients | ( | const Eigen::VectorXd & | x, |
| Eigen::VectorXd & | grad ) |
Called to get the gradients for the current set of constraints. which should be added to the gradient() method in derived classes.
| 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.
| void setMask | ( | Eigen::VectorXd | mask | ) |
Called to update the "frozen" mask (e.g., during editing)
| Eigen::VectorXd mask | ( | ) | const |
|
pure virtual |
Called when the current molecule changes.
Implemented in LennardJones, and UFF.
|
protected |
| errorString | The error to be added. |
| newLine | Add a new line after the error string? |