GeneralStiwe2Potential

class GeneralStiwe2Potential(particleType1, particleType2, p, A, B, gamma, q, D, r_cut=None)

Constructor of the potential.

Parameters:
  • particleType1 (ParticleType or ParticleIdentifier) – Identifier of the first particle type.

  • particleType2 (ParticleType or ParticleIdentifier) – Identifier of the second particle type.

  • p (float) – Potential parameter.

  • A (PhysicalQuantity of type energy) – Potential parameter.

  • B (PhysicalQuantity of type length**p) – Potential parameter.

  • gamma (PhysicalQuantity of type length) – Potential parameter.

  • q (float) – Potential parameter.

  • D (PhysicalQuantity of type length**q) – Potential parameter.

  • r_cut (PhysicalQuantity of type length) – Cutoff radius

classmethod getAllParameterNames()

Return the names of all used parameters as a list.

getAllParameters()

Return all parameters of this potential and their current values as a <parameterName / parameterValue> dictionary.

static getDefaults()

Get the default parameters of this potential and return them in form of a dictionary of <parameter name, default value> key-value pairs.

getParameter(parameterName)

Get the current value of the parameter parameterName.

setParameter(parameterName, value)

Set the parameter parameterName to the given value.

Parameters:
  • parameterName (str) – The name of the parameter that will be modified.

  • value – The new value that will be assigned to the parameter parameterName.

Notes

The GeneralStiwe2Potential represents the a more general form for the two-body contribution of the Stillinger-Weber potential [1].

The Stillinger-Weber potential can be written as:

\[V = \sum_{i<j} v_2^{ij}(r_{ij}) + \sum_{i<j<k} [v_3^{ijk}(r_{ji}, r_{jk}, \theta_{ijk}) + v_3^{jik}(r_{ij}, r_{ik}, \theta_{jik}) + v_3^{ikj}(r_{ki}, r_{kj}, \theta_{ikj}) ] \, .\]

The general form of the two-body part is implemented as

\[v_2^{ij}(r) = A\cdot(B\cdot r^{-p} -D\cdot r^{-q}) \cdot \exp\left[\frac{\gamma}{r-r_\mathrm{cut}} \right] \, .\]

For the three-body part two types are available, which can be selected by the type argument.

Type 1:

\[v_3^{ijk}(r_{ji}, r_{jk}, \theta) = \lambda \exp\left[\frac{\gamma_0}{r_{ji} - r_0} + \frac{\gamma_1}{r_{jk} - r_1} \right] \cdot \left( \cos(\theta) - cos(\theta_0) \right)^\alpha \, .\]

If not specified otherwise, \(\alpha\) is set to 2, as in the original Stillinger-Weber potential [1].

Type 2:

\[v_3^{ijk}(r_{ji}, r_{jk}, \theta) = \lambda \exp\left[\frac{\gamma_0}{r_{ji} - r_0} + \frac{\gamma_1}{r_{jk} - r_1} \right] \cdot \left( \cos(\theta) - cos(\theta_0) \right) \sin(\theta) \cos(\theta) \, .\]