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, fType=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.

  • 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.

  • fType

    The smoothing function that will be used. Must be one of the following variables:

    TwoBodyPotential.Brenner TwoBodyPotential.MurtyAtwater TwoBodyPotential.HumbridGraves

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 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

Todo

We should add the actual formula once the TremoloX Manual is updated.

The pair potential that is used in the Murty-Atwater variant of the Tersoff- Brenner potential [1]. 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.