TersoffBrennerMolierePotential¶
- class TersoffBrennerMolierePotential(particleType1, particleType2, a, b, c, d, c1, c2, c3, c4, d1, d2, d3, d4, f, Zi, Zj, s, ra, rb)¶
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.
a (PhysicalQuantity of type length**-1) – Potential parameter.
b (float) – Potential parameter.
c (PhysicalQuantity of type energy) – Potential parameter.
d (PhysicalQuantity of type energy) – Potential parameter.
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.
ra (PhysicalQuantity of type length) – Potential parameter.
rb (PhysicalQuantity of type length) – Potential parameter.
- 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.
Usage Examples¶
Define a Tersoff-Brenner pair potential with additional moliere-type repulsive term for silicon.
_potential = TersoffBrennerPairPotential(
particleType1 = ParticleIdentifier('Si', []),
particleType2 = ParticleIdentifier('Si', []),
A = 1830.8*eV,
B = 471.18*eV,
l = 2.4799*1/Angstrom,
mu = 1.7322*1/Angstrom,
Re = 2.35*Angstrom,
R1 = 2.7*Angstrom,
R2 = 3.0*Angstrom,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerMolierePotential(
particleType1 = ParticleIdentifier('Si', []),
particleType2 = ParticleIdentifier('Si', []),
a = -7.155376*1/Angstrom,
b = 9.502208,
c = 237.361562*eV,
d = 1.0*eV,
f = 0.10164343824*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 = 14.0*elementary_charge,
s = 296.792932*eV,
ra = 0.286968*Angstrom,
rb = 0.65522*Angstrom,
)
potentialSet.addPotential(_potential)
Notes¶
In some cases it is necessary to boost the repulsive term
of a TersoffBrennerPairPotential for particles that are close to each other. Therefore, a correction term was introduced in [1] that replaces the original repulsion term by a Coulomb-like term for close interactions. This behavior can be achieved by an additional correction term \(U_{ij}^{repCor}\) that is added to the \(U_{ij}^{rep}\) terms. It has the form
which basically means that the repulsive term \(U_{ij}^{rep}\) is replaced by
The two new terms \(U_{ij}^{Moliere}\) and \(U_{ij}^{spline}\) are given by
and
This correction can be set up by adding a TersoffBrennerMolierePotential. The potential parameters are defined as follows:
a |
The parameter \(a_{ij}\) |
b |
The parameter \(b_{ij}\) |
c |
The parameter \(c_{ij}\) |
d |
The parameter \(d_{ij}\) |
f |
The parameter \(f_{ij}\) |
s |
The parameter \(s_{ij}\) |
c1,…,c4 |
The parameters \(c_{ij}^{(1)}, \dots, c_{ij}^{(4)}\) |
d1,…,d4 |
The parameters \(d_{ij}^{(1)}, \dots, d_{ij}^{(4)}\) |
zi |
The parameter \(Z_1\) |
zj |
The parameter \(Z_2\) |
r_a |
The parameter \(r_{ij}^{(a)}\) |
r_b |
The parameter \(r_{ij}^{(b)}\) |