TersoffBrennerTriplePotential4

class TersoffBrennerTriplePotential4(particleType1, particleType2, particleType3, alpha, beta, g_c, g_d, x, H, dxH, dxxH)

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.

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

  • alpha (PhysicalQuantity of type length**-beta) – Potential parameter.

  • beta (int) – Potential parameter.

  • g_c (float) – Potential parameter.

  • g_d (float) – Potential parameter.

  • x (sequence of floats) – Coordinates for which the values of the function H are known. Must be sorted in ascending order.

  • H (sequence of floats) – The function values of H at the points in x.

  • dxH (sequence of floats) – The first derivatives of H at the points in x.

  • dxxH (sequence of floats) – The second derivatives of H at the points in x.

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 triple potentials for a silane molecule.

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.addPotential(_potential)
_potential = TersoffBrennerTriplePotential4(
	particleType1 = ParticleIdentifier('Si', []),
	particleType2 = ParticleIdentifier('Si', []),
	particleType3 = ParticleIdentifier('H', []),
	beta = 3,
	alpha = 4.0*1/Angstrom**3,
	g_c = 0.0216,
	g_d = 0.27,
	x = numpy.array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.]),
	H = numpy.array([-0.04 , -0.04 , -0.276, -0.47 , -0.47 , -0.47 , -0.47 ]),
	dxH = numpy.array([-0.    , -0.1028, -0.2968,  0.    ,  0.    ,  0.    ,  0.    ]),
	dxxH = numpy.array([ 0.2056, -0.4112,  0.0232, -0.    ,  0.    ,  0.    ,  0.    ]),
)
potentialSet.addPotential(_potential)

tersoff_silane.py

Notes

Todo

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

When added to a potential set, this class activates the three-body interactions that are used in the Murty-Atwater variant of the Tersoff-Brenner potential :footcite:Murty1995`.

This potential depends on a function H that is represented by quintic splines. Therefore it is necessary to specify the values of this functions (and its derivatives) at some given points.

Please note that interactions are added in a non-symmetric fashion. particleType1-particleType2 is associated to the bond-order pair i-j. (i is the central particle)