LennardJonesAlpha
-
class LennardJonesAlpha : public feasst::LennardJones
This Lennard-Jones potential, \(U_{LJ}\) is a generalization of the one described in LennardJones.
\( U_{LJ} = 4\epsilon \left[ \left(\frac{\sigma + \Delta_\sigma}{r + \Delta_\sigma}\right)^{2\alpha} - \left(\frac{\sigma + \Delta_\sigma}{r + \Delta_\sigma}\right)^\alpha \right] \),
In this class, the \(\alpha\) parameter may be varied (default: 6). In addition, the delta_sigma parameter may be set as a site-specific ModelParam in the fstprt file (default: 0).
Note that \(U_{LJ}\) crosses zero when \(r=\sigma\).
Consider an alternative interpretation for \(\Delta_\sigma = \sigma_r - \sigma\)
\( U_{LJ} = 4\epsilon \left[ \left(\frac{\sigma_r}{r - \sigma + \sigma_r}\right)^{2\alpha} - \left(\frac{\sigma_r}{r - \sigma + \sigma_r}\right)^\alpha \right] \)
Thus, \(\sigma_r = \sigma + \Delta_\sigma\) determines the well width and shape of the potential, while \(\sigma\) determines the excluded volume by shifting the potential right or left.
An additional option is the use of a “lambda” potential which decouples the attractive and repulsive portions of the LJ potential to allow for a modified well-depth or even a shoulder, as shown in Fig. 1 of https://doi.org/10.1039/C7SM01005B and also described in https://dx.doi.org/10.1021/ja802124e.
\( U^\lambda = \left\{ \begin{array}{lr} U_{LJ} + \epsilon(1 - \lambda_{ij}) & r \le r_m \\ \lambda_{ij}U_{LJ} & r > r_m \end{array} \right. \)
where \(r_m = (\sigma + \Delta_\sigma)2^{1/\alpha}-\Delta_\sigma\) is the minimum. The lambda parameter is also a site-specific ModelParam in the fstprt file.
Subclassed by feasst::LennardJonesCutShift, feasst::LennardJonesForceShift
Arguments
alpha: set the value of \(\alpha\) (default: 6).
lambda: enable “lambda” potentials (default: false)
Public Functions
-
const double &alpha() const
Return the value of alpha.
-
void set_wca(const int site_type1, const int site_type2, ModelParams *params) const
Initialize WCA cutoff distances for types 1 and 2 in model parameters.
-
void precompute(const ModelParams &existing)
Precompute model parameters based on existing model parameters.
-
double du_dr(const double distance, const int type1, const int type2, const ModelParams &model_params) const
Return the derivative in the potential energy with respect to distance.
-
void serialize(std::ostream &ostr) const
Output a serialized version of the existing model.
-
class DeltaSigma : public feasst::ModelParam
-
class Lambda : public feasst::ModelParam
The lambda parameter has the default mixing rule: \( \lambda_{ij} = \sqrt{\lambda_i \lambda_j} \)
-
class EnergyAtCutOff : public feasst::ModelParam
-
class EnergyDerivAtCutOff : public feasst::ModelParam