Helper Functions
- flare.kernels.kernels.coordination_number(rij, cij, r_cut, cutoff_func)
- Pairwise contribution to many-body descriptor based on number of
atoms in the environment
- Parameters:
rij (float) – distance between atoms i and j
cij (float) – Component of versor of rij along given direction
r_cut (float) – cutoff hyperparameter
cutoff_func (callable) – cutoff function
- Returns:
the value of the pairwise many-body contribution float: the value of the derivative of the pairwise many-body contribution w.r.t. the central atom displacement
- Return type:
float
- flare.kernels.kernels.force_helper(A, B, C, D, fi, fj, fdi, fdj, ls1, ls2, ls3, sig2)
Helper function for computing the force/force kernel between two pairs or triplets of atoms of the same type.
See Table IV of the SI of the FLARE paper for definitions of intermediate quantities.
- Returns:
- Force/force kernel between two pairs or triplets of atoms of
the same type.
- Return type:
float
- flare.kernels.kernels.k_sq_exp_dev(q1, q2, sig, ls)
First Gradient of generic squared exponential kernel on two many body functions
- Parameters:
q1 (float) – the many body descriptor of the first local environment
q2 (float) – the many body descriptor of the second local environment
sig (float) – amplitude hyperparameter
ls2 (float) – squared lenghtscale hyperparameter
- Returns:
the value of the derivative of the squared exponential kernel
- Return type:
float
- flare.kernels.kernels.k_sq_exp_double_dev(q1, q2, sig, ls)
Second Gradient of generic squared exponential kernel on two many body functions
- Parameters:
q1 (float) – the many body descriptor of the first local environment
q2 (float) – the many body descriptor of the second local environment
sig (float) – amplitude hyperparameter
ls2 (float) – squared lenghtscale hyperparameter
- Returns:
the value of the double derivative of the squared exponential kernel
- Return type:
float
- flare.kernels.kernels.mb_grad_helper_ls(q1, q2, qi, qj, sig, ls)
Helper function for many body gradient collecting all the derivatives of the force-force many body kernel w.r.t. ls
- flare.kernels.kernels.mb_grad_helper_ls_(qdiffsq, sig, ls)
Derivative of a many body force-force kernel w.r.t. ls
- flare.kernels.kernels.q_value(distances, r_cut, cutoff_func, q_func=numba.njit)
Compute value of many-body descriptor based on distances of atoms in the local many-body environment.
- Parameters:
distances (np.ndarray) – distances between atoms i and j
r_cut (float) – cutoff hyperparameter
cutoff_func (callable) – cutoff function
q_func (callable) – many-body pairwise descrptor function
- Returns:
the value of the many-body descriptor
- Return type:
float
- flare.kernels.kernels.q_value_mc(distances, r_cut, ref_species, species, cutoff_func, q_func=numba.njit)
Compute value of many-body many components descriptor based on distances of atoms in the local many-body environment.
- Parameters:
distances (np.ndarray) – distances between atoms i and j
r_cut (float) – cutoff hyperparameter
ref_species (int) – species to consider to compute the contribution
species (np.ndarray) – atomic species of neighbours
cutoff_func (callable) – cutoff function
q_func (callable) – many-body pairwise descrptor function
- Returns:
the value of the many-body descriptor
- Return type:
float