EAMsetflPotential

class EAMsetflPotential(file, splineType=None, tags=None)

Constructor of the potential.

Parameters:
  • file (str) – The name of the file that contains the EAM parameters. The file must be in the EAM/alloy setfl format.
  • splineType – The used spline type. Either EAMPotential.akima, EAMPotential.fivepoint, EAMPotential.bessel or EAMPotential.natural.
  • tags (None or sequence of str) – A list of tags (or None) that will be used for all particle types inside the EAM potential file.
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.
setSplineType(splineType)

Set the used spline type.

Parameters:splineType – The used spline type. Either EAMPotential.akima, EAMPotential.fivepoint, EAMPotential.bessel or EAMPotential.natural.

Usage Examples

Define an EAM potential for a copper by adding particle types and interaction functions to the TremoloXPotentialSet.

# -------------------------------------------------------------
# Bulk configuration for FCC copper
# -------------------------------------------------------------

# Set up lattice
lattice = FaceCenteredCubic(3.61496*Angstrom)

# Define elements
elements = [Copper]

# Define coordinates
fractional_coordinates = [[ 0.0, 0.0, 0.0]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------

# Create a new potential set
potentialSet = TremoloXPotentialSet(name='EAM_Cu_2001b')

# Add the particle type to the potential set
potentialSet.addParticleType(ParticleType(symbol='Cu',
                                          mass=63.546*atomic_mass_unit))

# Add the EAM potential to the potential set
potentialSet.addPotential(EAMsetflPotential(file='Cu-Mishin-2001.eam.alloy',
                                            splineType='natural'))

# Create a TremoloX calculator from the potential set
calculator = TremoloXCalculator(parameters=potentialSet)

bulk_configuration.setCalculator(calculator)


Notes

The EAMsetflPotential is a many-body potential implementing the embedded atom method (EAM). It is primarily designed for metals and alloys [sDB84], and it is similar to the EAMfssetflPotential and the SuttonChenPotential.

The potential energy is defined as

\[\begin{split}V = \sum_{i<j} \phi_{ij}(r_{ij}) + \sum_i \left( \sum_{j \neq i} \rho_j(r_{ij}) \right ) \, ,\end{split}\]

where \(F\) is the embedding function, \(\rho\) is a generalized density arising from the neighbor atoms, and \(\phi\) is a repulsive pair potential.

These functions are usually given in tabulated form and read from the file specified by the file argument.

[sDB84]M. S. Daw and M. I. Baskes. Embedded-atom method: Derivation and application to impurities, surfaces, and other defects in metals. Phys. Rev. B, 29:6443–6453, Jun 1984. doi:10.1103/PhysRevB.29.6443.