DreidingAnglePotential¶
- class DreidingAnglePotential(particleType1, particleType2, particleType3, A, B, r_cut)¶
Constructor of the potential.
This potential is not symmetric, i.e. activating particleType1-particleType2-particleType3 interactions will not also activate particleType3-particleType2-particleType1 interactions.
- Parameters:
particleType1 (ParticleType or ParticleIdentifier) – Identifier of the donator particle type.
particleType2 (ParticleType or ParticleIdentifier) – Identifier of the hydrogen like particle type (central particle when calculating angles)
particleType3 (ParticleType or ParticleIdentifier) – Identifier of tehe acceptor particle type.
A (PhysicalQuantity of type energy) – Potential parameter.
B (PhysicalQuantity of type length) – Potential parameter.
r_cut (PhysicalQuantity of type length) – Cutoff radius
- 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 a hydrogen-bond potential for the O-H–O hydrogen bond in water.
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
potentialSet = TremoloXPotentialSet(name='Dreiding_hbond_angle')
potentialSet.addParticleType(ParticleType.fromElement(Oxygen))
potentialSet.addParticleType(ParticleType.fromElement(Hydrogen))
_potential = DreidingAnglePotential(
particleType1=ParticleIdentifier('O', []),
particleType2=ParticleIdentifier('H', []),
particleType2=ParticleIdentifier('O', []),
A=7.0*kiloCaloriePerMol,
B=2.75*Angstrom,
r_cut=7.5*Angstrom,
)
potentialSet.addPotential(_potential)
calculator = TremoloXCalculator(parameters=potentialSet)
Notes¶
The Dreiding angle potential was originally introduced in [1] to model hydrogen bonding interactions between hydrogen bond donors and acceptors. It has the potential form
The \(\min(0, \cos(\theta_{ijk}))\) part of this equation excludes all triple terms where the angle between the three particles is smaller than 90 degrees (and thus \(\cos(\theta_{ijk})>0\)). This was the expression used in the original paper ([1]).