# TersoffBrennerPairPotential3¶

class TersoffBrennerPairPotential3(particleType1, particleType2, A, B, l, mu, Re, R1, R2, xRep1, FRep1, dxFRep1, dxxFRep1, xRep2, FRep2, dxFRep2, dxxFRep2, xAttr1, FAttr1, dxFAttr1, dxxFAttr1, xAttr2, FAttr2, dxFAttr2, dxxFAttr2)

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 energy) – Potential parameter. B (PhysicalQuantity of type energy) – Potential parameter. l (PhysicalQuantity of type length**-1) – Potential parameter (lambda). mu (PhysicalQuantity of type length**-1) – Potential parameter. Re (PhysicalQuantity of type length) – Potential parameter. R1 (PhysicalQuantity of type length) – Potential parameter. R2 (PhysicalQuantity of type length) – Potential parameter. xRep1 (sequence of floats) – Coordinates for which the values of the function F^(rep, 1) are known. Must be sorted in ascending order. FRep1 (sequence of floats) – The function values of F^(rep, 1) at the points in xRep1. dxFRep1 (sequence of floats) – The first derivatives of F^(rep, 1) at the points in xRep1. dxxFRep1 (sequence of floats) – The second derivatives of F^(rep, 1) at the points in xRep1. xRep2 (sequence of floats) – Coordinates for which the values of the function F^(rep, 1) are known. Must be sorted in ascending order. FRep2 (sequence of floats) – The function values of F^(rep, 2) at the points in xRep2. dxFRep2 (sequence of floats) – The first derivatives of F^(rep, 2) at the points in xRep2. dxxFRep2 (sequence of floats) – The second derivatives of F^(rep, 2) at the points in xRep2. xAttr1 (sequence of floats) – Coordinates for which the values of the function F^(attr, 1) are known. Must be sorted in ascending order. FAttr1 (sequence of floats) – The function values of F^(attr, 1) at the points in xAttr1. dxFAttr1 (sequence of floats) – The first derivatives of F^(attr, 1) at the points in xAttr1. dxxFAttr1 (sequence of floats) – The second derivatives of F^(attr, 1) at the points in xAttr1. xAttr2 (sequence of floats) – Coordinates for which the values of the function F^(attr, 1) are known. Must be sorted in ascending order. FAttr2 (sequence of floats) – The function values of F^(attr, 2) at the points in xAttr2. dxFAttr2 (sequence of floats) – The first derivatives of F^(attr, 2) at the points in xAttr2. dxxFAttr2 (sequence of floats) – The second derivatives of F^(attr, 2) at the points in xAttr2.
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.
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 Tersoff-Brenner pair potentials for silane.

potentialSet = TremoloXPotentialSet(name = 'Murty_HSi_1995')
potentialSet.addParticleType(ParticleType(
symbol = 'Si',
mass = 28.0855*atomic_mass_unit,
charge = None,
sigma = None,
sigma14 = None,
epsilon = None,
epsilon14 = None,
atomicNumber = 14,
tags = [],
))
potentialSet.addParticleType(ParticleType(
symbol = 'H',
mass = 1.00794*atomic_mass_unit,
charge = None,
sigma = None,
sigma14 = None,
epsilon = None,
epsilon14 = None,
atomicNumber = 1,
tags = [],
))

_potential = TersoffBrennerPairPotential3(
particleType1 = ParticleIdentifier('Si', []),
particleType2 = ParticleIdentifier('H', []),
A = 323.54*eV,
B = 84.18*eV,
l = 2.9595*1/Angstrom,
mu = 1.6158*1/Angstrom,
Re = 1.475*Angstrom,
R1 = 1.7*Angstrom,
R2 = 2.0*Angstrom,
xRep1 = numpy.array([1, 2, 3, 4, 5, 6, 7]),
FRep1 = numpy.array([ 2.01 ,  2.218,  1.908,  2.   ,  2.   ,  2.   ,  2.   ]),
dxFRep1 = numpy.array([ 0.   , -0.038, -0.154,  0.   ,  0.   ,  0.   ,  0.   ]),
dxxFRep1 = numpy.array([ 1.324, -1.4  ,  1.168,  0.   ,  0.   ,  0.   ,  0.   ]),
xRep2 = numpy.array([ 0.,  1.]),
FRep2 = numpy.array([ 0.,  0.]),
dxFRep2 = numpy.array([ 0.,  0.]),
dxxFRep2 = numpy.array([ 0.,  0.]),
xAttr1 = numpy.array([1, 2, 3, 4, 5, 6, 7]),
FAttr1 = numpy.array([ 1.86 ,  2.07 ,  1.868,  2.   ,  2.   ,  2.   ,  2.   ]),
dxFAttr1 = numpy.array([-0.    ,  0.0204, -0.0576,  0.    ,  0.    ,  0.    ,  0.    ]),
dxxFAttr1 = numpy.array([ 1.2192, -1.1784,  1.0224,  0.    ,  0.    ,  0.    ,  0.    ]),
xAttr2 = numpy.array([ 0.,  1.]),
FAttr2 = numpy.array([ 0.,  0.]),
dxFAttr2 = numpy.array([ 0.,  0.]),
dxxFAttr2 = numpy.array([ 0.,  0.]),
)
potentialSet.addPotential(_potential)


tersoff_silane.py

## Notes¶

The pair potential that is used in the Murty-Atwater variant of the Tersoff- Brenner potential [RMA95]. When added to a potential set, this class activates the repulsive and attractive terms between two types of particles.

Both the repulsive and the attractive interactions depend on quintic splines. To define these splines, their function values and derivatives at some coordinates must be passed to this potential.

Interactions are added in a symmetric fashion, which means that adding a TersoffBrennerPairPotential2 object with particle types A and B to a potential set will activate interactions between particles of type A and B but also between B and A.

 [RMA95] M. V. Ramana Murty and Harry A. Atwater. Empirical interatomic potential for si-h interactions. Phys. Rev. B, 51:4889–4893, 1995. URL: https://link.aps.org/doi/10.1103/PhysRevB.51.4889.