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.BasisParameters
— TypeBasisParameters
Abstract type for the parameters that define the generation of descriptors for a potential.
InteratomicBasisPotentials.BasisPotential
— TypeBasisPotential <: AbstractPotential
Abstract type for potentials that are defined by a basis of polynomials.
Base.length
— Functionlength(params::BasisParameters) :: Int
Retrieve the length of the descriptor vector, the number of descriptors used in the basis potential.
InteratomicBasisPotentials.evaluate_basis
— Functionevaluate_full(A::AbstractSystem, params::BasisParameters)::Tuple(Vector{Vector}, Vector{Matrix}, Vector{Matrix})
Retrieve the local descriptors (descriptors, gradients, and virials) for a Basis Potential
InteratomicBasisPotentials.evaluate_basis_d
— Functionevaluate_basis_d(A::AbstractSystem, params::BasisParameters)::Vector{Matrix{Float64}}
Retrieve the gradient of the descriptors (used for force calulations) for a Basis Potential.
InteratomicBasisPotentials.evaluate_basis_v
— Functionevaluate_basis_v(A::AbstractSystem, params::BasisParameters)::Matrix{Float64}
Retrieve the descriptor vectors corresponding to the virial stress tensor of a configuration, for a Basis Potential.
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.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.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.