SymmetryFunctions

ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.AngularType3Method
AngularType3{T}(eta,lambda,zeta,r_cut,type_vec::Vector) where {T}
AngularType3{T}(eta,lambda,zeta,r_cut,type_vector::Vector,G_vals::Vector) where {T}

Functions to initialise the AngularType3 structs based on various different definitions. If we don't include the offset and normalisation factors the two power of (one minus) zeta factor inlcudes no normalisation, and the offset is zero. Second definition includes a vector containing G_max and G_min in a vector, it sets the offset and renormalises tpz to include G_norm.

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.AngularType3aMethod
AngularType3a{T}(eta,lambda,zeta,r_cut,type_vec) where {T}
AngularType3a{T}(eta,lambda,zeta,r_cut,type_vector,G_valsa::Vector,G_valsb::Vector) where {T}

Functions to initialise the AngularType3a structs based on various different definitions. If we don't include the offset and normalisation factors the two power of (one minus) zeta factor inlcudes no normalisation, and the offset is zero. Second definition includes a vector containing Gmax and Gmin in a vector, it sets the offset and renormalises tpz to include G_norm.

This version is for a diatomic potential where there are two sets of parameters one for each atom type.

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.RadialType2Method
RadialType2{T}(eta,r_cut,type_vector) 
RadialType2{T}(eta,r_cut,type_vector::Vector,G_vals::Vector)

Various definitions of the RadialType2 struct to account for new normalisation factors required by the neural network to simplify the math. One only accepts the standard hyperparameters trained by the neural network and sets the offset and normalisation factors to zero and one respectively. The other accepts G_min,G_max and calculates the normalisation and offset manually

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.RadialType2aType
RadialType2a{T}(eta,r_cut,type_vector) where {T}
RadialType2a{T}(eta,r_cut,type_vector,G_vals_a::Vector,G_vals_b) where {T}

Various definitions of the RadialType2a struct to account for new normalisation factors required by the neural network to simplify the math. One only accepts the standard hyperparameters trained by the neural network and sets the offset and normalisation factors to zero and one respectively. This is for a diatomic RuNNer potential with two sets of parameters required to populate two vectors of symmetry functions

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.calc_one_symm_valMethod
calc_one_symm_val(r2_ij,fc_ij,η)

Accepts interatomic distance squared r2_ij, the cutoff function 'fcij' and a gaussian parameter η it then calculates the radial symmetry function value for a single pair of atoms. calconesymmval(θ,r2ij,r2ik,r2jk,fij,fik,fjk,η,λ,ζ) (position1,position2,position3,r2ij,r2ik,r2jk,fij,fik,fjk,η,λ,ζ)

Returns a single symmetry function value from the double-sum. accepts θ the angle between ijk centred on i, and the squared distances r2_ij,r2_ik, r2_jk, the cutoff function values f_ij,f_ik,f_jk along with the symmetry function parameters η,λ,ζ, and the cutoff radius r_cut.

The version with position_i calculates the angle between positions before calculating the symmetry functions according to the previous method.

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.calc_symm_vals!Method
calc_symm_vals!(position,dist2_mat,f_mat,g_vec,n1,n2,η,g_norm,G_offset)
calc_symm_vals!(positions,dist2_mat,f_mat,g_vec,n1,n2,η,λ,ζ,tpz,G_offset)

Methods for the calculation of a symmetry function vector for a diatomic RuNNer potential with n1 atoms of type 1 and n2 atoms of type 2. First method is for angular symmetry functions and populates two vectors of symmetry values, one for X-Cu the other for X-Zn. The second method is for angular symmetry functions and returns three vectors: X-CuCu, X-CuZn and X-ZnZn.

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.calc_symm_vals!Method
calc_symm_vals!(positions,dist2_mat,f_mat,g_vec,symm_func::RadialType2)
calc_symm_vals!(positions,dist2_mat,f_mat,g_vec,symm_func::AngularType3)

Accepts positions for consistency with angular calculation, dist2_mat and f_mat containing the distances and cutoff functions relevant to the symmetry values, lastly accepts the symmetry function over which to iterate. g_vec is an N_atom vector into which the total contributions of each atom are input. Returns the same vector. Second method is for the calculation of angular symmetry functions.

source
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.total_symm_calcMethod
total_symm_calc(positions,dist2_mat,f_mat,total_symm_vec)
total_symm_calc(positions,dist2_mat,f_mat,radsymmfunctions,angsymmfunctions,nrad,nang,n1,n2)

Function to run over a vector of symmetry functions total_symm_vec and determining the value for each symmetry function for each atom at position positions with distances dist2_mat and a matrix of cutoff functions f_mat between each atom pair.

Second method is the same, but for n1 atoms of type 1 and n2 atoms of type 2
source