SymmetryFunctions
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.AngularType3 — Method
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.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.AngularType3a — Method
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.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.RadialType2 — Method
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
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.RadialType2a — Type
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
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.calc_one_symm_val — Method
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.
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.
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.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.exponential_part — Method
exponential_part(η,r2_ij,r2_ik,r2_jk,f_ij,f_ik,f_jk)
exponential_part(η,rsum,f_prod)Calculates the exponential portion of the symmetry function for the angular symmetry function. Preserves the values we can maintain throughout iterating over theta. Second method simply reduces the inputs to what is actually required.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.init_symm_vecs — Method
init_symm_vecs(dist2_mat,total_symm_vec)Prepares the symmetry matrix g_mat by taking the dimensions of the dist2_mat containing the squared distance of each atom with its pair, and total_symm_vec with all of the symmetry functions.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.symmfunc_calc — Method
symmfunc_calc(θ_vec,r2_ij,r2_ik,r2_jk,f_ij,f_ik,f_jk,η,λ,ζ)Calculates the three g_values corresponding to the three atoms iterated over, builds the foundation of the total symm function as calculated below.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.theta_part — Method
theta_part(θ,λ,ζ)Calculates the angular portion of a single symmetry function, this requires iteration over each of the three angles.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.total_symm_calc — Method
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 2ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.total_thr_symm_calc — Method
total_thr_symm_calc(positions,dist2_mat,f_mat,total_symm_vec)This operates as the total_symm_calc function only threaded over the symmetry functions.
ParallelTemperingMonteCarlo.MachineLearningPotential.SymmetryFunctions.update_g_vals! — Method
update_g_vals!(g_vec,g_vals,atomindex,index2,index3)Function to correctly update the symmvalues g_vals at the indices in g_vec