Repulsive12Potential¶
- class Repulsive12Potential(particleType1, particleType2, c, r_cut=None, bonded_mode=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.
c (PhysicalQuantity of type length**12 * energy) – Potential parameter.
r_cut (PhysicalQuantity of type length) – The cutoff radius of this potential.
bonded_mode –
Either Repulsive12Potential.evaluateAll or Repulsive12Potential.evaluate14 or Repulsive12Potential.evaluate15Only.
If evaluateAll is chosen, interactions between all particles - even those that are connected by fixed bonds - are evaluated, using the sigma and epsilon parameters.
If evaluate14 is chosen, interactions between particles that are connected by a bond path of length 1, 2, or 3 are omitted.
If evaluate15Only is chosen, only interactions between particles that are connected by a bond path of length 4 are considered.
- 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 potential for Quartz by adding particle types and interaction functions to the TremoloXPotentialSet.
# -------------------------------------------------------------
# Set up a SiO2 Quartz crystal
# -------------------------------------------------------------
# Set up lattice
lattice = Hexagonal(4.916*Angstrom, 5.4054*Angstrom)
# Define elements
elements = [Silicon, Silicon, Silicon, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
Oxygen]
# Define coordinates
fractional_coordinates = [[ 0.4697, 0.0000, 0.0000 ],
[ 0.0000, 0.4697, 0.66666667],
[ 0.5303, 0.5303, 0.33333333],
[ 0.4135, 0.2669, 0.1191 ],
[ 0.2669, 0.4135, 0.547567 ],
[ 0.7331, 0.1466, 0.785767 ],
[ 0.5865, 0.8534, 0.214233 ],
[ 0.8534, 0.5865, 0.452433 ],
[ 0.1466, 0.7331, 0.8809 ]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
# Create the Pedone_2006Fe2 potential by hand, by adding the individual components
potentialSet = TremoloXPotentialSet(name='Pedone_2006Fe2')
# Add the particle types to the potential set
potentialSet.addParticleType(ParticleType(symbol='Si',
mass=28.0855*atomic_mass_unit,
charge=2.4))
potentialSet.addParticleType(ParticleType(symbol='O',
mass=15.9994*atomic_mass_unit,
charge=-1.2))
# Add the pair potentials to the potential set
potentialSet.addPotential(MorsePotential('Si', 'O',
r_0=2.1*Angstrom,
k=2.0067*1/Ang,
E_0=0.340554*eV,
r_i=6.0*Angstrom,
r_cut=7.5*Angstrom))
potentialSet.addPotential(Repulsive12Potential('Si', 'O',
r_cut=7.5*Angstrom,
c=1.0*Ang**12*eV))
potentialSet.addPotential(MorsePotential('O', 'O',
r_0=3.618701*Angstrom,
k=1.379316*1/Ang,
E_0=0.042395*eV,
r_i=6.0*Angstrom,
r_cut=7.5*Angstrom))
potentialSet.addPotential(Repulsive12Potential('O', 'O',
r_cut=7.5*Angstrom,
c=22.0*Ang**12*eV))
# Add the coulomb solver to the potential set
potentialSet.setCoulombSolver(CoulombDSF(r_cut=9.0*Angstrom, alpha=0.2))
# Create the calculator from the potential set
calculator = TremoloXCalculator(parameters=potentialSet)
bulk_configuration.setCalculator(calculator)
bulk_configuration.update()
Notes¶
The Repulsive12Potential defines a purely repulsive potential: