MeamScreeningPotential¶
- class MeamScreeningPotential(particleType1, particleType2, particleType3, Cmin=2.0, Cmax=2.8)¶
Constructor of the potential.
- Parameters:
particleType1 (ParticleType or ParticleIdentifier) – Identifier of the particle type.
particleType2 (ParticleType or ParticleIdentifier) – Identifier of the particle type.
particleType3 (ParticleType or ParticleIdentifier) – Identifier of the particle type.
Cmin (Float) – The lower border for screening.
Cmax (Float) – The upper border for screening.
- 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 MEAM potential for a SiO2 quartz crystal by adding particle types and interaction functions to the TremoloXPotentialSet.
# Set up lattice
vector_a = [5.4306, 0.0, 0.0]*Angstrom
vector_b = [0.0, 5.4306, 0.0]*Angstrom
vector_c = [0.0, 0.0, 5.4306]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
elements = [Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
Silicon]
# Define coordinates
fractional_coordinates = [[ 0. , 0. , 0. ],
[ 0.25, 0.25, 0.25],
[ 0.5 , 0.5 , 0. ],
[ 0.75, 0.75, 0.25],
[ 0.5 , 0. , 0.5 ],
[ 0.75, 0.25, 0.75],
[ 0. , 0.5 , 0.5 ],
[ 0.25, 0.75, 0.75]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
potentialSet = TremoloXPotentialSet(name='MEAM_Si_2007')
potentialSet.addParticleType(ParticleType(
symbol='Si',
mass=28.0855*atomic_mass_unit,
charge=None,
sigma=None,
sigma14=None,
epsilon=None,
epsilon14=None,
atomicNumber=14,
tags=[],
))
_option = MeamGlobalOption(
delr=0.1*Angstrom,
erose=2,
wf_mixing=2,
r_cut=4.5*Angstrom,
augment_1st=0.0,
embedding_negative=False,
density_scaling=False,
)
potentialSet.addOption(_option)
_potential = MeamElementPotential(
particleType=ParticleIdentifier('Si', []),
latticeType='dia',
nearestNeighbors=4,
alpha=4.89890486934,
beta=[3.55, 2.5, 0.0, 7.5, ],
referenceDistance=2.35*Angstrom,
referenceEnergy=4.63*eV,
scalingFactor=0.58,
weightingFactors=[1.8, 5.25, -2.61, ],
rho=1.0,
gamma=3,
attrac=0.0,
repuls=0.0,
nn2=True,
zbl=False,
)
potentialSet.addPotential(_potential)
_potential = MeamScreeningPotential(
particleType1=ParticleIdentifier('Si', []),
particleType2=ParticleIdentifier('Si', []),
particleType3=ParticleIdentifier('Si', []),
Cmin=1.41,
Cmax=2.8,
)
potentialSet.addPotential(_potential)
calculator = TremoloXCalculator(parameters=potentialSet)
calculator.setVerletListsDelta(0.25*Angstrom)
bulk_configuration.setCalculator(calculator)
bulk_configuration.update()
See also Notes on MEAM Potential.