FrictionProviders.jl

This package provides MLIP interfaces for the prediction of electronic friction tensors for molecular systems.

FrictionProviders.ACEdsODFMethod
ACEdsODF(model, gamma, atoms_julip; friction_unit=u"ps^-1")

ACEfriction.jl tensorial electronic friction provider.

Arguments

model

This is the ACEfriction.FrictionModel used to predict the friction tensor.

gamma

The function used to evaluate the friction tensor from the model using the ACEfriction model and JuLIP Atoms as an input.

Set this to ACEfriction.Gamma unless you need a custom function to postprocess your friction tensor before it is used in dynamics.

atoms_julip

A copy of the structure which the friction tensor will be predicted from as JuLIP.Atoms. This should contain the same atoms and positions, in the same order as your Dynamics Simulation if you are using the model for dynamics. If you are using isotopes, their atomic masses need to be correctly set within this structure to receive the correct friction.

friction_unit

The unit in which the ACEfriction model predicts the friction tensor. By default, this is a relaxation rate tensor in inverse ps.

source
FrictionProviders.AceLDFAMethod
AceLDFA(friction_IP; density_unit=u"Å^-3")

ACE.jl electron density friction provider.

# Arguments

## friction_IP
This is the JuLIP potential created from the fitted ACE model, which is used to predict the electron density as a function of atomic positions. 
    
## density_unit

The unit in which the ACE model predicts the electron density. By default, this is in Å^-3 and should be converted to atomic units of Bohr^-3.
source
FrictionProviders.LDFAFrictionMethod
LDFAFriction(density, atoms; friction_atoms=collect(Int, range(atoms)))

FrictionProvider for the Local Density Friction Approximation.

# Arguments

## density
This should be an interface to the prediction of the electronic density as a function of atomic positions. 
It should support a `density` method. 

## atoms
`NQCBase.Atoms` for the structure in question. This determines the correct fitting curve between Wigner-Seitz radii and electronic friction as shown in Gerrits2020. 
Usually, this is the same `Atoms` object as you use in your dynamics simulation. 

## friction_atoms

The atom indices which electronic friction should be applied to.
source
FrictionProviders.get_friction_matrixMethod
get_friction_matrix(model::ACEdsODF, R::AbstractMatrix, friction_atoms::AbstractVector, cutoff::Float64)

getfrictionmatrix uses an ACEdsODF model to predict the friction matrix for friction_atoms and return it for just those atoms.

This behaviour is different to NQCModels.friction!, which returns friction for the whole system, not just friction_atoms.

source
FrictionProviders.get_friction_matrixMethod
get_friction_matrix(model::LDFAFriction, R::AbstractMatrix)

getfrictionmatrix uses the specified density model to predict the friction matrix for friction_atoms and return it for just those atoms. Units of friction are mass-weighted, and the atomic unit of friction is: [Eh / ħ / me] Convert common friction units such as ps^-1 or meV ps Å^-2 using UnitfulAtomic.austrip.

This behaviour is different to NQCModels.friction!, which returns friction for the whole system, not just friction_atoms.

source