The package ACEfriction provides an ACE-based implementation of the size-transferrable, E(3)-equivariant models introduced in [Sachs et al., (2024)](@ref ACEfriction-paper) for configuration-dependent friction or diffusion tensors.
In a nutshell, the package provides utilities to efficiently learn and evaluate E(3)-equivariant symmetric positive semi-definite matrix functions of the form
where the ${\bm r}{i}$s are the positions and the $z{i}$s are the atomic element types of atoms in an atomic configuration comprised of
The underlying model is based on an equivariance-preserving matrix square root decomposition,
where block entries of the matrix square root ${\bm \Sigma}\left ( ({\bm r}{i},z_i){i=1}^{N_{\rm at}} \right ) \in \mathbb{R}^{3 N_{\rm at} \times m}$ with some
The package ACEfriction is comprised of three main sub-modules:
-
The sub-module
FrictionModelsimplements the structureFrictionModel, which facilitates the specification of and evaluation of friction models. The module implements the functionsGamma(fm::FrictionModel, at::Atoms),Sigma(fm::FrictionModel, at::Atoms)which evaluate the friction modelfmat the atomic configurationatto the correspong friction tensor${\bm \Gamma}$ and diffusion coefficient matrix${\bm \Sigma}$ , respectively. Moreover, it provides the functionsGamma(fm::FrictionModel, Σ),randf(fm::FrictionModel, Σ)for efficient computation of the friction tensor and generation of${\rm Normal}({\bm 0}, {\bm \Gamma})$ -distributed Gaussian random numbers from a precomputed diffusion coeffiient matrixΣ. -
The sub-module
MatrixModelsimplements various matrix models, which make up a friction model and, in essence, specify (i) properties of the ACE-basis used to evaluate blocks ${\bm \Sigma}{ij}$ of the difffusion matrix, and (ii) how blocks ${\bm \Sigma}{ij}$ are combined in the assembly of the friction tensor${\bm \Gamma}$ . The assembly of the friction tensor is governed by what is referred to in [Sachs et al., (2024)](@ref ACEfriction-paper) as the coupling scheme and implements versions of the the pair-wise coupling and row-wise coupling described therein. -
The sub-module
FrictionFitprovides utility functions for training of friction models using the julia machine learning libraryFlux.jl.
Learned models of
or a configuration-dependent diffusion tensor in an overdamped Langevin equation,
The model and code allows imposing additional symmetry constraints on the matrix