Class BasePotential#
Defined in File base_potential.hpp
Inheritance Relationships#
Derived Types#
public pele::ATLJ(Class ATLJ)public pele::BaseHarmonic(Class BaseHarmonic)public pele::BaseRadialGaussian(Class BaseRadialGaussian)public pele::CombinedPotential(Class CombinedPotential)public pele::FlatHarmonic(Class FlatHarmonic)public pele::FrozenPotentialWrapper(Class FrozenPotentialWrapper)public pele::GaussianPot(Class GaussianPot)public pele::LAMMPSPotential(Class LAMMPSPotential)public pele::LowestEigPotential(Class LowestEigPotential)public pele::MeanFieldPSpinSpherical< p >(Template Class MeanFieldPSpinSpherical)public pele::PairwisePotentialInterface(Class PairwisePotentialInterface)public pele::PoweredCosineSum(Class PoweredCosineSum)public pele::PythonPotential(Class PythonPotential)public pele::RBPotentialWrapper(Class RBPotentialWrapper)public pele::RosenBrock(Class RosenBrock)public pele::Saddle(Class Saddle)public pele::XCube(Class XCube)
Class Documentation#
-
class BasePotential#
basic potential interface for native potentials
Subclassed by pele::ATLJ, pele::BaseHarmonic, pele::BaseRadialGaussian, pele::CombinedPotential, pele::FlatHarmonic, pele::FrozenPotentialWrapper, pele::GaussianPot, pele::LAMMPSPotential, pele::LowestEigPotential, pele::MeanFieldPSpinSpherical< p >, pele::PairwisePotentialInterface, pele::PoweredCosineSum, pele::PythonPotential, pele::RBPotentialWrapper, pele::RosenBrock, pele::Saddle, pele::XCube
Public Functions
-
inline virtual ~BasePotential()#
-
inline virtual double get_energy(Array<double> const &x)#
Return the energy of configuration x.
This is the only function which must be overloaded
- inline virtual double get_energy_change( )#
Return the change in energy when configuration A is changed to configuration B.
It also takes in the vector of indices of atoms changed to recalculate energies changed by those atoms.
-
inline virtual size_t get_ndim() const#
- inline virtual bool find_rattlers( )#
- inline virtual double add_energy_gradient( )#
compute the energy and gradient, but don’t initialize the gradient to zero
- inline virtual double get_energy_gradient( )#
compute the energy and gradient.
If not overloaded it will compute the numerical gradient
- inline virtual double get_energy_gradient(
- Array<double> const &x,
- std::vector<xsum_small_accumulator> &exact_grad
- inline virtual double add_energy_gradient_hessian( )#
compute the energy, gradient, and Hessian, but don’t initialize the gradient or hessian to zero
- inline virtual double get_energy_gradient_hessian( )#
compute the energy and gradient and Hessian.
If not overloaded it will compute the Hessian numerically and use get_energy_gradient to get the energy and gradient.
- inline virtual double get_energy_gradient_hessian_rattlers( )#
- inline virtual double get_energy_gradient( )#
- inline virtual void numerical_gradient( )#
compute the numerical gradient
-
inline virtual void get_hessian(Array<double> const &x, Array<double> &hess)#
compute the hessian.
If not overloaded it will call get_energy_gradient_hessian
- inline virtual void numerical_hessian( )#
compute the numerical gradient
-
inline virtual ~BasePotential()#