TersoffBrennerTriplePotential5

class TersoffBrennerTriplePotential5(particleType1, particleType2, particleType3, alpha, beta, g_a, g_c, g_d, activeTypes1, activeTypes2, x, y, h)

Constructor of the potential.

To construct this potential it is necessary to specify a twodimensional function. This is done by passing the function values of this function at some grid points, for all other points, bicubic interpolation is used. At the border of the grid, all derivatives are assumed to be zero.

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_a (float) – Potential parameter.
  • g_c (float) – Potential parameter.
  • g_d (float) – Potential parameter. Must not be zero.
  • activeTypes1 (sequence of ParticleType or ParticleIdentifier) – List of particle types that are involved in the calculation of the N1 coefficient in the potential.
  • activeTypes2 (sequence of ParticleType or ParticleIdentifier) – List of particle types that are involved in the calculation of the N2 coefficient in the potential.
  • x (sequence of float) – The x-coordinates of the grid. It must have uniform spacing.
  • y (sequence of float) – The y-coordinates of the grid. It must have uniform spacing.
  • h (2D numpy.array) – The function values at the given grid points. h should be a twodimensional array of size (len(x), len(y)). h[i, j] should be the function value at (x[i], y[j]).
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)

Sets the cutoff radius for the given 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 triple potentials for silicon-carbon interactions.

potentialSet = TremoloXPotentialSet(name = 'Dyson_CHSi_1999')
potentialSet.addParticleType(ParticleType(
	symbol = 'C',
	mass = 12.0107*atomic_mass_unit,
	charge = None,
	sigma = None,
	sigma14 = None,
	epsilon = None,
	epsilon14 = None,
	atomicNumber = 6,
	tags = [],
))
potentialSet.addParticleType(ParticleType(
	symbol = 'Si',
	mass = 28.0855*atomic_mass_unit,
	charge = None,
	sigma = None,
	sigma14 = None,
	epsilon = None,
	epsilon14 = None,
	atomicNumber = 14,
	tags = [],
))

_potential = TersoffBrennerTriplePotential5(
	particleType1 = ParticleIdentifier('Si', []),
	particleType2 = ParticleIdentifier('Si', []),
	particleType3 = ParticleIdentifier('C', []),
	beta = 1,
	alpha = 3.0*1/Angstrom,
	g_a = 0.01,
	g_c = 14.0,
	g_d = 2.1,
	activeTypes1 = [ParticleIdentifier('H', []), ],
	activeTypes2 = [ParticleIdentifier('Si', []), ParticleIdentifier('C', []), ],
	x = numpy.array([0, 1, 2, 3, 4, 5]),
	y = numpy.array([0, 1, 2, 3, 4, 5]),
	h = numpy.array([[-0.   , -0.5  , -1.   , -1.   , -0.   , -0.   ],
       [-0.   , -0.049, -0.45 , -0.68 , -0.   , -0.   ],
       [-0.04 , -0.436, -0.75 , -0.   , -0.   , -0.   ],
       [-0.35 , -0.65 , -0.85 , -0.   , -0.   , -0.   ],
       [-0.6  , -0.8  , -0.   , -0.   , -0.   , -0.   ],
       [-0.   , -0.   , -0.   , -0.   , -0.   , -0.   ]]),
)
potentialSet.addPotential(_potential)

dyson_SiCH6.py

Notes

When added to a potential set, this class activates the three-body interactions that are used in the Dyson-Smith variant of the Tersoff-Brenner potential [DS99].

This potential depends on a function h that is represented by a bicubic 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)

[DS99]A. J. Dyson and P. V. Smith. Improved empirical interatomic potential for c—si—h systems. Mol. Phys., 96:1491–1507, 1999. URL: https://doi.org/10.1080/00268979909483092.