Fitting an Electronic Friction Tensor
In this workflow example we demonstrate how ACEds.jl
can be used to fit a simple 6 x 6 Electronic friction tensor modeling the non-adiabitic interactions of a hydrogen-atom on a copper surface.
Load Electronic Friction Tensor Data
We first use the function load_h5fdata to load the data of friction tensors from a custom-formated hdf5 file and convert the data to the internal data format [FrictionData].
using ACEds
+Fitting an Electronic Friction Tensor · ACEds.jl Fitting an Electronic Friction Tensor
In this workflow example we demonstrate how ACEds.jl
can be used to fit a simple 6 x 6 Electronic friction tensor modeling the non-adiabitic interactions of a hydrogen-atom on a copper surface.
Load Electronic Friction Tensor Data
We first use the function load_h5fdata to load the data of friction tensors from a custom-formated hdf5 file and convert the data to the internal data format [FrictionData].
using ACEds
# Load data
rdata = ACEds.DataUtils.load_h5fdata( "./test/test-data-100.h5");
# Specify size of training and test data
@@ -45,4 +45,4 @@
set_params!(fm, c)
Evaluating the Friction Model
The trained friction model can be used to evaluate the friction tensor ${\bm \Gamma}$ and diffusion coeccifient matrix ${\bm \Sigma}$ at configurations as follows
at = fdata["test"][1].atoms # extract atomic configuration from the test set
Gamma(fm, at) # evaluate the friction tensor
Σ = Sigma(fm, at) # evaluate the diffusion coeffcient matrix
To simulate a Langevin equation, typically, both the friction coefficient and the diffusion coefficient matrix must be evaluated. Instead of evaluating them seperately it is more efficient to first evaluate the diffusion coefficient matrix and then evaluate the friction tensor from the the pre-computed diffusion coefficient matrix:
Σ = Sigma(fm, at) # evaluate the diffusion coeffcient matrix
-Gamma(fm, Σ) # compute the friction tensor from the pre-computeed diffusion coefficient matrix.
The diffusion coefficient matrix $\Sigma$ can also be used to efficiently generate Gaussian pseudo random numbers ${\rm Normal}(0,{\bf \Gamma})$ as
R = randf(fm,Σ)
Settings
This document was generated with Documenter.jl version 1.7.0 on Wednesday 30 October 2024. Using Julia version 1.11.1.
+Gamma(fm, Σ) # compute the friction tensor from the pre-computeed diffusion coefficient matrix.
The diffusion coefficient matrix $\Sigma$ can also be used to efficiently generate Gaussian pseudo random numbers ${\rm Normal}(0,{\bf \Gamma})$ as
R = randf(fm,Σ)