Public Member Functions |
| sf_HS_WCA_interaction (const double eps, const double alpha, const Array< double > radii, const double delta=1e-10) |
double | energy (const double r2, const size_t atomi, const size_t atomj) const |
double | energy_gradient (const double r2, double *const gij, const size_t atomi, const size_t atomj) const |
double | energy_gradient_hessian (const double r2, double *const gij, double *const hij, const size_t atomi, const size_t atomj) const |
void | evaluate_pair_potential (const double rmin, const double rmax, const size_t nr_points, const size_t atomi, const size_t atomj, std::vector< double > &x, std::vector< double > &y) const |
Public Attributes |
const double | m_eps |
const double | m_alpha |
const Array< double > | m_radii |
const double | m_delta |
const double | m_prfac |
This a WCA-like potential, which mostly avoids square roots and extrapolates linearly "into the hard core". That should be useful to minimize HS-WCA-like systems. The pair potential is: V_{sfHS-WCA}(r^2) = 0 { if } r r_S V_{sfHS-WCA}(r^2) = V_{fHS-WCA}(r^2) { if } r_ < r < r_S V_{sfHS-WCA}(r^2) = E_ - ({r^2} - r_)G_ { if } r r_ Here: E_ = V_{fHS-WCA}(r_) G_ = {grad}[V_{fHS-WCA}](r_) And: r_H : sum of hard radii r_S = (1 + ) * r_H r_ = r_H + The choice of the delta parameter below is somewhat arbitrary and could probably be optimised. Computing the gradient GX at the point where we go from fWCA to linear is somewhat confusing because the graident is originally computed as grad / (-r).
Definition at line 38 of file hs_wca.h.