API Reference
This page provides a list of all documented types and functions and in InteratomicBasisPotentials.jl.
If you are looking for more specifics on the InteratomicPotentials Interface, see the InteratomicBasisPotentials Interface page.
InteratomicBasisPotentials.LBasisPotential
— TypeLBasisPotential <: LinearBasisPotential
Type covering interatomic potentials that produce energies and forces as a linear function of the basis descriptors. Typical examples include vanilla ACE/SNAP. Each struct contains the parameters of the potential, β', and the basis system being used,
basis'.
InteratomicBasisPotentials.NNBasisPotential
— TypeNNBasisPotential <: NeuralNetworkBasisPotential
Definition of the neural network basis potential composed type.
Base.length
— Functionlength(params::BasisParameters) :: Int
Retrieve the length of the descriptor vector, the number of descriptors used in the basis potential.
InteratomicBasisPotentials.get_rpi
— Functionget_rpi(ace_params::ACE)::ACE1.RPI
Retrive the underlying RPI parameter type from ACE1. This is a convience function for exporting ACE parameters to file.
InteratomicPotentials.energy_and_force
— Functionenergy_and_force(s::AbstractSystem, p::AbstractPotential)::NamedTuple{(:e, :f), Tuple{Unitful.Energy,Vector{SVector{3, Unitful.Force}}}}
Calculate the unit-annotated potential energy of a system and the force acting on each particle in a system using the provided interatomic potential. This combined function is offered because it is usually more efficient to calculate both properties simultaneously.
InteratomicPotentials.force
— Functionforce(s::AbstractSystem, p::AbstractPotential)::Vector{SVector{3, Unitful.Force}}
Calculate the unit-annotated force acting on each particle in a system using the provided interatomic potential. The default implementation uses the :f
property of energy_and_force(s,p)
.
InteratomicPotentials.force
— Methodforce(A::AbstractSystem, p::NNBasisPotential)
A
: atomic system or atomic configuration. p
: neural network basis potential.
Returns the force of a system using a neural network basis potential.
InteratomicPotentials.get_rcutoff
— Functionget_rcutoff(p::AbstractPotential)::AbstractFloat
Retrieve the radius cutoff for the provided potential. This is the cutoff used for neighbor list calculations. (i.e. Any pairs beyond this cutoff will be ignored.) Defaults to Inf
if a potential type does not implement a custom method.
InteratomicPotentials.get_species
— Functionget_species(p::AbstractPotential)::Union{Tuple,Missing}
Retrieve the species to be included in an interaction (pairs including a species not in the list are ignored). A value of missing
indicates that all species should be included, which is the default behavior if a potential type does not implement a custom method.
InteratomicPotentials.potential_energy
— Functionpotential_energy(s::AbstractSystem, p::AbstractPotential)::Unitful.Energy
Calculate the unit-annotated potential energy of a system using the provided interatomic potential. The default implementation uses the :e
property of energy_and_force(s,p)
.
InteratomicPotentials.potential_energy
— Methodpotential_energy(A::AbstractSystem, p::NNBasisPotential)
A
: atomic system or atomic configuration. p
: neural network basis potential.
Returns the potential energy of a system using a neural network basis potential.
InteratomicPotentials.virial
— Functionvirial(s::AbstractSystem, p::AbstractPotential)::Unitful.Energy
Calculate the unit-annotated virial of a system, officially calculated as the trace contraction of the sum of radial-force outerproducts: $tr\left( \sum r_{ij} \bigotimes F_{ij} \right)$
InteratomicPotentials.virial_stress
— Functionvirial_stress(s::AbstractSystem, p::AbstractPotential)::SVector{6,Unitful.Energy}
Calculate the unit-annotated virial stress tensor of a system, officially calculated as the sum of radial-force outerproducts: $\sum r_{ij} \bigotimes F_{ij}$, only returns the unique lower-diagonal components.