# MolierePotential¶

class MolierePotential(particleType1, particleType2, c1, c2, c3, c4, d1, d2, d3, d4, f, Zi, Zj, s, r_i=None, 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. c1 (float) – Potential parameter. c2 (float) – Potential parameter. c3 (float) – Potential parameter. c4 (float) – Potential parameter. d1 (float) – Potential parameter. d2 (float) – Potential parameter. d3 (float) – Potential parameter. d4 (float) – Potential parameter. f (PhysicalQuantity of type length) – Potential parameter. Zi (PhysicalQuantity of type charge) – Potential parameter. Zj (PhysicalQuantity of type charge) – Potential parameter. s (PhysicalQuantity of type energy) – Potential parameter. r_i (PhysicalQuantity of type length) – The inner cutoff radius where the smoothing of the potential starts. r_i must be smaller than r_cut. r_cut (PhysicalQuantity of type length) – The cutoff radius of this potential.
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.

setCutoff(r_cut)

Set the cutoff radius for this potential.

Parameters: r_cut (PhysicalQuantity of type length) – The cutoff radius of this potential.
setInnerCutoff(r_i)

Set the inner cutoff radius for this potential.

Parameters: r_i (PhysicalQuantity of type length) – The inner cutoff radius (distance where the spline-smoothing starts).
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.

## Usage Examples¶

Define a Moliere-type potential between silicon and argon. TremoloXPotentialSet.

potentialSet = TremoloXPotentialSet(name = 'Moliere_ArSi')

_potential = MolierePotential(
particleType1=ParticleIdentifier('Si', []),
particleType2=ParticleIdentifier('Ar', []),
f=0.09734*Angstrom,
c1=0.35,
c2=0.55,
c3=0.1,
c4=0.0,
d1=0.3,
d2=1.2,
d3=6.0,
d4=0.0,
Zi=14.0*elementary_charge,
Zj=18.0*elementary_charge,
s=0.0*eV,
r_i=5.0*Angstrom,
r_cut=7.5*Angstrom,
)
calculator = TremoloXCalculator(parameters=potentialSet)


moliere.py

## Notes¶

This potential implements the Moliere potential [Mol47], which models the short-range screened Coulomb repulsion between two nuclei. It can be used in combination with a conventional potential, such as Tersoff, which is usually not hard enough at short distances during high energy impacts. It is also suitable for modeling a purely repulsive interaction, such as between nobel gas atoms or ions. The potential follows the form

$V_{ij}^{Moliere} = s_{ij} + \frac{Z_i Z_j}{4\pi\epsilon_0 r_{ij}} \sum_{m=1}^4 c_{ij}^{(m)} \exp\left(-\frac{d_{ij}^{(m)} r_{ij}}{f_{ij}} \right).$

where $$Z_{i}$$ and $$Z_{j}$$ are the nuclear charges of the elements involved.

Typically used values for $$c^{(m)}$$ are (0.35, 0.55, 0.1, 0) and for $$d^{(m)}$$ (0.3, 1.2, 6.0, 0). The parameter $$f_{ij}$$ is often taken as $$0.83 (9 \pi^2 / 128)^{1/3} a_{Bohr} (Z_i^{0.5} + Z_j^{0.5})^{-2/3}$$ (see e.g. [AG99]). In this case the nucleus charges $$Z_{i,j}$$ should be taken as unitless.

At long distances this potential is brought smoothly to zero between the inner cutoff r_i and the outer cutoff r_cut, using a 5th order spline function. This ensures that there are no discontinuites in the forces as atoms are brought closer together, and that the energy is properly conserved. The applied potential $$U(r)$$ is given as:

$U(r) = V_{ij}(r) \times S(r)$

where $$V_{ij}(r)$$ is the pair potential and $$S(r)$$ is the spline function. The values of the spline function are:

• 1 when $$r \le r_i$$
• In the range $$[0,1]$$ when $$r_i < r < r_{cut}$$
• 0 when $$r \ge r_{cut}$$

 [AG99] Cameron F Abrams and David B Graves. Molecular dynamics simulations of si etching by energetic cf 3+. Journal of applied physics, 86(11):5938–5948, 1999. URL: https://doi.org/10.1063/1.371637, doi:10.1063/1.371637.
 [Mol47] Gert Moliere. Theorie der streuung schneller geladener teilchen i. einzelstreuung am abgeschirmten coulomb-feld. Zeitschrift für Naturforschung A, 2(3):133–145, 1947.