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.

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.

Arguments

• alpha: set the value of $$\alpha$$ (default: 6).

• lambda: enable “lambda” potentials (default: false)

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