VFFCoplanarBondBendingPotential

class VFFCoplanarBondBendingPotential(particleType1, particleType2, particleType3, particleType4, alpha, delta, epsilon)

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 third particle type.
  • particleType4 (ParticleType or ParticleIdentifier) – Identifier of the fourth particle type.
  • alpha (PhysicalQuantity of type energy * length**-4) – Potential parameter.
  • delta (PhysicalQuantity of type length**2) – Potential parameter.
  • epsilon – Potential parameter.
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.

setAlpha(alpha)

Set the parameter alpha.

Parameters:alpha (PhysicalQuantity of type energy * length**-4) – Potential parameter.
setDelta(delta)

Set the parameter delta.

Parameters:delta (PhysicalQuantity of type length**2) – Potential parameter.
setEpsilon(epsilon)

Set the parameter epsilon.

Parameters:epsilon (PhysicalQuantity of type length**2) – Potential parameter.
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.

Notes

  • This potential class is a bonded potential. This means it requires a bond topology to be specified on the configuration which the potential should be used for. Bonds can be set using the findBonds() method on configurations (MoleculeConfiguration, BulkConfiguration, DeviceConfiguration, or SurfaceConfiguration), which automatically adds bonds for atoms which are closer than their combined covalent radii (multiplied by a fuzz_factor of 1.1 by default). Alternatively bonds can be set manually by passing a list of the atom index pairs that form the bonds to the setBonds() method on the configuration. If no bonds are specified on the configuration bonded potentials have no effect.

  • This potential is part of the potential functions that are used in valence force fields (VFF) [Kea66][LvAO+04].

  • This potential acts on a quadruple of atoms (i,j,k,l) and it is calculated as

    \[V(\mathbf{r}_{i,j}, \mathbf{r}_{j,k}, \mathbf{r}_{k,l}) = \alpha \left(\mathbf{r}_{j,i} \cdot \mathbf{r}_{j,k} - \delta \right) \left(\mathbf{r}_{h,j} \cdot \mathbf{r}_{k,l} - \epsilon \right)\]

    where \(\mathbf{r}_{i,j}\) is the distance vector from atom i to atom j, and \(r_{i,j}\) is the corresponding distance.

[Kea66]P. N. Keating. Effect of invariance requirements on the elastic strain energy of crystals with application to the diamond structure. Phys. Rev., 145:637–645, 1966. doi:10.1103/PhysRev.145.637.
[LvAO+04]Olga L. Lazarenkova, Paul von Allmen, Fabiano Oyafuso, Seungwon Lee, and Gerhard Klimeck. Effect of anharmonicity of the strain energy on band offsets in semiconductor nanostructures. Appl. Phys. Lett., 85(18):4193–4195, 2004. doi:10.1063/1.1814810.