From 48c946a2b88f9ce91bf8ea920777d5e9cabb64dd Mon Sep 17 00:00:00 2001 From: anjohan Date: Mon, 10 Jun 2024 19:20:06 +0000 Subject: [PATCH] deploy: 113b370c7cb33669754ab8c3759bd42755170cfa --- flare/bffs/gp/calculator.html | 49 +- flare/bffs/gp/gp.html | 361 +++++++ flare/bffs/gp/gp_algebra.html | 315 +++++- flare/bffs/gp/predict.html | 176 +++- flare/bffs/mgp/mgp.html | 129 +++ flare/bffs/mgp/splines_methods.html | 90 +- flare/bffs/sgp/calculator.html | 24 +- flare/bffs/sgp/sgp.html | 46 + flare/descriptors/env.html | 144 ++- flare/flare.html | 5 +- flare/io/otf_parser.html | 126 ++- flare/io/output.html | 220 ++++- flare/kernels/cutoffs.html | 115 ++- flare/kernels/helper.html | 157 ++- flare/kernels/mc_sephyps.html | 1074 +++++++++++++++++++- flare/kernels/mc_simple.html | 1425 ++++++++++++++++++++++++++- flare/kernels/sc.html | 1156 +++++++++++++++++++++- flare/learners/gp_from_aimd.html | 73 +- flare/learners/learners.html | 5 +- flare/learners/otf.html | 166 +++- flare/learners/utils.html | 151 ++- flare/md/fake.html | 73 ++ flare/md/lammps.html | 156 ++- flare/md/nosehoover.html | 42 +- flare/utils/env_getarray.html | 160 ++- flare/utils/mask_helper.html | 414 +++++++- flare/utils/utils.html | 13 + genindex.html | 1045 +++++++++++++++++++- index.html | 5 +- objects.inv | Bin 16595 -> 23111 bytes py-modindex.html | 269 +++++ searchindex.js | 2 +- 32 files changed, 8129 insertions(+), 57 deletions(-) create mode 100644 py-modindex.html diff --git a/flare/bffs/gp/calculator.html b/flare/bffs/gp/calculator.html index f80b09195..aa5fc9ff1 100644 --- a/flare/bffs/gp/calculator.html +++ b/flare/bffs/gp/calculator.html @@ -102,8 +102,53 @@
-
-

FLARE ASE Calculator

+
+

FLARE ASE Calculator

+

FLARE_Calculator is a calculator compatible with ASE. +You can build up ASE Atoms for your atomic structure, and use get_forces, +get_potential_energy as general ASE Calculators, and use it in +ASE Molecular Dynamics and our ASE OTF training module. For the usage +users can refer to ASE Calculator module +and ASE Calculator tutorial.

+
+
+class flare.bffs.gp.calculator.FLARE_Calculator(*args: Any, **kwargs: Any)
+

Build FLARE as an ASE Calculator, which is compatible with ASE Atoms and +Molecular Dynamics. +:Parameters: * gp_model (GaussianProcess) – FLARE’s Gaussian process object

+
+
    +
  • mgp_model (MappedGaussianProcess) – FLARE’s Mapped Gaussian Process +object. None by default. MGP will only be used if use_mapping +is set to True.

  • +
  • par (Bool) – set to True if parallelize the prediction. False by +default.

  • +
  • use_mapping (Bool) – set to True if use MGP for prediction. False +by default.

  • +
+
+
+
+calculate(atoms=None, properties=None, system_changes=ase.calculators.calculator.all_changes)
+
+
Calculate properties including: energy, local energies, forces,

stress, uncertainties.

+
+
+
+
Parameters
+

atoms (FLARE_Atoms) – FLARE_Atoms object

+
+
+
+ +
+
+implemented_properties: List[str] = ['energy', 'forces', 'stress', 'stds']
+

Properties calculator can handle (energy, forces, …)

+
+ +
+
diff --git a/flare/bffs/gp/gp.html b/flare/bffs/gp/gp.html index 3ccad79a6..4e41ce47c 100644 --- a/flare/bffs/gp/gp.html +++ b/flare/bffs/gp/gp.html @@ -110,6 +110,367 @@

Gaussian Process Force FieldsFLARE ASE Calculator

+
+
+class flare.bffs.gp.gp.GaussianProcess(kernels: List[str] = None, component: str = 'mc', hyps: ndarray = None, cutoffs: dict = None, hyps_mask: dict = None, hyp_labels: List = None, opt_algorithm: str = 'L-BFGS-B', maxiter: int = 10, parallel: bool = False, per_atom_par: bool = True, n_cpus: int = 1, n_sample: int = 100, output: Output = None, name='default_gp', energy_noise: float = 0.01, **kwargs)
+

Gaussian process force field. Implementation is based on Algorithm 2.1 +(pg. 19) of “Gaussian Processes for Machine Learning” by Rasmussen and +Williams.

+

Methods within GaussianProcess allow you to make predictions on +AtomicEnvironment objects (see env.py) generated from +FLARE FLARE_Atoms (see ase/atoms.py), and after data points are added, +optimize hyperparameters based on available training data (train method).

+
+
Parameters
+
    +
  • kernels (list, optional) – Determine the type of kernels. Example: +[‘twbody’, ‘threebody’], [‘2’, ‘3’, ‘mb’], [‘2’]. Defaults to [ +‘twboody’, ‘threebody’]

  • +
  • component (str, optional) – Determine single- (“sc”) or multi- +component (“mc”) kernel to use. Defaults to “mc”

  • +
  • hyps (np.ndarray, optional) – Hyperparameters of the GP.

  • +
  • cutoffs (Dict, optional) – Cutoffs of the GP kernel. For simple hyper- +parameter setups, formatted like {“twobody”:7, “threebody”:4.5}, +etc.

  • +
  • hyp_labels (List, optional) – List of hyperparameter labels. Defaults +to None.

  • +
  • opt_algorithm (str, optional) – Hyperparameter optimization algorithm. +Defaults to ‘L-BFGS-B’.

  • +
  • maxiter (int, optional) – Maximum number of iterations of the +hyperparameter optimization algorithm. Defaults to 10.

  • +
  • parallel (bool, optional) – If True, the covariance matrix K of the GP is +computed in parallel. Defaults to False.

  • +
  • n_cpus (int, optional) – Number of cpus used for parallel +calculations. Defaults to 1 (serial)

  • +
  • n_sample (int, optional) – Size of submatrix to use when parallelizing +predictions.

  • +
  • output (Output, optional) – Output object used to dump hyperparameters +during optimization. Defaults to None.

  • +
  • hyps_mask (dict, optional) – hyps_mask can set up which hyper parameter +is used for what interaction. Details see kernels/mc_sephyps.py

  • +
  • name (str, optional) – Name for the GP instance which dictates global +memory access.

  • +
+
+
+
+
+add_one_env(env: AtomicEnvironment, force: Optional[numpy.ndarray] = None, train: bool = False, **kwargs)
+

Add a single local environment to the training set of the GP.

+
+
Parameters
+
    +
  • env (AtomicEnvironment) – Local environment to be added to the +training set of the GP.

  • +
  • force (np.ndarray) – Force on the central atom of the local +environment in the form of a 3-component Numpy array +containing the x, y, and z components.

  • +
  • train (bool) – If True, the GP is trained after the local +environment is added.

  • +
+
+
+
+ +
+
+adjust_cutoffs(new_cutoffs: Optional[Union[list, tuple, numpy.ndarray]] = None, reset_L_alpha=True, train=True, new_hyps_mask=None)
+

Loop through atomic environment objects stored in the training data, +and re-compute cutoffs for each. Useful if you want to gauge the +impact of cutoffs given a certain training set! Unless you know +exactly what you are doing for some development or test purpose, +it is highly suggested that you call set_L_alpha and +re-optimize your hyperparameters afterwards as is default here.

+

A helpful way to update the cutoffs and kernel for an extant +GP is to perform the following commands: +>> hyps_mask = pm.as_dict() +>> hyps = hyps_mask[‘hyps’] +>> cutoffs = hyps_mask[‘cutoffs’] +>> kernels = hyps_mask[‘kernels’] +>> gp_model.update_kernel(kernels, ‘mc’, hyps, cutoffs, hyps_mask)

+
+
Parameters
+
    +
  • reset_L_alpha

  • +
  • train

  • +
  • new_hyps_mask

  • +
  • new_cutoffs

  • +
+
+
Returns
+

+
+
+
+ +
+
+as_dict()
+

Dictionary representation of the GP model.

+
+ +
+
+static backward_arguments(kwargs, new_args={})
+

update the initialize arguments that were renamed

+
+ +
+
+static backward_attributes(dictionary)
+

add new attributes to old instance +or update attribute types

+
+ +
+
+check_L_alpha()
+

Check that the alpha vector is up to date with the training set. If +not, update_L_alpha is called.

+
+ +
+
+check_instantiation()
+

Runs a series of checks to ensure that the user has not supplied +contradictory arguments which will result in undefined behavior +with multiple hyperparameters. +:return:

+
+ +
+
+compute_matrices()
+

When covariance matrix is known, reconstruct other matrices. +Used in re-loading large GPs. +:return:

+
+ +
+
+static from_dict(dictionary)
+

Create GP object from dictionary representation.

+
+ +
+
+static from_file(filename: str, format: str = '')
+

One-line convenience method to load a GP from a file stored using +write_file

+
+
Parameters
+
    +
  • filename (str) – path to GP model

  • +
  • format (str) – json or pickle if format is not in filename

  • +
+
+
Returns
+

+
+
+
+ +
+
+property par
+

Backwards compability attribute +:return:

+
+ +
+
+predict(x_t: AtomicEnvironment, d: int) [<class 'float'>, <class 'float'>]
+

Predict a force component of the central atom of a local environment.

+
+
Parameters
+
    +
  • x_t (AtomicEnvironment) – Input local environment.

  • +
  • d (int) – Force component to be predicted (1 is x, 2 is y, and +3 is z).

  • +
+
+
Returns
+

Mean and epistemic variance of the prediction.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+predict_efs(x_t: AtomicEnvironment)
+

Predict the local energy, forces, and partial stresses of an +atomic environment and their predictive variances.

+
+ +
+
+predict_force_xyz(x_t: AtomicEnvironment)
+

Simple wrapper to predict all three components of a force in one go. +:param x_t: +:return:

+
+ +
+
+predict_local_energy(x_t: AtomicEnvironment) float
+

Predict the local energy of a local environment.

+
+
Parameters
+

x_t (AtomicEnvironment) – Input local environment.

+
+
Returns
+

Local energy predicted by the GP.

+
+
Return type
+

float

+
+
+
+ +
+
+predict_local_energy_and_var(x_t: AtomicEnvironment)
+

Predict the local energy of a local environment and its +uncertainty.

+
+
Parameters
+

x_t (AtomicEnvironment) – Input local environment.

+
+
Returns
+

Mean and predictive variance predicted by the GP.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+remove_force_data(indexes: Union[int, List[int]], update_matrices: bool = True) Tuple[List[FLARE_Atoms], List[ndarray]]
+

Remove force components from the model. Convenience function which +deletes individual data points.

+

Matrices should always be updated if you intend to use the GP to make +predictions afterwards. This might be time consuming for large GPs, +so, it is provided as an option, but, only do so with extreme caution. +(Undefined behavior may result if you try to make predictions and/or +add to the training set afterwards).

+

Returns training data which was removed akin to a pop method, in order +of lowest to highest index passed in.

+
+
Parameters
+
    +
  • indexes – Indexes of envs in training data to remove.

  • +
  • update_matrices – If false, will not update the GP’s matrices +afterwards (which can be time consuming for large models). +This should essentially always be true except for niche development +applications.

  • +
+
+
Returns
+

+
+
+
+ +
+
+set_L_alpha()
+

Invert the covariance matrix, setting L (a lower triangular +matrix s.t. L L^T = (K + sig_n^2 I)) and alpha, the inverse +covariance matrix multiplied by the vector of training labels. +The forces and variances are later obtained using alpha.

+
+ +
+
+train(logger_name: Optional[str] = None, custom_bounds=None, grad_tol: float = 0.0001, x_tol: float = 1e-05, line_steps: int = 20, print_progress: bool = False)
+

Train Gaussian Process model on training data. Tunes the +hyperparameters to maximize the likelihood, then computes L and alpha +(related to the covariance matrix of the training set).

+
+
Parameters
+
    +
  • logger (logging.logger) – logger object specifying where to write the +progress of the optimization.

  • +
  • custom_bounds (np.ndarray) – Custom bounds on the hyperparameters.

  • +
  • grad_tol (float) – Tolerance of the hyperparameter gradient that +determines when hyperparameter optimization is terminated.

  • +
  • x_tol (float) – Tolerance on the x values used to decide when +Nelder-Mead hyperparameter optimization is terminated.

  • +
  • line_steps (int) – Maximum number of line steps for L-BFGS +hyperparameter optimization. +:param logger_name: +:param print_progress:

  • +
+
+
+
+ +
+
+property training_statistics: dict
+

Return a dictionary with statistics about the current training data. +Useful for quickly summarizing info about the GP. +:return:

+
+ +
+
+update_L_alpha()
+

Update the GP’s L matrix and alpha vector without recalculating +the entire covariance matrix K.

+
+ +
+
+update_db(struc: FLARE_Atoms, forces: ndarray = None, custom_range: List[int] = (), energy: float = None, stress: ndarray = None)
+

Given a structure and forces, add local environments from the +structure to the training set of the GP. If energy is given, add the +entire structure to the training set.

+
+
Parameters
+
    +
  • struc (FLARE_Atoms) – Input structure. Local environments of atoms +in this structure will be added to the training set of the GP.

  • +
  • forces (np.ndarray) – Forces on atoms in the structure.

  • +
  • custom_range (List[int]) – Indices of atoms whose local +environments will be added to the training set of the GP.

  • +
  • energy (float) – Energy of the structure.

  • +
  • stress (np.ndarray) – Stress tensor of the structure. The stress +tensor components should be given in the following order: +xx, xy, xz, yy, yz, zz.

  • +
+
+
+
+ +
+
+write_model(name: str, format: Optional[str] = None, split_matrix_size_cutoff: int = 5000)
+

Write model in a variety of formats to a file for later re-use. +JSON files are open to visual inspection and are easier to use +across different versions of FLARE or GP implementations. However, +they are larger and loading them in takes longer (by setting up a +new GP from the specifications). Pickled files can be faster to +read & write, and they take up less memory.

+
+
Parameters
+
    +
  • name (str) – Output name.

  • +
  • format (str) – Output format.

  • +
  • split_matrix_size_cutoff (int) – If there are more than this

  • +
  • number of training points in the set, save the matrices seperately.

  • +
+
+
+
+ +
+ diff --git a/flare/bffs/gp/gp_algebra.html b/flare/bffs/gp/gp_algebra.html index 9ce267692..91fa608c2 100644 --- a/flare/bffs/gp/gp_algebra.html +++ b/flare/bffs/gp/gp_algebra.html @@ -102,8 +102,319 @@
-
-

Helper functions for GP

+
+

Helper functions for GP

+
+
+flare.bffs.gp.gp_algebra.efs_energy_vector(name, efs_energy_kernel, x, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Returns covariances between the local eneregy, force components, and +partial stresses of a test environment and the total energy labels in the +training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.efs_force_vector(name, efs_force_kernel, x, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Returns covariances between the local eneregy, force components, and +partial stresses of a test environment and the force labels in the +training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.energy_energy_vector(name, kernel, x, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Get a vector of covariances between the local energy of a test environment +and the total energy labels in the training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.energy_energy_vector_unit(name, s, e, x, kernel, hyps, cutoffs=None, hyps_mask=None, d_1=None)
+

Gets part of the energy/energy vector.

+
+ +
+
+flare.bffs.gp.gp_algebra.energy_force_vector(name, kernel, x, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Get the vector of covariances between the local energy of a test +environment and the force labels in the training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.energy_force_vector_unit(name, s, e, x, kernel, hyps, cutoffs=None, hyps_mask=None, d_1=None)
+

Gets part of the energy/force vector.

+
+ +
+
+flare.bffs.gp.gp_algebra.force_energy_vector(name, kernel, x, d_1, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Get a vector of covariances between a force component of a test environment +and the total energy labels in the training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.force_energy_vector_unit(name, s, e, x, kernel, hyps, cutoffs, hyps_mask, d_1)
+

Gets part of the force/energy vector.

+
+ +
+
+flare.bffs.gp.gp_algebra.force_force_vector(name, kernel, x, d_1, hyps, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

Get a vector of covariances between a force component of a test environment +and the force labels in the training set.

+
+ +
+
+flare.bffs.gp.gp_algebra.force_force_vector_unit(name, s, e, x, kernel, hyps, cutoffs, hyps_mask, d_1)
+

Gets part of the force/force vector.

+
+ +
+
+flare.bffs.gp.gp_algebra.get_distance_mat_pack(hyps: numpy.ndarray, name: str, s1: int, e1: int, s2: int, e2: int, same: bool, kernel, cutoffs, hyps_mask)
+

Compute covariance matrix element between set1 and set2 +:param hyps: list of hyper-parameters +:param name: name of the gp instance. +:param same: whether the row and column are the same +:param kernel: function object of the kernel +:param cutoffs: The cutoff values used for the atomic environments +:type cutoffs: list of 2 float numbers +:param hyps_mask: dictionary used for multi-group hyperparmeters +:return: covariance matrix

+
+ +
+
+flare.bffs.gp.gp_algebra.get_force_block(hyps: numpy.ndarray, name: str, kernel, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

parallel version of get_ky_mat +:param hyps: list of hyper-parameters +:param name: name of the gp instance. +:param kernel: function object of the kernel +:param cutoffs: The cutoff values used for the atomic environments +:type cutoffs: list of 2 float numbers +:param hyps_mask: dictionary used for multi-group hyperparmeters

+
+
Returns
+

covariance matrix

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_force_block_pack(hyps: numpy.ndarray, name: str, s1: int, e1: int, s2: int, e2: int, same: bool, kernel, cutoffs, hyps_mask)
+

Compute covariance matrix element between set1 and set2 +:param hyps: list of hyper-parameters +:param name: name of the gp instance. +:param same: whether the row and column are the same +:param kernel: function object of the kernel +:param cutoffs: The cutoff values used for the atomic environments +:type cutoffs: list of 2 float numbers +:param hyps_mask: dictionary used for multi-group hyperparmeters

+
+
Returns
+

covariance matrix

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_ky_and_hyp(hyps: numpy.ndarray, name, kernel_grad, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

parallel version of get_ky_and_hyp

+
+
Parameters
+
    +
  • hyps – list of hyper-parameters

  • +
  • name – name of the gp instance.

  • +
  • kernel_grad – function object of the kernel gradient

  • +
  • cutoffs (list of 2 float numbers) – The cutoff values used for the atomic environments

  • +
  • hyps_mask – dictionary used for multi-group hyperparmeters

  • +
  • n_cpus – number of cpus to use.

  • +
  • n_sample – the size of block for matrix to compute

  • +
+
+
Returns
+

hyp_mat, ky_mat

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_ky_and_hyp_pack(name, s1, e1, s2, e2, same: bool, hyps: numpy.ndarray, kernel_grad, cutoffs=None, hyps_mask=None)
+

computes a block of ky matrix and its derivative to hyper-parameter +If the cpu set up is None, it uses as much as posible cpus

+
+
Parameters
+
    +
  • hyps – list of hyper-parameters

  • +
  • name – name of the gp instance.

  • +
  • kernel_grad – function object of the kernel gradient

  • +
  • cutoffs (list of 2 float numbers) – The cutoff values used for the atomic environments

  • +
  • hyps_mask – dictionary used for multi-group hyperparmeters

  • +
+
+
Returns
+

hyp_mat, ky_mat

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_like_from_mats(ky_mat, l_mat, alpha, name)
+

compute the likelihood from the covariance matrix

+
+
Parameters
+

ky_mat – the covariance matrix

+
+
Returns
+

float, likelihood

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_like_grad_from_mats(ky_mat, hyp_mat, name)
+

compute the gradient of likelihood to hyper-parameters +from covariance matrix and its gradient

+
+
Parameters
+
    +
  • ky_mat (np.array) – covariance matrix

  • +
  • hyp_mat (np.array) – dky/d(hyper parameter) matrix

  • +
  • name – name of the gp instance.

  • +
+
+
Returns
+

float, list. the likelihood and its gradients

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_neg_like(hyps: numpy.ndarray, name: str, force_kernel, logger_name=None, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

compute the log likelihood and its gradients +:param hyps: list of hyper-parameters +:type hyps: np.ndarray +:param name: name of the gp instance. +:param kernel_grad: function object of the kernel gradient +:param output: Output object for dumping every hyper-parameter

+
+

sets computed

+
+
+
Parameters
+
    +
  • cutoffs (list of 2 float numbers) – The cutoff values used for the atomic environments

  • +
  • hyps_mask – dictionary used for multi-group hyperparmeters

  • +
  • n_cpus – number of cpus to use.

  • +
  • n_sample – the size of block for matrix to compute

  • +
+
+
Returns
+

float, np.array

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.get_neg_like_grad(hyps: numpy.ndarray, name: str, kernel_grad, logger_name: Optional[str] = None, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

compute the log likelihood and its gradients

+
+
Parameters
+
    +
  • hyps (np.ndarray) – list of hyper-parameters

  • +
  • name – name of the gp instance.

  • +
  • kernel_grad – function object of the kernel gradient

  • +
  • logger_name (str) – name of logger object for dumping every hyper-parameter +sets computed

  • +
  • cutoffs (list of 2 float numbers) – The cutoff values used for the atomic environments

  • +
  • hyps_mask – dictionary used for multi-group hyperparmeters

  • +
  • n_cpus – number of cpus to use.

  • +
  • n_sample – the size of block for matrix to compute

  • +
+
+
Returns
+

float, np.array

+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.kernel_distance_mat(hyps: numpy.ndarray, name: str, kernel, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
+

parallel version of get_ky_mat +:param hyps: list of hyper-parameters +:param name: name of the gp instance. +:param kernel: function object of the kernel +:param cutoffs: The cutoff values used for the atomic environments +:type cutoffs: list of 2 float numbers +:param hyps_mask: dictionary used for multi-group hyperparmeters +:return: covariance matrix

+
+ +
+
+flare.bffs.gp.gp_algebra.obtain_noise_len(hyps, hyps_mask)
+

obtain the noise parameter from hyps and mask

+
+ +
+
+flare.bffs.gp.gp_algebra.partition_force_energy_block(n_sample: int, size1: int, size2: int, n_cpus: int)
+

Special partition method for the force/energy block. Because the number +of environments in a structure can vary, we only split up the environment +list, which has length size1.

+

Note that two sizes need to be specified: the size of the envionment +list and the size of the structure list.

+
+
Parameters
+
    +
  • n_sample (int) – Number of environments per processor.

  • +
  • size1 (int) – Size of the environment list.

  • +
  • size2 (int) – Size of the structure list.

  • +
  • n_cpus (int) – Number of cpus.

  • +
+
+
+
+ +
+
+flare.bffs.gp.gp_algebra.partition_matrix(n_sample, size, n_cpus)
+

partition the training data for matrix calculation +the number of blocks are close to n_cpus +since mp.Process does not allow to change the thread number

+
+ +
+
+flare.bffs.gp.gp_algebra.partition_matrix_custom(n_sample: int, start1, end1, start2, end2, n_cpus)
+

Partition a specified portion of a matrix.

+
+ +
+
+flare.bffs.gp.gp_algebra.partition_vector(n_sample, size, n_cpus)
+

partition the training data for vector calculation +the number of blocks are the same as n_cpus +since mp.Process does not allow to change the thread number

+
+ +
+
+flare.bffs.gp.gp_algebra.queue_wrapper(result_queue, wid, func, args)
+

wrapper function for multiprocessing queue

+
+
diff --git a/flare/bffs/gp/predict.html b/flare/bffs/gp/predict.html index f69283467..cf450521d 100644 --- a/flare/bffs/gp/predict.html +++ b/flare/bffs/gp/predict.html @@ -102,8 +102,180 @@
-
-

Predict

+
+

Predict

+

Helper functions which obtain forces and energies +corresponding to atoms in structures. These functions automatically +cast atoms into their respective atomic environments.

+
+
+flare.bffs.gp.predict.predict_on_atom(param: Tuple[FLARE_Atoms, int, GaussianProcess])
+

Return the forces/std. dev. uncertainty associated with an individual atom +in a structure, without necessarily having cast it to a chemical +environment. In order to work with other functions, +all arguments are passed in as a tuple.

+
+
Parameters
+

param (Tuple(FLARE_Atoms, integer, GaussianProcess)) – tuple of FLARE FLARE_Atoms, atom index, and Gaussian Process +object

+
+
Returns
+

3-element force array and associated uncertainties

+
+
Return type
+

(np.ndarray, np.ndarray)

+
+
+
+ +
+
+flare.bffs.gp.predict.predict_on_atom_efs(param)
+

Predict the local energy, forces, and partial stresses and predictive +variances of a chemical environment.

+
+ +
+
+flare.bffs.gp.predict.predict_on_atom_en(param: ~typing.Tuple[~flare.atoms.FLARE_Atoms, int, ~flare.bffs.gp.gp.GaussianProcess]) -> ('np.ndarray', 'np.ndarray', <class 'float'>)
+

Return the forces/std. dev. uncertainty / energy associated with an +individual atom in a structure, without necessarily having cast it to a +chemical environment. In order to work with other functions, +all arguments are passed in as a tuple.

+
+
Parameters
+

param (Tuple(FLARE_Atoms, integer, GaussianProcess)) – tuple of FLARE FLARE_Atoms, atom index, and Gaussian Process +object

+
+
Returns
+

3-element force array, associated uncertainties, and local energy

+
+
Return type
+

(np.ndarray, np.ndarray, float)

+
+
+
+ +
+
+flare.bffs.gp.predict.predict_on_atom_en_std(param)
+

Predict local energy and predictive std of a chemical environment.

+
+ +
+
+flare.bffs.gp.predict.predict_on_structure(structure: FLARE_Atoms, gp: GaussianProcess, n_cpus: Optional[int] = None, write_to_structure: bool = True, selective_atoms: Optional[List[int]] = None, skipped_atom_value=0)
+

Return the forces/std. dev. uncertainty associated with each +individual atom in a structure. Forces are stored directly to the +structure and are also returned.

+
+
Parameters
+
    +
  • structure – FLARE structure to obtain forces for, with N atoms

  • +
  • gp – Gaussian Process model

  • +
  • write_to_structure – Write results to structure’s forces, +std attributes

  • +
  • selective_atoms – Only predict on these atoms; e.g. [0,1,2] will +only predict and return for those atoms

  • +
  • skipped_atom_value – What value to use for atoms that are skipped. +Defaults to 0 but other options could be e.g. NaN. Will NOT +write this to the structure if write_to_structure is True.

  • +
+
+
Returns
+

N x 3 numpy array of foces, Nx3 numpy array of uncertainties

+
+
Return type
+

(np.ndarray, np.ndarray)

+
+
+
+ +
+
+flare.bffs.gp.predict.predict_on_structure_en(structure: FLARE_Atoms, gp: GaussianProcess, n_cpus: Optional[int] = None, write_to_structure: bool = True, selective_atoms: Optional[List[int]] = None, skipped_atom_value=0)
+

Return the forces/std. dev. uncertainty / local energy associated with each +individual atom in a structure. Forces are stored directly to the +structure and are also returned.

+
+
Parameters
+
    +
  • structure – FLARE structure to obtain forces for, with N atoms

  • +
  • gp – Gaussian Process model

  • +
  • n_cpus – Dummy parameter passed as an argument to allow for +flexibility when the callable may or may not be parallelized

  • +
+
+
Returns
+

N x 3 array of forces, N x 3 array of uncertainties, +N-length array of energies

+
+
Return type
+

(np.ndarray, np.ndarray, np.ndarray)

+
+
+
+ +
+
+flare.bffs.gp.predict.predict_on_structure_mgp(structure: FLARE_Atoms, mgp: MappedGaussianProcess, output=None, output_name=None, n_cpus: Optional[int] = None, write_to_structure: bool = True, selective_atoms: Optional[List[int]] = None, skipped_atom_value: Union[float, int] = 0, energy: bool = False) Union[Tuple[numpy.ndarray, numpy.ndarray, float], Tuple[numpy.ndarray, numpy.ndarray]]
+

Assign forces to structure based on an mgp

+
+ +
+
+flare.bffs.gp.predict.predict_on_structure_par(structure: FLARE_Atoms, gp: GaussianProcess, n_cpus: Optional[int] = None, write_to_structure: bool = True, selective_atoms: Optional[List[int]] = None, skipped_atom_value=0)
+

Return the forces/std. dev. uncertainty associated with each +individual atom in a structure. Forces are stored directly to the +structure and are also returned.

+
+
Parameters
+
    +
  • structure – FLARE structure to obtain forces for, with N atoms

  • +
  • gp – Gaussian Process model

  • +
  • n_cpus – Number of cores to parallelize over

  • +
  • write_to_structure – Write results to structure’s forces, +std attributes

  • +
  • selective_atoms – Only predict on these atoms; e.g. [0,1,2] will +only predict and return for those atoms

  • +
  • skipped_atom_value – What value to use for atoms that are skipped. +Defaults to 0 but other options could be e.g. NaN. Will NOT +write this to the structure if write_to_structure is True.

  • +
+
+
Returns
+

N x 3 array of forces, N x 3 array of uncertainties

+
+
Return type
+

(np.ndarray, np.ndarray)

+
+
+
+ +
+
+flare.bffs.gp.predict.predict_on_structure_par_en(structure: FLARE_Atoms, gp: GaussianProcess, n_cpus: Optional[int] = None, write_to_structure: bool = True, selective_atoms: Optional[List[int]] = None, skipped_atom_value=0)
+

Return the forces/std. dev. uncertainty / local energy associated with each +individual atom in a structure, parallelized over atoms. Forces are +stored directly to the structure and are also returned.

+
+
Parameters
+
    +
  • structure – FLARE structure to obtain forces for, with N atoms

  • +
  • gp – Gaussian Process model

  • +
  • n_cpus – Number of cores to parallelize over

  • +
+
+
Returns
+

N x 3 array of forces, N x 3 array of uncertainties, +N-length array of energies

+
+
Return type
+

(np.ndarray, np.ndarray, np.ndarray)

+
+
+
+
diff --git a/flare/bffs/mgp/mgp.html b/flare/bffs/mgp/mgp.html index a0e66006a..bb6f6901a 100644 --- a/flare/bffs/mgp/mgp.html +++ b/flare/bffs/mgp/mgp.html @@ -113,6 +113,135 @@

Mapped Gaussian Process

+

MappedGaussianProcess uses splines to build up interpolationfunction of the low-dimensional decomposition of Gaussian Process, with little loss of accuracy. Refer to Xie et al., Vandermause et al., Glielmo et al.

+
+
+class flare.bffs.mgp.mgp.MappedGaussianProcess(grid_params: dict, unique_species: list = [], GP: Optional[GaussianProcess] = None, var_map: Optional[str] = None, container_only: bool = True, lmp_file_name: str = 'lmp', n_cpus: Optional[int] = None, n_sample: int = 10)
+

Build Mapped Gaussian Process (MGP) +and automatically save coefficients for LAMMPS pair style.

+
+
Parameters
+
    +
  • grid_params (dict) – Parameters for the mapping itself, such as +grid size of spline fit, etc. As described below.

  • +
  • unique_species (dict) – List of all the (unique) species included during +the training that need to be mapped

  • +
  • GP (GaussianProcess) – None or a GaussianProcess object. If a GP is input, +and container_only is False, automatically build a mapping corresponding +to the GaussianProcess.

  • +
  • var_map (str) – if None: only build mapping for mean (force). If ‘pca’, then +use PCA to map the variance, based on grid_params[‘xxbody’][‘svd_rank’]. +If ‘simple’, then only map the diagonal of covariance, and predict the +upper bound of variance. The ‘pca’ mode is much heavier in terms of +memory, but its prediction is much closer to GP variance.

  • +
  • container_only (bool) – if True: only build splines container +(with no coefficients); if False: Attempt to build map immediately

  • +
  • lmp_file_name (str) – LAMMPS coefficient file name

  • +
  • n_cpus (int) – Default None. Set to the number of cores needed for +parallelization. Used in the construction of the map.

  • +
  • n_sample (int) – Default 10. The batch size for building map. Not used now.

  • +
+
+
+

Examples:

+
>>> # build 2 + 3 body map
+>>> grid_params = {'twobody': {'grid_num': [64]},
+...                'threebody': {'grid_num': [64, 64, 64]}}
+
+
+

For grid_params, the following keys and values are allowed

+
+
Parameters
+
    +
  • ‘twobody’ (dict, optional) – if 2-body is present, set as a dictionary +of parameters for 2-body mapping. Parameters see below.

  • +
  • ‘threebody’ (dict, optional) – if 3-body is present, set as a dictionary +of parameters for 3-body mapping. Parameters see below.

  • +
  • ‘load_grid’ (str, optional) – Default None. the path to the directory +where the previously generated grids (grid_*.npy) are stored. +If no path is specified, MGP will construct grids from scratch.

  • +
  • ‘lower_bound_relax’ (float, optional) – Default 0.1. if ‘lower_bound’ is +set to ‘auto’ this value will be used as a relaxation of lower +bound. (see below the description of ‘lower_bound’)

  • +
+
+
+

For two/three body parameter dictionary, the following keys and values are allowed

+
+
Parameters
+
    +
  • ‘grid_num’ (list) – a list of integers, the number of grid points for +interpolation. The larger the number, the better the approximation +of MGP is compared with GP.

  • +
  • ‘lower_bound’ (str or list, optional) – Default ‘auto’, the lower bound +of the spline interpolation will be searched. First, search the +training set of GP and find the minimal interatomic distance r_min. +Then, the lower_bound = r_min - lower_bound_relax. The user +can set their own lower_bound, of the same shape as ‘grid_num’. +E.g. for threebody, the customized lower bound can be set as +[1.2, 1.2, 1.2].

  • +
  • ‘upper_bound’ (str or list, optional) – Default ‘auto’, the upper bound +of the spline interpolation will be the cutoffs of GP. The user +can set their own upper_bound, of the same shape as ‘grid_num’. +E.g. for threebody, the customized lower bound can be set as +[3.5, 3.5, 3.5].

  • +
  • ‘svd_rank’ (int, optional) – Default ‘auto’. If the variance mapping is +needed, it is set as the rank of the mapping. ‘auto’ uses full +rank, which is the smaller one between the total number of grid +points and training set size. i.e. +full_rank = min(np.prod(grid_num), 3 * N_train)

  • +
+
+
+
+
+as_dict() dict
+

Dictionary representation of the MGP model.

+
+ +
+
+static from_dict(dictionary: dict) MappedGaussianProcess
+

Create MGP object from dictionary representation.

+
+ +
+
+predict(atom_env: ~flare.descriptors.env.AtomicEnvironment) -> ('ndarray', 'ndarray', 'ndarray', <class 'float'>)
+

predict force, variance, stress and local energy for given +atomic environment

+
+
Parameters
+

atom_env – atomic environment (with a center atom and its neighbors)

+
+
Returns
+

3d array of atomic force +variance: 3d array of the predictive variance +stress: 6d array of the virial stress +energy: the local energy (atomic energy)

+
+
Return type
+

force

+
+
+
+ +
+
+write_lmp_file(lammps_name: str, write_var: bool = False)
+

write the coefficients to a file that can be used by lammps pair style

+
+ +
+
+write_model(name: str, format: str = 'json')
+

Write everything necessary to re-load and re-use the model +:param model_name: +:return:

+
+ +
+
diff --git a/flare/bffs/mgp/splines_methods.html b/flare/bffs/mgp/splines_methods.html index 1a14a8ebc..c0bb6011c 100644 --- a/flare/bffs/mgp/splines_methods.html +++ b/flare/bffs/mgp/splines_methods.html @@ -101,8 +101,94 @@
-
-

Splines Methods

+
+

Splines Methods

+

Cubic spline functions used for interpolation.

+
+
+class flare.bffs.mgp.splines_methods.CubicSpline(a, b, orders, values=None)
+

Forked from Github repository: https://github.com/EconForge/interpolation.py. High-level API for cubic splines. Class representing a cubic spline interpolator on a regular cartesian grid.

+

Creates a cubic spline interpolator on a regular cartesian grid.

+
+
Parameters
+
    +
  • a (numpy array of size d (float)) – Lower bounds of the cartesian grid.

  • +
  • b (numpy array of size d (float)) – Upper bounds of the cartesian grid.

  • +
  • orders (numpy array of size d (int)) – Number of nodes along each dimension (=(n1,…,nd) )

  • +
+
+
Other Parameters
+

values (numpy array (float)) – (optional, (n1 x … x nd) array). Values on the nodes of the function to interpolate.

+
+
+
+
+property grid
+

Cartesian enumeration of all nodes.

+
+ +
+
+interpolate(points, values=None, with_derivatives=False)
+

Interpolate spline at a list of points.

+
+
Parameters
+
    +
  • points – (array-like) list of point where the spline is evaluated.

  • +
  • values – (optional) container for inplace computation.

  • +
+
+
Return values
+

(array-like) list of point where the spline is evaluated.

+
+
+
+ +
+
+set_values(values)
+

Set values on the nodes for the function to interpolate.

+
+ +
+ +
+
+class flare.bffs.mgp.splines_methods.PCASplines(l_bounds, u_bounds, orders, svd_rank)
+

Build splines for PCA decomposition, mainly used for the mapping of the variance

+
+
Parameters
+
    +
  • l_bounds (numpy array) – lower bound for the interpolation. E.g. 1-d for two-body, 3-d for three-body.

  • +
  • u_bounds (numpy array) – upper bound for the interpolation.

  • +
  • orders (numpy array) – grid numbers in each dimension. E.g, 1-d for two-body, 3-d for three-body, should be positive integers.

  • +
  • svd_rank (int) – rank for decomposition of variance matrix, also equal to the number of mappings constructed for mapping variance. For two-body svd_rank<=min(grid_num, train_size*3), for three-body svd_rank<=min(grid_num_in_cube, train_size*3)

  • +
+
+
+
+ +
+
+flare.bffs.mgp.splines_methods.vec_eval_cubic_spline(a, b, orders, coefs, points, values=None)
+

Forked from Github repository: https://github.com/EconForge/interpolation.py. Evaluates a cubic spline at many points

+
+
Parameters
+
    +
  • a (numpy array of size d (float)) – Lower bounds of the cartesian grid.

  • +
  • b (numpy array of size d (float)) – Upper bounds of the cartesian grid.

  • +
  • orders (numpy array of size d (int)) – Number of nodes along each dimension (=(n1,…,nd) )

  • +
  • coefs (array of dimension d, and size (n1+2, ..., nd+2)) – Filtered coefficients.

  • +
  • point (array of size N x d) – List of points where the splines must be interpolated.

  • +
  • values (array of size N) – (optional) If not None, contains the result.

  • +
+
+
Return value
+

Interpolated values. values[i] contains spline evaluated at point points[i,:].

+
+
+
+
diff --git a/flare/bffs/sgp/calculator.html b/flare/bffs/sgp/calculator.html index 0668860c6..546342552 100644 --- a/flare/bffs/sgp/calculator.html +++ b/flare/bffs/sgp/calculator.html @@ -100,8 +100,28 @@
-
-

ASE Calculator of Sparse GP

+
+

ASE Calculator of Sparse GP

+
+
+class flare.bffs.sgp.calculator.SGP_Calculator(sgp_model, use_mapping=False)
+
+
+calculate(atoms=None, properties=None, system_changes=['positions', 'numbers', 'cell', 'pbc', 'initial_charges', 'initial_magmoms'])
+
+
Calculate properties including: energy, local energies, forces,

stress, uncertainties.

+
+
+
+ +
+
+implemented_properties: List[str] = ['energy', 'forces', 'stress', 'stds']
+

Properties calculator can handle (energy, forces, …)

+
+ +
+
diff --git a/flare/bffs/sgp/sgp.html b/flare/bffs/sgp/sgp.html index ff3a6b21e..6dc0f4913 100644 --- a/flare/bffs/sgp/sgp.html +++ b/flare/bffs/sgp/sgp.html @@ -106,6 +106,52 @@

Sparse Gaussian Process Force FieldsASE Calculator of Sparse GP

+
+
+class flare.bffs.sgp.sparse_gp.SGP_Wrapper(kernels: List, descriptor_calculators: List, cutoff: float, sigma_e: float, sigma_f: float, sigma_s: float, species_map: dict, variance_type: str = 'SOR', single_atom_energies: Optional[dict] = None, energy_training=True, force_training=True, stress_training=True, max_iterations=10, opt_method='BFGS', bounds=None)
+

Wrapper class used to make the C++ sparse GP object compatible with +OTF. Methods and properties are designed to mirror the GP class.

+
+
+static from_dict(in_dict)
+

Need an initialized GP

+
+ +
+
+write_model(name: str)
+

Write to .json file

+
+ +
+ +
+
+flare.bffs.sgp.sparse_gp.compute_negative_likelihood(hyperparameters, sparse_gp, print_vals=False)
+

Compute the negative log likelihood and gradient with respect to the +hyperparameters.

+
+ +
+
+flare.bffs.sgp.sparse_gp.compute_negative_likelihood_grad(hyperparameters, sparse_gp, print_vals=False)
+

Compute the negative log likelihood and gradient with respect to the +hyperparameters.

+
+ +
+
+flare.bffs.sgp.sparse_gp.compute_negative_likelihood_grad_stable(hyperparameters, sparse_gp, precomputed=False)
+

Compute the negative log likelihood and gradient with respect to the +hyperparameters.

+
+ +
+
+flare.bffs.sgp.sparse_gp.optimize_hyperparameters(sparse_gp, display_results=False, gradient_tolerance=0.0001, max_iterations=10, bounds=None, method='BFGS')
+

Optimize the hyperparameters of a sparse GP model.

+
+
diff --git a/flare/descriptors/env.html b/flare/descriptors/env.html index 0d1997b33..6c5d3b22b 100644 --- a/flare/descriptors/env.html +++ b/flare/descriptors/env.html @@ -94,8 +94,148 @@
-
-

Atomic Environments

+
+

Atomic Environments

+

The AtomicEnvironment object stores information about the local +environment of an atom. AtomicEnvironment objects are inputs to the +2-, 3-, and 2+3-body kernels.

+
+
+class flare.descriptors.env.AtomicEnvironment(structure: FLARE_Atoms, atom: int, cutoffs, cutoffs_mask=None)
+

Contains information about the local environment of an atom, +including arrays of pair and triplet distances and the chemical +species of atoms in the environment.

+
+
Parameters
+
    +
  • structure (FLARE_Atoms) – structure of atoms.

  • +
  • atom (int) – Index of the atom in the structure.

  • +
  • cutoffs (np.ndarray) – 2- and 3-body cutoff radii. 2-body if one cutoff is +given, 2+3-body if two are passed.

  • +
  • cutoffs_mask (dict) – a dictionary to store multiple cutoffs if neede +it should be exactly the same as the hyps mask

  • +
+
+
+

The cutoffs_mask allows the user to define multiple cutoffs for different +bonds, triples, and many body interaction. This dictionary should be +consistent with the hyps_mask used in the GuassianProcess object.

+
    +
  • +
    species_mask: 118-long integer array descirbing which elements belong to

    like groups for determining which bond hyperparameters to use. +For instance, [0,0,1,1,0 …] assigns H to group 0, He and +Li to group 1, and Be to group 0 (the 0th register is ignored).

    +
    +
    +
  • +
  • +
    nspecie: Integer, number of different species groups (equal to number of

    unique values in species_mask).

    +
    +
    +
  • +
  • +
    ntwobody: Integer, number of different hyperparameter/cutoff sets to

    associate with different 2-body pairings of atoms in groups defined in +species_mask.

    +
    +
    +
  • +
  • +
    twobody_mask: Array of length nspecie^2, which describes the cutoff to

    associate with different pairings of species types. For example, if +there are atoms of type 0 and 1, then twobody_mask defines which cutoff +to use for parings [0-0, 0-1, 1-0, 1-1]: if we wanted cutoff0 for +0-0 parings and set 1 for 0-1 and 1-1 pairings, then we would make +twobody_mask [0, 1, 1, 1].

    +
    +
    +
  • +
  • +
    twobody_cutoff_list: Array of length ntwobody, which stores the cutoff

    used for different types of bonds defined in twobody_mask

    +
    +
    +
  • +
  • +
    ncut3b: Integer, number of different cutoffs sets to associate

    with different 3-body pariings of atoms in groups defined in +species_mask.

    +
    +
    +
  • +
  • +
    cut3b_mask: Array of length nspecie^2, which describes the cutoff to

    associate with different bond types in triplets. For example, in a +triplet (C, O, H) , there are three cutoffs. Cutoffs for CH bond, CO +bond and OH bond. If C and O are associate with atom group 1 in +species_mask and H are associate with group 0 in species_mask, the +cut3b_mask[1*nspecie+0] determines the C/O-H bond cutoff, and +cut3b_mask[1*nspecie+1] determines the C-O bond cutoff. If we want the +former one to use the 1st cutoff in threebody_cutoff_list and the later +to use the 2nd cutoff in threebody_cutoff_list, the cut3b_mask should +be [0, 0, 0, 1].

    +
    +
    +
  • +
  • +
    threebody_cutoff_list: Array of length ncut3b, which stores the cutoff

    used for different types of bonds in triplets.

    +
    +
    +
  • +
  • +
    nmanybody: Integer, number of different cutoffs set to associate with

    different coordination numbers.

    +
    +
    +
  • +
  • manybody_mask: Similar to twobody_mask and cut3b_mask.

  • +
  • +
    manybody_cutoff_list: Array of length nmanybody, stores the cutoff used

    for different many body terms

    +
    +
    +
  • +
+

Examples can be found at the end of in tests/test_env.py

+
+
+as_dict(include_structure: bool = False)
+

Returns Atomic Environment object as a dictionary for serialization +purposes. Optional to not include the structure to avoid redundant +information. +:return:

+
+ +
+
+as_str() str
+

Returns string dictionary serialization cast as string.

+
+
Returns
+

output of as_dict method cast as string

+
+
Return type
+

str

+
+
+
+ +
+
+static from_dict(dictionary)
+

Loads in atomic environment object from a dictionary which was +serialized by the to_dict method.

+
+
Parameters
+

dictionary – Dictionary describing atomic environment.

+
+
+
+ +
+
+static from_file(file_name: str, format: str = '') Union[flare.env.AtomicEnvironment, List[flare.env.AtomicEnvironment]]
+

Load an atomic environment from a file or a series of atomic environments +:param file_name: +:param format: +:return:

+
+ +
+
diff --git a/flare/flare.html b/flare/flare.html index 8edb9812e..3fbe898b0 100644 --- a/flare/flare.html +++ b/flare/flare.html @@ -114,7 +114,10 @@

Python Code DocumentationBayesian Active Learning diff --git a/flare/io/otf_parser.html b/flare/io/otf_parser.html index c72480078..cfc7f529a 100644 --- a/flare/io/otf_parser.html +++ b/flare/io/otf_parser.html @@ -95,8 +95,130 @@
-
-

OTF Parser

+
+

OTF Parser

+
+
+class flare.io.otf_parser.OtfAnalysis(filename, calculate_energy=False)
+

Parse the OTF log file to get trajectory, training data, +thermostat, and build GP model.

+
+
Parameters
+
    +
  • filename (str) – name of the OTF log file.

  • +
  • calculate_energy (bool) – if the potential energy is computed and +needs to be parsed, then set to True. Default False.

  • +
+
+
+
+
+make_gp(cell=None, call_no=None, hyps=None, init_gp=None, hyp_no=None, **kwargs)
+

Build GP model from the training frames parsed from the log file. +The cell, hyps and gp can be reset with customized values.

+
+
Parameters
+
    +
  • cell (np.ndarray) – Default None to use the cell from the log file. +A customized cell can be input as a 3x3 numpy array.

  • +
  • call_no (int) – Default None to use all the DFT frames as training +data for building GP. If not None, then the frames 0 to call_no +will be added to GP.

  • +
  • hyps (np.ndarray) – Default None to use the hyperparameters from the +log file. Customized hyps can be input as an array.

  • +
  • init_gp (GaussianProcess) – Default to None to use no initial settings +or training data. an initial GP can be used, and then the +frames parsed in the log file will add to the initial GP. Then the +final GP uses the hyps and kernels of init_gp, and consists of +training data from init_gp and the data from the log file. +NOTE: if a log file from restarted OTF is parsed, then an initial +GP needs to be parsed from the prior log file as the init_gp of the +restarted log file.

  • +
  • hyp_no (int) – Default None to use the final optimized hyperparameters to +build GP. If not None, then use the hyps from the `hyp_no`th +optimization step.

  • +
  • kwargs – if a new GP setting is needed without inputing init_gp, the GP +initial args can be input as kwargs.

  • +
+
+
+
+ +
+
+output_md_structures()
+

Returns structure objects corresponding to the MD frames of an OTF run. +:return:

+
+ +
+
+parse_pos_otf(blocks)
+

Exclusively parses MD run information +:param filename: +:return:

+
+ +
+
+to_xyz(xyz_file)
+

Convert OTF trajectory from log file to .xyz file. +:Parameters: xyz_file (str) – the file name of the .xyz file to output

+
+
Returns
+

A list of ASE Atoms objects.

+
+
+
+ +
+ +
+
+flare.io.otf_parser.append_atom_lists(species_list: List[str], position_list: List[ndarray], force_list: List[ndarray], uncertainty_list: List[ndarray], velocity_list: List[ndarray], lines: List[str], index: int, noa: int, dft_call: bool, noh: int) None
+

Update lists containing atom information at each snapshot.

+
+ +
+
+flare.io.otf_parser.extract_gp_info(block, mae_list, maf_list, atoms_list, hyps_list, noh)
+

Exclusively parses DFT run information +:param filename: +:return:

+
+ +
+
+flare.io.otf_parser.parse_frame_line(frame_line)
+

parse a line in otf output. +:param frame_line: frame line to be parsed +:type frame_line: string +:return: species, position, force, uncertainty, and velocity of atom +:rtype: list, np.arrays

+
+ +
+
+flare.io.otf_parser.parse_header_information(lines) dict
+

Get information about the run from the header of the file +:param outfile: +:return:

+
+ +
+
+flare.io.otf_parser.parse_snapshot(lines, index, noa, dft_call, noh)
+

Parses snapshot of otf output file.

+
+ +
+
+flare.io.otf_parser.strip_and_split(line)
+

Helper function which saves a few lines of code elsewhere +:param line: +:return:

+
+
diff --git a/flare/io/output.html b/flare/io/output.html index b2a8b9a6c..2e945c0c1 100644 --- a/flare/io/output.html +++ b/flare/io/output.html @@ -95,8 +95,224 @@
-
-

Output

+
+

Output

+

Class which contains various methods to print the output of different +ways of using FLARE, such as training a GP from an AIMD run, +or running an MD simulation updated on-the-fly.

+
+
+class flare.io.output.Output(basename: str = 'otf_run', verbose: str = 'INFO', print_as_xyz: bool = False, always_flush: bool = False)
+

This is an I/O class that hosts the log files for OTF and Trajectories +class. It is also used in get_neg_like_grad and get_neg_likelihood in +gp_algebra to print intermediate results.

+

It opens and print files with the basename prefix and different +suffixes corresponding to different kinds of output data.

+
+
Parameters
+
    +
  • basename (str, optional) – Base output file name, suffixes will be added

  • +
  • verbose (str, optional) – print level. The same as logging level. It can be +CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET

  • +
  • always_flush – Always write to file instantly

  • +
+
+
+
+
+conclude_run(extra_strings: Optional[List[str]] = None)
+

destruction function that closes all files

+
+ +
+
+open_new_log(filetype: str, suffix: str, verbose='info')
+

Open files. If files with the same +name are exist, they are backed up with a suffix “-bak”.

+
+
Parameters
+
    +
  • filetype – the key name for logging

  • +
  • suffix – the suffix of the file to be opened

  • +
  • verbose – the verbose level for the logger

  • +
+
+
+
+ +
+
+write_gp_dft_comparison(curr_step, frame, start_time, dft_forces, dft_energy, error, local_energies=None, KE=None, mgp=False, cell=None, stress=None)
+

Write the comparison to logfile.

+
+
Parameters
+
    +
  • curr_step – current timestep

  • +
  • frame – FLARE_Atoms object that contains the current GP calculation +results.

  • +
  • start_time – start time for time profiling

  • +
  • dft_forces – list of forces computed by DFT

  • +
  • dft_energy – total energy computed by DFT

  • +
  • error – list of force differences between DFT and GP prediction

  • +
  • local_energies – local atomic energy

  • +
  • KE – total kinetic energy

  • +
  • cell – print the unit cell of the structure

  • +
  • stress – print the stress acting on the cell

  • +
+
+
Returns
+

+
+
+
+ +
+
+write_header(gp_str: str, dt: Optional[float] = None, Nsteps: Optional[int] = None, structure=None, std_tolerance: Optional[Union[float, int]] = None, optional: Optional[dict] = None)
+

TO DO: this should be replace by the string method of GP and OTF, GPFA

+

Write header to the log function. Designed for Trajectory Trainer and +OTF runs and can take flexible input for both.

+
+
Parameters
+
    +
  • gp_str – string representation of the GP

  • +
  • dt – timestep for OTF MD

  • +
  • Nsteps – total number of steps for OTF MD

  • +
  • structure – initial structure

  • +
  • std_tolerance – tolarence for active learning

  • +
  • optional – a dictionary of all the other parameters

  • +
+
+
+
+ +
+
+write_hyps(hyp_labels, hyps, start_time, like, like_grad, name='log', hyps_mask=None)
+

write hyperparameters to logfile

+
+
Parameters
+
    +
  • name

  • +
  • hyp_labels – labels for hyper-parameters. can be None

  • +
  • hyps – list of hyper-parameters

  • +
  • start_time – start time for time profiling

  • +
  • like – likelihood

  • +
  • like_grad – gradient of likelihood

  • +
+
+
Returns
+

+
+
+
+ +
+
+write_md_config(dt, curr_step, structure, temperature, KE, start_time, dft_step, velocities)
+

write md configuration in log file

+
+
Parameters
+
    +
  • dt – timestemp of OTF MD

  • +
  • curr_step – current timestep of OTF MD

  • +
  • structure – atomic structure

  • +
  • temperature – current temperature

  • +
  • KE – current total kinetic energy

  • +
  • local_energies – local energy

  • +
  • start_time – starting time for time profiling

  • +
  • dft_step – # of DFT calls

  • +
  • velocities – list of velocities

  • +
+
+
Returns
+

+
+
+
+ +
+
+write_to_log(logstring: str, name: str = 'log', flush: bool = False)
+

Write any string to logfile

+
+
Parameters
+
    +
  • logstring – the string to write

  • +
  • name – the key name of the file to logger named ‘log’

  • +
  • flush – whether it should be flushed

  • +
+
+
+
+ +
+
+write_xyz_config(curr_step, structure, forces: Optional[numpy.array] = None, stds: Optional[numpy.array] = None, dft_forces: Optional[numpy.array] = None, dft_energy=0, predict_energy=nan, target_atoms=None)
+

write atomic configuration in xyz file

+
+
Parameters
+
    +
  • curr_step – Int, number of frames to note in the comment line

  • +
  • structure – FLARE_Atoms, contain positions and forces

  • +
  • forces – Optional list of forces to xyz file

  • +
  • stds – Optional list of uncertanties to xyz file

  • +
  • dft_forces – Optional second list of forces (e.g. DFT forces)

  • +
+
+
Returns
+

+
+
+
+ +
+ +
+
+flare.io.output.add_file(logger: Logger, filename: str, verbose: str = 'info')
+

set up file handler to the logger with handlers

+
+
Parameters
+
    +
  • logger – the logger

  • +
  • filename (str) – name of the logfile

  • +
  • verbose (str) – verbose level

  • +
+
+
+
+ +
+
+flare.io.output.add_stream(logger: Logger, verbose: str = 'info')
+

set up screen sctream handler to the logger with handlers

+
+
Parameters
+
    +
  • logger – the logger

  • +
  • verbose (str) – verbose level

  • +
+
+
+
+ +
+
+flare.io.output.set_logger(name: str, stream: bool, fileout_name: Optional[str] = None, verbose: str = 'info')
+

set up a logger with handlers

+
+
Parameters
+
    +
  • name (str) – unique name of the logger in logging module

  • +
  • stream (bool) – if True, set up a screen output

  • +
  • fileout_name (str) – name for log file

  • +
  • verbose (str) – verbose level

  • +
+
+
+
+
diff --git a/flare/kernels/cutoffs.html b/flare/kernels/cutoffs.html index 035f410c2..fcfb2b84a 100644 --- a/flare/kernels/cutoffs.html +++ b/flare/kernels/cutoffs.html @@ -98,8 +98,119 @@
-
-

Cutoff Functions

+
+

Cutoff Functions

+

The cutoffs module gives a few different options for smoothly sending the GP +kernel to zero near the boundary of the cutoff sphere.

+
+
+flare.kernels.cutoffs.cosine_cutoff(r_cut: float, ri: float, ci: float, d: float = 1)
+

A cosine cutoff that returns 1 up to r_cut - d, and assigns a cosine +envelope to values of r between r_cut - d and r_cut. Based on Eq. 24 of +Albert P. Bartók and Gábor Csányi. “Gaussian approximation potentials: A +brief tutorial introduction.” International Journal of Quantum Chemistry +115.16 (2015): 1051-1057.

+
+
Parameters
+
    +
  • r_cut (float) – Cutoff value (in angstrom).

  • +
  • ri (float) – Interatomic distance.

  • +
  • ci (float) – Cartesian coordinate divided by the distance.

  • +
+
+
Returns
+

Cutoff value and its derivative.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.cutoffs.cubic_cutoff(r_cut: float, ri: float, ci: float)
+

A cubic cutoff that goes to zero smoothly at the cutoff boundary.

+
+
Parameters
+
    +
  • r_cut (float) – Cutoff value (in angstrom).

  • +
  • ri (float) – Interatomic distance.

  • +
  • ci (float) – Cartesian coordinate divided by the distance.

  • +
+
+
Returns
+

Cutoff value and its derivative.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.cutoffs.hard_cutoff(r_cut: float, ri: float, ci: float)
+

A hard cutoff that assigns a value of 1 to all interatomic distances.

+
+
Parameters
+
    +
  • r_cut (float) – Cutoff value (in angstrom).

  • +
  • ri (float) – Interatomic distance.

  • +
  • ci (float) – Cartesian coordinate divided by the distance.

  • +
+
+
Returns
+

Cutoff value and its derivative.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.cutoffs.quadratic_cutoff(r_cut: float, ri: float, ci: float)
+

A quadratic cutoff that goes to zero smoothly at the cutoff boundary.

+
+
Parameters
+
    +
  • r_cut (float) – Cutoff value (in angstrom).

  • +
  • ri (float) – Interatomic distance.

  • +
  • ci (float) – Cartesian coordinate divided by the distance.

  • +
+
+
Returns
+

Cutoff value and its derivative.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.cutoffs.quadratic_cutoff_bound(r_cut: float, ri: float, ci: float)
+

A quadratic cutoff that goes to zero smoothly at the cutoff boundary.

+
+
Parameters
+
    +
  • r_cut (float) – Cutoff value (in angstrom).

  • +
  • ri (float) – Interatomic distance.

  • +
  • ci (float) – Cartesian coordinate divided by the distance.

  • +
+
+
Returns
+

Cutoff value and its derivative.

+
+
Return type
+

(float, float)

+
+
+
+
diff --git a/flare/kernels/helper.html b/flare/kernels/helper.html index f896c5e38..d58e9d2fd 100644 --- a/flare/kernels/helper.html +++ b/flare/kernels/helper.html @@ -98,8 +98,161 @@
-
-

Helper Functions

+
+

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

+
+
+
+
diff --git a/flare/kernels/mc_sephyps.html b/flare/kernels/mc_sephyps.html index 8df4b6215..032009bc8 100644 --- a/flare/kernels/mc_sephyps.html +++ b/flare/kernels/mc_sephyps.html @@ -98,8 +98,1078 @@
-
-

Multi-element Kernels (Separate Parameters)

+
+

Multi-element Kernels (Separate Parameters)

+

Multicomponent kernels (simple) restrict all signal variance and length scale of hyperparameters +to a single value. The kernels in this module allow you to have different sets of hyperparameters +and cutoffs for different interactions, and have flexible groupings of elements. It also allows +you to do partial hyper-parameter training, keeping some components fixed.

+

To use this set of kernels, we need a hyps_mask dictionary for GaussianProcess, MappedGaussianProcess, +and AtomicEnvironment (if you also set up different cutoffs). A simple example is shown below.

+

Examples

+
>>> from flare.util.parameter_helper import ParameterHelper
+>>> from flare.bffs.gp import GaussianProcess
+
+
+
>>> pm = ParameterHelper(species=['O', 'C', 'H'],
+...                      kernels={'twobody':[['*', '*'], ['O','O']],
+...                               'threebody':[['*', '*', '*'], ['O','O', 'O']]},
+...                      parameters={'twobody0':[1, 0.5, 1], 'twobody1':[2, 0.2, 2],
+...                            'triplet0':[1, 0.5], 'triplet1':[2, 0.2],
+...                            'cutoff_twobody':2, 'cutoff_threebody':1, 'noise': 0.05},
+...                      constraints={'twobody0':[False, True]})
+>>> hyps_mask = pm1.as_dict()
+>>> hyps = hyps_mask.pop('hyps')
+>>> cutoffs = hyps_mask.pop('cutoffs')
+>>> hyp_labels = hyps_mask.pop('hyp_labels')
+>>> kernels = hyps_mask['kernels']
+>>> gp_model = GaussianProcess(kernels=kernels,
+...                            hyps=hyps, cutoffs=cutoffs,
+...                            hyp_labels=hyp_labels,
+...                            parallel=True, per_atom_par=False,
+...                            n_cpus=n_cpus,
+...                            multihyps=True, hyps_mask=hm)
+
+
+

In the example above, Parameters class generates the arrays needed +for these kernels and store all the grouping and mapping information in the +hyps_mask dictionary. It stores following keys and values:

+
    +
  • +
    spec_mask: 118-long integer array descirbing which elements belong to

    like groups for determining which bond hyperparameters to use. For +instance, [0,0,1,1,0 …] assigns H to group 0, He and Li to group 1, +and Be to group 0 (the 0th register is ignored).

    +
    +
    +
  • +
  • +
    nspec: Integer, number of different species groups (equal to number of

    unique values in spec_mask).

    +
    +
    +
  • +
  • +
    nbond: Integer, number of different hyperparameter sets to associate with

    different 2-body pairings of atoms in groups defined in spec_mask.

    +
    +
    +
  • +
  • +
    bond_mask: Array of length nspec^2, which describes the hyperparameter sets to

    associate with different pairings of species types. For example, if there +are atoms of type 0 and 1, then bond_mask defines which hyperparameters +to use for parings [0-0, 0-1, 1-0, 1-1]: if we wanted hyperparameter set 0 for +0-0 parings and set 1 for 0-1 and 1-1 pairings, then we would make +bond_mask [0, 1, 1, 1].

    +
    +
    +
  • +
  • +
    ntriplet: Integer, number of different hyperparameter sets to associate

    with different 3-body pariings of atoms in groups defined in spec_mask.

    +
    +
    +
  • +
  • +
    triplet_mask: Similar to bond mask: Triplet pairings of type 0 and 1 atoms

    would go {0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0, 1-0-1, 1-1-0, 1-1-1}, +and if we wanted hyp. set 0 for triplets with only atoms of type 0 +and hyp. set 1 for all the rest, then the triplet_mask array would +read [0,1,1,1,1,1,1,1]. The user should make sure that the mask has +a permutational symmetry.

    +
    +
    +
  • +
  • +
    cutoff_2b: Array of length nbond, which stores the cutoff used for different

    types of bonds defined in bond_mask

    +
    +
    +
  • +
  • +
    ncut3b: Integer, number of different cutoffs sets to associate

    with different 3-body pariings of atoms in groups defined in spec_mask.

    +
    +
    +
  • +
  • +
    cut3b_mask: Array of length nspec^2, which describes the cutoff to

    associate with different bond types in triplets. For example, in a triplet +(C, O, H) , there are three cutoffs. Cutoffs for CH bond, CO bond and OH bond. +If C and O are associate with atom group 1 in spec_mask and H are associate with +group 0 in spec_mask, the cut3b_mask[1*nspec+0] determines the C/O-H bond cutoff, +and cut3b_mask[1*nspec+1] determines the C-O bond cutoff. If we want the +former one to use the 1st cutoff in cutoff_3b and the later to use the 2nd cutoff +in cutoff_3b, the cut3b_mask should be [0, 0, 0, 1]

    +
    +
    +
  • +
  • +
    cutoff_3b: Array of length ncut3b, which stores the cutoff used for different

    types of bonds in triplets.

    +
    +
    +
  • +
  • +
    nmbInteger, number of different cutoffs set to associate with different coordination

    numbers

    +
    +
    +
  • +
  • mb_mask: similar to bond_mask and cut3b_mask.

  • +
  • cutoff_mb: Array of length nmb, stores the cutoff used for different many body terms

  • +
+

For selective optimization. one can define ‘map’, ‘train_noise’ and ‘original’ +to identify which element to be optimized. All three have to be defined. +train_noise = Bool (True/False), whether the noise parameter can be optimized +original: np.array. Full set of initial values for hyperparmeters +map: np.array, array to map the hyper parameter back to the full set. +map[i]=j means the i-th element in hyps should be the j-th element in +hyps_mask[‘original’]

+

For example, the full set of hyper parmeters +may include [ls21, ls22, sig21, sig22, ls3 +sg3, noise] but suppose you wanted only the set 21 optimized. +The full set of hyperparameters is defined in ‘original’; include all those +you want to leave static, and set initial guesses for those you want to vary. +Have the ‘map’ list contain the indices of the hyperparameters in ‘original’ +that correspond to the hyperparameters you want to vary. +Have a hyps list which contain those which you want to vary. Below, +ls21, ls22 etc… represent floating-point variables which correspond +to the initial guesses / static values. +You would then pass in:

+

hyps = [ls21, sig21] +hyps_mask = { …, ‘train_noise’: False, ‘map’:[0, 2],

+
+

‘original’: [ls21, ls22, sig21, sig22, ls3, sg3, noise]}

+
+

the hyps argument should only contain the values that need to be optimized. +If you want noise to be trained as well include noise as the +final hyperparameter value in hyps.

+
+
+flare.kernels.mc_sephyps.many_body_mc(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

many-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b – dummy

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.many_body_mc_en(env1, env2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

many-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.many_body_mc_force_en(env1, env2, d1, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

many-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the many-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.many_body_mc_grad(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

manybody multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b – dummy

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+manybody kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

3-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/force kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc_en(env1, env2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

3-body multi-element kernel between two local energies

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc_force_en(env1, env2, d1, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

3-body multi-element kernel between a force component and local energies

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc_force_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, sig, ls, r_cut, cutoff_func, nspec, spec_mask, triplet_mask, cut3b_mask)
+

Kernel for 3-body force/energy comparisons.

+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc_grad(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

3-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b – dummy

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond – dummy

  • +
  • bond_mask – dummy

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+manybody kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_sephyps.three_body_mc_grad_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func, nspec, spec_mask, ntriplet, triplet_mask, cut3b_mask)
+

Kernel gradient for 3-body force comparisons.

+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b – dummy

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/force kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_en(env1, env2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2-body multi-element kernel between two local energies

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b – dummy

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, sig, ls, r_cut, cutoff_func, nspec, spec_mask, bond_mask)
+

Multicomponent two-body energy/energy kernel accelerated with +Numba’s njit decorator.

+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_force_en(env1, env2, d1, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2-body multi-element kernel between a force components and local energy

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b – dummy

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • sig2 – dummy

  • +
  • ls2 – dummy

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_force_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, sig, ls, r_cut, cutoff_func, nspec, spec_mask, bond_mask)
+

Multicomponent two-body force/energy kernel accelerated with +Numba’s njit decorator.

+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_grad(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b – dummy

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet – dummy

  • +
  • triplet_mask – dummy

  • +
  • ncut3b – dummy

  • +
  • cut3b_mask – dummy

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 – dummy

  • +
  • ls3 – dummy

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_grad_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, sig, ls, r_cut, cutoff_func, nspec, spec_mask, nbond, bond_mask)
+

Multicomponent two-body force/force kernel gradient accelerated with +Numba’s njit decorator.

+
+ +
+
+flare.kernels.mc_sephyps.two_body_mc_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, sig, ls, r_cut, cutoff_func, nspec, spec_mask, bond_mask)
+

Multicomponent two-body force/force kernel accelerated with Numba’s +njit decorator. +Loops over bonds in two environments and adds to the kernel if bonds are +of the same type.

+
+ +
+
+flare.kernels.mc_sephyps.two_plus_three_body_mc(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/force kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_plus_three_body_mc_grad(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_plus_three_mc_en(env1, env2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3-body multi-element kernel between two local energies

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_plus_three_mc_force_en(env1, env2, d1, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3-body multi-element kernel between force and local energy

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_three_many_body_mc(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3+manybody multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_three_many_body_mc_grad(env1, env2, d1, d2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3+manybody multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+manybody kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_three_many_mc_en(env1, env2, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3+many-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_sephyps.two_three_many_mc_force_en(env1, env2, d1, cutoff_2b, cutoff_3b, cutoff_mb, nspec, spec_mask, nbond, bond_mask, ntriplet, triplet_mask, ncut3b, cut3b_mask, nmb, mb_mask, sig2, ls2, sig3, ls3, sigm, lsm, cutoff_func=numba.njit)
+

2+3+manybody multi-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • cutoff_2b (float, np.ndarray) – cutoff(s) for two-body interaction

  • +
  • cutoff_3b (float, np.ndarray) – cutoff(s) for three-body interaction

  • +
  • cutoff_mb (float, np.ndarray) – cutoff(s) for coordination-based manybody interaction

  • +
  • nspec (int) – number of different species groups

  • +
  • spec_mask (np.ndarray) – 118-long integer array that determines specie group

  • +
  • nbond (int) – number of different hyperparameter sets to associate with two-body pairings

  • +
  • bond_mask (np.ndarray) – nspec^2 long integer array

  • +
  • ntriplet (int) – number of different hyperparameter sets to associate with 3-body pairings

  • +
  • triplet_mask (np.ndarray) – nspec^3 long integer array

  • +
  • ncut3b (int) – number of different 3-body cutoff sets to associate with 3-body pairings

  • +
  • cut3b_mask (np.ndarray) – nspec^2 long integer array

  • +
  • nmb (int) – number of different hyperparameter sets to associate with manybody pairings

  • +
  • mb_mask (np.ndarray) – nspec^2 long integer array

  • +
  • sig2 (np.ndarray) – signal variances associates with two-body term

  • +
  • ls2 (np.ndarray) – length scales associates with two-body term

  • +
  • sig3 (np.ndarray) – signal variances associates with three-body term

  • +
  • ls3 (np.ndarray) – length scales associates with three-body term

  • +
  • sigm (np.ndarray) – signal variances associates with manybody term

  • +
  • lsm (np.ndarray) – length scales associates with manybody term

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +

Implementation of three-body kernels using different cutoffs.

+

The kernels are slightly slower.

+
+
+flare.kernels.mc_3b_sepcut.three_body_mc_force_en_sepcut_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, sig, ls, r_cut, cutoff_func, nspec, spec_mask, triplet_mask, cut3b_mask)
+

Kernel for 3-body force/energy comparisons.

+
+ +
+
+flare.kernels.mc_3b_sepcut.three_body_mc_grad_sepcut_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func, nspec, spec_mask, ntriplet, triplet_mask, cut3b_mask)
+

Kernel gradient for 3-body force comparisons.

+
+ +

Implementation of three-body kernels using different cutoffs.

+

The kernels are slightly slower.

+
+
+flare.kernels.mc_mb_sepcut.many_body_mc_en_sepcut_jit(q_array_1, q_array_2, c1, c2, species1, species2, sig, ls, nspec, spec_mask, mb_mask)
+

many-body many-element kernel between energy components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_mb_sepcut.many_body_mc_force_en_sepcut_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_grads_1, c1, c2, etypes1, species1, species2, d1, sig, ls, nspec, spec_mask, mb_mask)
+

many-body many-element kernel between force and energy components accelerated +with Numba.

+
+
Parameters
+
    +
  • To be complete

  • +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_mb_sepcut.many_body_mc_grad_sepcut_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, c1, c2, etypes1, etypes2, species1, species2, d1, d2, sig, ls, nspec, spec_mask, nmb, mb_mask)
+

gradient of many-body multi-element kernel between two force components +w.r.t. the hyperparameters, accelerated with Numba.

+
+
Parameters
+
    +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
+
+
Returns
+

Value of the many-body kernel and its gradient w.r.t. sig and ls

+
+
Return type
+

array

+
+
+
+ +
+
+flare.kernels.mc_mb_sepcut.many_body_mc_sepcut_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, c1, c2, etypes1, etypes2, species1, species2, d1, d2, sig, ls, nspec, spec_mask, mb_mask)
+

many-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+
diff --git a/flare/kernels/mc_simple.html b/flare/kernels/mc_simple.html index a3418fd7f..388b6b16b 100644 --- a/flare/kernels/mc_simple.html +++ b/flare/kernels/mc_simple.html @@ -98,8 +98,1429 @@
-
-

Multi-element Kernels (simple)

+
+

Multi-element Kernels (simple)

+

Multi-element 2-, 3-, and 2+3-body kernels that restrict all signal +variance hyperparameters to a single value.

+
+
+flare.kernels.mc_simple.many_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

many-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

many-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_en_jit(q_array_1, q_array_2, c1, c2, species1, species2, sig, ls)
+

many-body many-element kernel between energy components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_force_en(env1, env2, d1, hyps, cutoffs, cutoff_func=numba.njit)
+

many-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the many-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_force_en_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_grads_1, c1, c2, etypes1, species1, species2, d1, sig, ls)
+

many-body many-element kernel between force and energy components accelerated +with Numba.

+
+
Parameters
+
    +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

gradient manybody-body multi-element kernel between two force +components.

+
+ +
+
+flare.kernels.mc_simple.many_body_mc_grad_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, c1, c2, etypes1, etypes2, species1, species2, d1, d2, sig, ls)
+

gradient of many-body multi-element kernel between two force components +w.r.t. the hyperparameters, accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • neigh_dists_1 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the first local environment.

  • +
  • neigh_dists_2 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the second local environment.

  • +
  • num_neigh_1 (np.ndarray) – number of neighbours of each atom in the +first local environment

  • +
  • num_neigh_2 (np.ndarray) – number of neighbours of each atom in the +second local environment

  • +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • etypes_neigh_1 (np.ndarray) – atomic species of atoms in the +neighbourhoods of atoms in env 1

  • +
  • etypes_neigh_2 (np.ndarray) – atomic species of atoms in the +neighbourhoods of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel and its gradient w.r.t. sig and ls

+
+
Return type
+

array

+
+
+
+ +
+
+flare.kernels.mc_simple.many_body_mc_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, c1, c2, etypes1, etypes2, species1, species2, d1, d2, sig, ls)
+

many-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • neigh_dists_1 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the first local environment.

  • +
  • neigh_dists_2 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the second local environment.

  • +
  • num_neigh_1 (np.ndarray) – number of neighbours of each atom in the +first local environment

  • +
  • num_neigh_2 (np.ndarray) – number of neighbours of each atom in the +second local environment

  • +
  • c1 (int) – atomic species of the central atom in env 1

  • +
  • c2 (int) – atomic species of the central atom in env 2

  • +
  • etypes1 (np.ndarray) – atomic species of atoms in env 1

  • +
  • etypes2 (np.ndarray) – atomic species of atoms in env 2

  • +
  • etypes_neigh_1 (np.ndarray) – atomic species of atoms in the +neighbourhoods of atoms in env 1

  • +
  • etypes_neigh_2 (np.ndarray) – atomic species of atoms in the +neighbourhoods of atoms in env 2

  • +
  • species1 (np.ndarray) – all the atomic species present in trajectory 1

  • +
  • species2 (np.ndarray) – all the atomic species present in trajectory 2

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

3-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

3-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between two local energies accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body local energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

3-body multi-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_force_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between a force component and a local +energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit)
+

3-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_grad_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_mc_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_se_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between a force component and a local +energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_sf_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.three_body_ss_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, sig, ls, r_cut, cutoff_func)
+

3-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between two local energies accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body local energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2-body multi-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_force_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between a force component and a local +energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_grad(env1: ~flare.descriptors.env.AtomicEnvironment, env2: ~flare.descriptors.env.AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: ~typing.Callable = numba.njit) -> (<class 'float'>, 'ndarray')
+

2-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_grad_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • d2 (int) – Force component of the second environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • d2 (int) – Force component of the second environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_stress_en_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between a partial stress component and a +local energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – First stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • d2 (int) – Second stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body partial-stress/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_stress_force_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, d3, sig, ls, r_cut, cutoff_func)
+

2-body multi-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – First stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • d2 (int) – Second stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • d3 (int) – Force component of the second environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_body_mc_stress_stress_jit(bond_array_1, c1, etypes1, bond_array_2, c2, etypes2, d1, d2, d3, d4, sig, ls, r_cut, cutoff_func)
+
+
2-body multi-element kernel between two partial stress components

accelerated with Numba.

+
+
+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • c1 (int) – Species of the central atom of the first local environment.

  • +
  • etypes1 (np.ndarray) – Species of atoms in the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • c2 (int) – Species of the central atom of the second local environment.

  • +
  • etypes2 (np.ndarray) – Species of atoms in the second local +environment.

  • +
  • d1 (int) – First stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • d2 (int) – Second stress component of the first environment (1=x, 2=y, +3=z).

  • +
  • d3 (int) – First stress component of the second environment (1=x, 2=y, +3=z).

  • +
  • d4 (int) – Second stress component of the second environment (1=x, 2=y, +3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_many_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+many body kernel.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2b, ls2b, +sigmb, lsmb, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and many-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_many_body_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element energy kernel.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2b ls2b, +sigmb, lsmb, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_many_body_mc_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps, cutoffs, cutoff_func=numba.njit)
+
+
2+many-body multi-element kernel between two force and energy

components.

+
+
+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_many_body_mc_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+many-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2+3-body multi-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_body_mc_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit)
+

2+3-body multi-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body kernel and its gradient +with respect to the hyperparameters.

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2+3-body multi-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_mc_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps: ndarray, cutoffs: ndarray, cutoff_func: Callable = numba.njit) float
+

2+3-body multi-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_plus_many_body_mc(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_plus_many_body_mc_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element energy kernel.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_plus_many_body_mc_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps, cutoffs, cutoff_func=numba.njit)
+
+
2+3+many-body single-element kernel between two force and energy

components.

+
+
+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.mc_simple.two_plus_three_plus_many_body_mc_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig3, ls3, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+
diff --git a/flare/kernels/sc.html b/flare/kernels/sc.html index b8efae4ce..a647bf435 100644 --- a/flare/kernels/sc.html +++ b/flare/kernels/sc.html @@ -98,8 +98,1160 @@
-
-

Single-element Kernels

+
+

Single-element Kernels

+

Single element 2-, 3-, and 2+3-body kernels. +The kernel functions to choose:

+
    +
  • Two body:

    +
    +
      +
    • two_body: force kernel

    • +
    • two_body_en: energy kernel

    • +
    • two_body_grad: gradient of kernel function

    • +
    • two_body_force_en: energy force kernel

    • +
    +
    +
  • +
  • Three body:

    +
    +
      +
    • three_body,

    • +
    • three_body_grad,

    • +
    • three_body_en,

    • +
    • three_body_force_en,

    • +
    +
    +
  • +
  • Two plus three body:

    +
    +
      +
    • two_plus_three_body,

    • +
    • two_plus_three_body_grad,

    • +
    • two_plus_three_en,

    • +
    • two_plus_three_force_en

    • +
    +
    +
  • +
  • Two plus many body:

    +
    +
      +
    • two_plus_many_body,

    • +
    • two_plus_many_body_grad,

    • +
    • two_plus_many_body_en,

    • +
    • two_plus_many_body_force_en

    • +
    +
    +
  • +
  • Two plus three plus many body:

    +
    +
      +
    • two_plus_three_plus_many_body,

    • +
    • two_plus_three_plus_many_body_grad,

    • +
    • two_plus_three_plus_many_body_en,

    • +
    • two_plus_three_plus_many_body_force_en

    • +
    +
    +
  • +
+

Example:

+
>>> gp_model = GaussianProcess(kernel_name='2b',
+                               <other arguments>)
+
+
+
+
+flare.kernels.sc.many_body(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

many-body single-element kernel between two forces.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the many-body force/force kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.many_body_en(env1, env2, hyps, cutoffs, cutoff_func=numba.njit)
+

many-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the many-body energy/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.many_body_en_jit(q_array_1, q_array_2, sig, ls)
+

many-body single-element energy kernel between accelerated +with Numba.

+
+
Parameters
+
    +
  • q_array_1 (np.ndarray) – coordination number of the 1st local +environment.

  • +
  • q_array_2 (np.ndarray) – coordination number of the 2nd local +environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.many_body_force_en(env1, env2, d1, hyps, cutoffs, cutoff_func=numba.njit)
+

many-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the many-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.many_body_force_en_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_grads, d1, sig, ls)
+

many-body single-element kernel between force and energy components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • neighbouring_dists_array_1 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the first local environment.

  • +
  • num_neighbours_1 (np.nsdarray) – number of neighbours of each atom in the first +local environment

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.many_body_grad(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

many-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2-, 3-, and +many-body cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

+
Value of the many-body kernel and its gradient

with respect to the hyperparameters.

+
+
+

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.sc.many_body_grad_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, d1, d2, sig, ls)
+

gradient of many-body single-element kernel between two force components +w.r.t. the hyperparameters, accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • neighbouring_dists_array_1 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the first local environment.

  • +
  • neighbouring_dists_array_2 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the second local environment.

  • +
  • num_neighbours_1 (np.nsdarray) – number of neighbours of each atom in the first +local environment

  • +
  • num_neighbours_2 (np.ndarray) – number of neighbours of each atom in the second +local environment

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel and its gradient w.r.t. sig and ls

+
+
Return type
+

array

+
+
+
+ +
+
+flare.kernels.sc.many_body_jit(q_array_1, q_array_2, q_neigh_array_1, q_neigh_array_2, q_neigh_grads_1, q_neigh_grads_2, d1, d2, sig, ls)
+

many-body single-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – many-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – many-body bond array of the second local +environment.

  • +
  • neighbouring_dists_array_1 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the first local environment.

  • +
  • neighbouring_dists_array_2 (np.ndarray) – matrix padded with zero values of distances +of neighbours for the atoms in the second local environment.

  • +
  • num_neighbours_1 (np.nsdarray) – number of neighbours of each atom in the first +local environment

  • +
  • num_neighbours_2 (np.ndarray) – number of neighbours of each atom in the second +local environment

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – many-body signal variance hyperparameter.

  • +
  • ls (float) – many-body length scale hyperparameter.

  • +
  • r_cut (float) – many-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

3-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body_en(env1, env2, hyps, cutoffs, cutoff_func=numba.njit)
+

3-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body_en_jit(bond_array_1, bond_array_2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, sig, ls, r_cut, cutoff_func)
+

3-body single-element kernel between two local energies accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body local energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body_force_en(env1, env2, d1, hyps, cutoffs, cutoff_func=numba.njit)
+

3-body single-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body_force_en_jit(bond_array_1, bond_array_2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, sig, ls, r_cut, cutoff_func)
+

3-body single-element kernel between a force component and a local +energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.three_body_grad(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

3-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

+
Value of the 3-body kernel and its gradient

with respect to the hyperparameters.

+
+
+

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.sc.three_body_grad_jit(bond_array_1, bond_array_2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

3-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.sc.three_body_jit(bond_array_1, bond_array_2, cross_bond_inds_1, cross_bond_inds_2, cross_bond_dists_1, cross_bond_dists_2, triplets_1, triplets_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

3-body single-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 3-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 3-body bond array of the second local +environment.

  • +
  • cross_bond_inds_1 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the first local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_inds_2 (np.ndarray) – Two dimensional array whose row m +contains the indices of atoms n > m in the second local +environment that are within a distance r_cut of both atom n and +the central atom.

  • +
  • cross_bond_dists_1 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the first +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • cross_bond_dists_2 (np.ndarray) – Two dimensional array whose row m +contains the distances from atom m of atoms n > m in the second +local environment that are within a distance r_cut of both atom +n and the central atom.

  • +
  • triplets_1 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the first local environment that are +within a distance r_cut of atom m.

  • +
  • triplets_2 (np.ndarray) – One dimensional array of integers whose entry +m is the number of atoms in the second local environment that are +within a distance r_cut of atom m.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • sig (float) – 3-body signal variance hyperparameter.

  • +
  • ls (float) – 3-body length scale hyperparameter.

  • +
  • r_cut (float) – 3-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

2-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body_en(env1, env2, hyps, cutoffs, cutoff_func=numba.njit)
+

2-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body_en_jit(bond_array_1, bond_array_2, sig, ls, r_cut, cutoff_func)
+

2-body single-element kernel between two local energies accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body local energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body_force_en(env1, env2, d1, hyps, cutoffs, cutoff_func=numba.njit)
+

2-body single-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body_force_en_jit(bond_array_1, bond_array_2, d1, sig, ls, r_cut, cutoff_func)
+

2-body single-element kernel between a force component and a local +energy accelerated with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_body_grad(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

2-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig, ls).

  • +
  • cutoffs (np.ndarray) – One-element array containing the 2-body +cutoff.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

+
Value of the 2-body kernel and its gradient

with respect to the hyperparameters.

+
+
+

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.sc.two_body_grad_jit(bond_array_1, bond_array_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

2-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • d2 (int) – Force component of the second environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel and its gradient with respect to the +hyperparameters.

+
+
Return type
+

(float, float)

+
+
+
+ +
+
+flare.kernels.sc.two_body_jit(bond_array_1, bond_array_2, d1, d2, sig, ls, r_cut, cutoff_func)
+

2-body single-element kernel between two force components accelerated +with Numba.

+
+
Parameters
+
    +
  • bond_array_1 (np.ndarray) – 2-body bond array of the first local +environment.

  • +
  • bond_array_2 (np.ndarray) – 2-body bond array of the second local +environment.

  • +
  • d1 (int) – Force component of the first environment (1=x, 2=y, 3=z).

  • +
  • d2 (int) – Force component of the second environment (1=x, 2=y, 3=z).

  • +
  • sig (float) – 2-body signal variance hyperparameter.

  • +
  • ls (float) – 2-body length scale hyperparameter.

  • +
  • r_cut (float) – 2-body cutoff radius.

  • +
  • cutoff_func (Callable) – Cutoff function.

  • +
+
+
Returns
+

Value of the 2-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_many_body(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+many-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2b, ls2b, +sigmb, lsmb, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_many_body_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element energy kernel.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_many_body_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element kernel between two force and energy components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_many_body_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+many-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2b, ls2b, +sigmb, lsmb, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_body(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_body_grad(env1, env2, d1, d2, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between two force components and its +gradient with respect to the hyperparameters.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

+
Value of the 2+3-body kernel and its gradient

with respect to the hyperparameters.

+
+
+

+
+
Return type
+

(float, np.ndarray)

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_en(env1, env2, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between two local energies.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_force_en(env1, env2, d1, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between a force component and a local +energy.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – Local environment associated with the +force component.

  • +
  • env2 (AtomicEnvironment) – Local environment associated with the +local energy.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig1, ls1, +sig2, ls2).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3-body force/energy kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_plus_many_body(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_plus_many_body_en(env1: AtomicEnvironment, env2: AtomicEnvironment, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element energy kernel.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_plus_many_body_force_en(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element kernel between two force and energy components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+ +
+
+flare.kernels.sc.two_plus_three_plus_many_body_grad(env1: AtomicEnvironment, env2: AtomicEnvironment, d1: int, d2: int, hyps, cutoffs, cutoff_func=numba.njit)
+

2+3+many-body single-element kernel between two force components.

+
+
Parameters
+
    +
  • env1 (AtomicEnvironment) – First local environment.

  • +
  • env2 (AtomicEnvironment) – Second local environment.

  • +
  • d1 (int) – Force component of the first environment.

  • +
  • d2 (int) – Force component of the second environment.

  • +
  • hyps (np.ndarray) – Hyperparameters of the kernel function (sig2, ls2, +sig3, ls3, sigm, lsm, sig_n).

  • +
  • cutoffs (np.ndarray) – Two-element array containing the 2- and 3-body +cutoffs.

  • +
  • cutoff_func (Callable) – Cutoff function of the kernel.

  • +
+
+
Returns
+

Value of the 2+3+many-body kernel.

+
+
Return type
+

float

+
+
+
+
diff --git a/flare/learners/gp_from_aimd.html b/flare/learners/gp_from_aimd.html index 4f4e80f56..12858e1af 100644 --- a/flare/learners/gp_from_aimd.html +++ b/flare/learners/gp_from_aimd.html @@ -53,7 +53,10 @@
  • Bayesian Active Learning
  • @@ -97,8 +100,72 @@
    -
    -

    GP From AIMD

    +
    +

    GP From AIMD

    +

    Tool to enable the development of a GP model based on an AIMD +trajectory with many customizable options for fine control of training. +Contains methods to transfer the model to an OTF run or MD engine run.

    +
    +

    Seed frames

    +

    The various parameters in the TrajectoryTrainer class related to +“Seed frames” are to help you train a model which does not yet have a +training set. Uncertainty- and force-error driven training will go better with +a somewhat populated training set, as force and uncertainty estimates +are better behaveed with more data.

    +

    You may pass in a set of seed frames or atomic environments. +All seed environments will be added to the GP model; seed frames will +be iterated through and atoms will be added at random. +There are a few reasons why you would want to pay special attention to an +individual species.

    +

    If you are studying a system where the dynamics of one species are +particularly important and so you want a good representation in the training +set, then you would want to include as many as possible in the training set +during the seed part of the training.

    +

    Inversely, if a system has high representation of a species well-described +by a simple 2+3 body kernel, you may want it to be less well represented +in the seeded training set.

    +

    By specifying the pre_train_atoms_per_element, you can limit the number of +atoms of a given species which are added in. You can also limit the number +of atoms which are added from a given seed frame.

    +
    +
    +flare.learners.gp_from_aimd.parse_trajectory_trainer_output(file: str, return_gp_data: bool = False, compute_errors: bool = True) Union[List[dict], Tuple[List[dict], dict]]
    +

    Reads output of a TrajectoryTrainer run by frame. return_gp_data returns +data about GP model growth useful for visualizing progress of model +training.

    +
    +
    Parameters
    +
      +
    • file – filename of output

    • +
    • return_gp_data – flag for returning extra GP data

    • +
    • compute_errors – Compute deviation from GP and DFT forces.

    • +
    +
    +
    Returns
    +

    List of dictionaries with keys ‘species’, ‘positions’, +‘gp_forces’, ‘dft_forces’, ‘gp_stds’, ‘added_atoms’, and +‘maes_by_species’, optionally, gp_data dictionary

    +
    +
    +
    + +
    +
    +flare.learners.gp_from_aimd.structures_from_gpfa_output(frame_dictionaries: List[dict]) List[FLARE_Atoms]
    +

    Takes as input the first output from the parse_trajectory_trainer_output +function and turns it into a series of FLARE structures, with DFT forces mapped +onto the structures.

    +
    +
    Parameters
    +

    frame_dictionaries – The list of dictionaries which describe each GPFA frame.

    +
    +
    Returns
    +

    +
    +
    +
    + +
    diff --git a/flare/learners/learners.html b/flare/learners/learners.html index f54cf24ec..87ed55478 100644 --- a/flare/learners/learners.html +++ b/flare/learners/learners.html @@ -102,7 +102,10 @@

    Bayesian Active LearningOn-the-Fly Training
  • On-the-Fly Training in LAMMPS
  • -
  • GP From AIMD
  • +
  • GP From AIMD +
  • Conditions to add training data
  • diff --git a/flare/learners/otf.html b/flare/learners/otf.html index f37d86376..25a2b90de 100644 --- a/flare/learners/otf.html +++ b/flare/learners/otf.html @@ -97,8 +97,170 @@
    -
    -

    On-the-Fly Training

    +
    +

    On-the-Fly Training

    +

    OTF is the on-the-fly training module for ASE, WITHOUT molecular dynamics engine. +It needs to be used adjointly with ASE MD engine.

    +
    +
    +class flare.learners.otf.OTF(atoms, dt, number_of_steps, dft_calc, md_engine, md_kwargs, flare_calc=None, trajectory=None, prev_pos_init: ndarray = None, rescale_steps: List[int] = [], rescale_temps: List[int] = [], write_model: int = 0, force_only: bool = True, std_tolerance_factor: float = 1, skip: int = 0, init_atoms: List[int] = None, output_name: str = 'otf_run', max_atoms_added: int = 1, train_hyps: tuple = (0, 1), min_steps_with_model: int = 0, update_style: str = 'add_n', update_threshold: float = None, dft_kwargs=None, store_dft_output: Tuple[Union[str, List[str]], str] = None, build_mode='bayesian', wandb_log=None, **kwargs)
    +
    +
    Trains a Gaussian process force field on the fly during

    molecular dynamics.

    +
    +
    +
    +
    Parameters
    +
      +
    • atoms (ASE Atoms) – the ASE Atoms object for the on-the-fly MD run.

    • +
    • flare_calc – ASE calculator. Must have “get_uncertainties” method +implemented.

    • +
    • dt – the timestep in MD, in the units of pico-second.

    • +
    • number_of_steps (int) – the total number of steps for MD.

    • +
    • dft_calc (ASE Calculator) – any ASE calculator is supported, +e.g. Espresso, VASP etc.

    • +
    • md_engine (str) – the name of MD thermostat, only VelocityVerlet, +NVTBerendsen, NPTBerendsen, NPT and Langevin, NoseHoover +are supported.

    • +
    • md_kwargs (dict) – Specify the args for MD as a dictionary, the args are +as required by the ASE MD modules consistent with the md_engine.

    • +
    • trajectory (ASE Trajectory) – default None, not recommended, +currently in experiment.

    • +
    +
    +
    +

    The following arguments are for on-the-fly training, the user can also +refer to flare.otf.OTF

    +
    +
    Parameters
    +
      +
    • prev_pos_init ([type], optional) – Previous positions. Defaults +to None.

    • +
    • rescale_steps (List[int], optional) – List of frames for which the +velocities of the atoms are rescaled. Defaults to [].

    • +
    • rescale_temps (List[int], optional) – List of rescaled temperatures. +Defaults to [].

    • +
    • write_model (int, optional) – If 0, write never. If 1, write at +end of run. If 2, write after each training and end of run. +If 3, write after each time atoms are added and end of run. +If 4, write after each training and end of run, and back up +after each write.

    • +
    • force_only (bool, optional) – If True, only use forces for training. +Default to False, use forces, energy and stress for training.

    • +
    • std_tolerance_factor (float, optional) – Threshold that determines +when DFT is called. Specifies a multiple of the current noise +hyperparameter. If the epistemic uncertainty on a force +component exceeds this value, DFT is called. Defaults to 1.

    • +
    • skip (int, optional) – Number of frames that are skipped when +dumping to the output file. Defaults to 0.

    • +
    • init_atoms (List[int], optional) – List of atoms from the input +structure whose local environments and force components are +used to train the initial GP model. If None is specified, all +atoms are used to train the initial GP. Defaults to None.

    • +
    • output_name (str, optional) – Name of the output file. Defaults to +‘otf_run’.

    • +
    • max_atoms_added (int, optional) – Number of atoms added each time +DFT is called. Defaults to 1.

    • +
    • train_hyps (tuple, optional) – Specifies the range of steps the +hyperparameters of the GP are optimized. If the number of DFT +calls is in this range, the hyperparameters are frozen. +Defaults to (None, None) which means always training.

    • +
    • min_steps_with_model (int, optional) – Minimum number of steps the +model takes in between calls to DFT. Defaults to 0.

    • +
    • dft_kwargs ([type], optional) – Additional arguments which are +passed when DFT is called; keyword arguments vary based on the +program (e.g. ESPRESSO vs. VASP). Defaults to None.

    • +
    • store_dft_output (Tuple[Union[str,List[str]],str], optional) – After DFT calculations are called, copy the file or files +specified in the first element of the tuple to a directory +specified as the second element of the tuple. +Useful when DFT calculations are expensive and want to be kept +for later use. The first element of the tuple can either be a +single file name, or a list of several. Copied files will be +prepended with the date and time with the format +‘Year.Month.Day:Hour:Minute:Second:’.

    • +
    • build_mode (str) – default “bayesian”, run on-the-fly training. +“direct” mode constructs GP model from a given list of frames, with +FakeMD and FakeDFT. Each frame needs to have a global +property called “target_atoms” specifying a list of atomic +environments added to the GP model.

    • +
    +
    +
    +
    +
    +compute_properties()
    +
    +
    Compute energies, forces, stresses, and their uncertainties with

    the FLARE ASE calcuator, and write the results to the +OTF structure object.

    +
    +
    +
    + +
    +
    +md_step()
    +

    Get new position in molecular dynamics based on the forces predicted by +FLARE_Calculator or DFT calculator

    +
    + +
    +
    +rescale_temperature(new_pos: ndarray)
    +

    Change the previous positions to update the temperature

    +
    +
    Parameters
    +

    new_pos (np.ndarray) – Positions of atoms in the next MD frame.

    +
    +
    +
    + +
    +
    +run()
    +

    Performs an on-the-fly training run.

    +

    If OTF has store_dft_output set, then the specified DFT files will +be copied with the current date and time prepended in the format +‘Year.Month.Day:Hour:Minute:Second:’.

    +
    + +
    +
    +run_dft()
    +

    Calculates DFT forces on atoms in the current structure.

    +

    If OTF has store_dft_output set, then the specified DFT files will +be copied with the current date and time prepended in the format +‘Year.Month.Day:Hour:Minute:Second:’.

    +

    Calculates DFT forces on atoms in the current structure.

    +
    + +
    +
    +train_gp()
    +

    Optimizes the hyperparameters of the current GP model.

    +
    + +
    +
    +update_gp(train_atoms: List[int], dft_frcs: ndarray, dft_energy: float = None, dft_stress: ndarray = None)
    +

    Updates the current GP model.

    +
    +
    Parameters
    +
      +
    • train_atoms (List[int]) – List of atoms whose local environments +will be added to the training set.

    • +
    • dft_frcs (np.ndarray) – DFT forces on all atoms in the structure.

    • +
    +
    +
    +
    + +
    +
    +update_temperature()
    +

    Updates the instantaneous temperatures of the system.

    +
    + +
    +
    diff --git a/flare/learners/utils.html b/flare/learners/utils.html index 2816190c0..0debc904c 100644 --- a/flare/learners/utils.html +++ b/flare/learners/utils.html @@ -97,8 +97,155 @@
    -
    -

    Conditions to add training data

    +
    +

    Conditions to add training data

    +

    Utility functions for various tasks.

    +
    +
    +flare.learners.utils.get_max_cutoff(cell: numpy.ndarray) float
    +
    +
    Compute the maximum cutoff compatible with a 3x3x3 supercell of a

    structure. Called in the Structure constructor when +setting the max_cutoff attribute, which is used to create local +environments with arbitrarily large cutoff radii.

    +
    +
    +
    +
    Parameters
    +

    cell (np.ndarray) – Bravais lattice vectors of the structure stored as +rows of a 3x3 Numpy array.

    +
    +
    Returns
    +

    +
    Maximum cutoff compatible with a 3x3x3 supercell of the

    structure.

    +
    +
    +

    +
    +
    Return type
    +

    float

    +
    +
    +
    + +
    +
    +flare.learners.utils.is_force_in_bound_per_species(abs_force_tolerance: float, predicted_forces: ndarray, label_forces: ndarray, structure, max_atoms_added: int = inf, max_by_species: dict = {}, max_force_error: float = inf) -> (<class 'bool'>, typing.List[int])
    +

    Checks the forces of GP prediction assigned to the structure against a +DFT calculation, and return a list of atoms which meet an absolute +threshold abs_force_tolerance.

    +

    Can limit the total number of target atoms via max_atoms_added, and limit +per species by max_by_species.

    +

    The max_atoms_added argument will ‘overrule’ the +max by species; e.g. if max_atoms_added is 2 and max_by_species is {“H”:3}, +then at most two atoms total will be added.

    +

    Because adding atoms which are in configurations which are far outside +of the potential energy surface may not always be +desirable, a maximum force error can be passed in; atoms with

    +
    +
    Parameters
    +
      +
    • abs_force_tolerance – If error exceeds this value, then return +atom index

    • +
    • predicted_forces – Force predictions made by GP model

    • +
    • label_forces – “True” forces computed by DFT

    • +
    • structure – FLARE Structure

    • +
    • max_atoms_added – Maximum atoms to return

    • +
    • max_by_species – Limit to a maximum number of atoms by species

    • +
    • max_force_error – In order to avoid counting in highly unlikely +configurations, if the error exceeds this, do not add atom

    • +
    +
    +
    Returns
    +

    Bool indicating if any atoms exceeded the error +threshold, and a list of indices of atoms which did sorted by their +error.

    +
    +
    +
    + +
    +
    +flare.learners.utils.is_std_in_bound(std_tolerance: float, noise: float, structure: FLARE_Atoms, max_atoms_added: int = inf, update_style: str = 'add_n', update_threshold: float = None) -> (<class 'bool'>, typing.List[int])
    +

    Given an uncertainty tolerance and a structure decorated with atoms, +species, and associated uncertainties, return those which are above a +given threshold, agnostic to species.

    +

    If std_tolerance is negative, then the threshold used is the absolute +value of std_tolerance.

    +

    If std_tolerance is positive, then the threshold used is +std_tolerance * noise.

    +

    If std_tolerance is 0, then do not check.

    +
    +
    Parameters
    +
      +
    • std_tolerance – If positive, multiply by noise to get cutoff. If +negative, use absolute value of std_tolerance as cutoff.

    • +
    • noise – Noise variance parameter

    • +
    • structure (FLARE Structure) – Input structure

    • +
    • max_atoms_added – Maximum # of atoms to add

    • +
    • update_style – A string specifying the desired strategy for +adding atoms to the training set. Current options are ``add_n’’, which +adds the n = max_atoms_added highest-uncertainty atoms, and +``threshold’’, which adds all atoms with uncertainty greater than +update_threshold.

    • +
    • update_threshold – A float specifying the update threshold. Ignored +if update_style is not set to ``threshold’’.

    • +
    +
    +
    Returns
    +

    (True,[-1]) if no atoms are above cutoff, (False,[…]) if at +least one atom is above std_tolerance, with the list indicating +which atoms have been selected for the training set.

    +
    +
    +
    + +
    +
    +flare.learners.utils.is_std_in_bound_per_species(rel_std_tolerance: float, abs_std_tolerance: float, noise: float, structure: FLARE_Atoms, max_atoms_added: int = inf, max_by_species: dict = {}) -> (<class 'bool'>, typing.List[int])
    +

    Checks the stds of GP prediction assigned to the structure, returns a +list of atoms which either meet an absolute threshold or a relative +threshold defined by rel_std_tolerance * noise. Can limit the +total number of target atoms via max_atoms_added, and limit per species +by max_by_species.

    +

    The max_atoms_added argument will ‘overrule’ the +max by species; e.g. if max_atoms_added is 2 and max_by_species is {“H”:3}, +then at most two atoms will be added.

    +
    +
    Parameters
    +
      +
    • rel_std_tolerance – Multiplied by noise to get a lower +bound for the uncertainty threshold defined relative to the model.

    • +
    • abs_std_tolerance – Used as an absolute lower bound for the +uncertainty threshold.

    • +
    • noise – Noise hyperparameter for model, used to define relative +uncertainty cutoff.

    • +
    • structure – FLARE structure decorated with +uncertainties in structure.stds.

    • +
    • max_atoms_added – Maximum number of atoms to return from structure.

    • +
    • max_by_species – Dictionary describing maximum number of atoms to +return by species (e.g. {‘H’:1,’He’:2} will return at most 1 H and 2 He +atoms.)

    • +
    +
    +
    Returns
    +

    Bool indicating if any atoms exceeded the uncertainty +threshold, and a list of indices of atoms which did, sorted by their +uncertainty.

    +
    +
    +
    + +
    +
    +flare.learners.utils.subset_of_frame_by_element(frame: FLARE_Atoms, predict_atoms_per_element: dict) List[int]
    +

    Given a structure and a dictionary formatted as {“Symbol”:int, +..} describing a number of atoms per element, return a sorted list of +indices corresponding to a random subset of atoms by species +:param frame: +:param predict_atoms_by_species: +:return:

    +
    +
    diff --git a/flare/md/fake.html b/flare/md/fake.html index 67956edae..409522871 100644 --- a/flare/md/fake.html +++ b/flare/md/fake.html @@ -105,6 +105,79 @@

    Fake MD
    +
    +class flare.md.fake.FakeDFT(**kwargs)
    +

    Fake DFT to read energy/forces/stress from a trajectory file.

    +
    +
    Parameters
    +
      +
    • filename (str) – The name of the trajectory file to read in.

    • +
    • format (str) – The format supported by ASE IO.

    • +
    • index (float or str) – The indices of frames to read from the +trajectory. Default is “:”, which reads the whole trajectory.

    • +
    +
    +
    +
    +
    +calculate(atoms=None, properties=None, system_changes=None)
    +

    Do the calculation.

    +
    +
    properties: list of str

    List of what needs to be calculated. Can be any combination +of ‘energy’, ‘forces’, ‘stress’, ‘dipole’, ‘charges’, ‘magmom’ +and ‘magmoms’.

    +
    +
    system_changes: list of str

    List of what has changed since last calculation. Can be +any combination of these six: ‘positions’, ‘numbers’, ‘cell’, +‘pbc’, ‘initial_charges’ and ‘initial_magmoms’.

    +
    +
    +

    Subclasses need to implement this, but can ignore properties +and system_changes if they want. Calculated properties should +be inserted into results dictionary like shown in this dummy +example:

    +
    self.results = {'energy': 0.0,
    +                'forces': np.zeros((len(atoms), 3)),
    +                'stress': np.zeros(6),
    +                'dipole': np.zeros(3),
    +                'charges': np.zeros(len(atoms)),
    +                'magmom': 0.0,
    +                'magmoms': np.zeros(len(atoms))}
    +
    +
    +

    The subclass implementation should first call this +implementation to set the atoms attribute and create any missing +directories.

    +
    + +
    +
    +implemented_properties: List[str] = ['energy', 'forces', 'stress']
    +

    Properties calculator can handle (energy, forces, …)

    +
    + +
    + +
    +
    +class flare.md.fake.FakeMD(*args: Any, **kwargs: Any)
    +

    Fake MD for offline training with OTF module and AIMD trajectories

    +
    +
    Parameters
    +
      +
    • atoms (ASE Atoms) – The list of atoms.

    • +
    • timestep (float) – The time step.

    • +
    • filenames (list) – The name of the trajectory file to read in.

    • +
    • format (str) – The format supported by ASE IO.

    • +
    • index (float or str) – The indices of frames to read from the +trajectory. Default is “:”, which reads the whole trajectory.

    • +
    • io_kwargs (dict) – The arguments needed for reading specific format.

    • +
    +
    +
    +
    +

    diff --git a/flare/md/lammps.html b/flare/md/lammps.html index e8f84a1f6..7bb5a7b1b 100644 --- a/flare/md/lammps.html +++ b/flare/md/lammps.html @@ -96,8 +96,160 @@
    -
    -

    LAMMPS Calculator and MD

    +
    +

    LAMMPS Calculator and MD

    +
    +
    +class flare.md.lammps.LAMMPS_MD(*args: Any, **kwargs: Any)
    +

    Run MD with LAMMPS based on the ase.md.md.MolecularDynamics. +It includes using LAMMPS_MOD to run multiple steps, and supports +Bayesian active learning with flare.

    +
    +
    Parameters
    +

    parameters (dict) – LAMMPS input commands.

    +
    +
    +
    +
    +backup(curr_trj)
    +

    Back up the current trajectory into .xyz file. The atomic positions, +velocities, forces and uncertainties are read from lammps trajectory. +The step, potential energy and stress are read from thermo.txt

    +
    +
    Parameters
    +

    curr_trj (list[ase.Atoms]) – lammps trajectory of current run read +by ASE.

    +
    +
    +
    + +
    +
    +step(std_tolerance, N_steps)
    +

    Run lammps until the uncertainty interrupts. Notice this method neither runs +only a single MD step, nor finishes all the N_steps. The MD exits only when +1) the maximal atomic uncertainty goes beyond std_tolerance, or +2) all the N_steps are finished without uncertainty beyond std_tolerance.

    +
    +
    Parameters
    +
      +
    • std_tolerance (float) – the threshold for atomic uncertainty, above which the +MD will be interrupted and DFT will be called.

    • +
    • N_steps (int) – number of MD steps left to run.

    • +
    +
    +
    +
    + +
    + +
    +
    +class flare.md.lammps.LAMMPS_MOD(*args: Any, **kwargs: Any)
    +

    A modified ASE LAMMPS calculator based on ase.lammpsrun.LAMMPS, +to allow for more flexible input parameters, including compute, +region, dump, fix/nvt, fix/npt etc.

    +

    The input arguments are the same as +https://databases.fysik.dtu.dk/ase/ase/calculators/lammps.html#ase.calculators.lammpsrun.LAMMPS

    +

    Example:

    +
    from ase import Atom
    +from ase.build import bulk
    +from flare.md.lammps import LAMMPS_MOD
    +
    +Ni = bulk("Ni", cubic=True)
    +H = Atom("H", position=Ni.cell.diagonal() / 2)
    +NiH = Ni + H
    +
    +files = []
    +param_dict = {
    +    "pair_style": "lj/cut 2.5",
    +    "pair_coeff": ["* * 1 1"],
    +    "compute": ["1 all pair/local dist", "2 all reduce max c_1"],
    +    "velocity": ["all create 300 12345 dist gaussian rot yes mom yes"],
    +    "fix": ["1 all nvt temp 300 300 $(100.0*dt)"],
    +    "dump_period": 1,
    +    "timestep": 0.001,
    +    "keep_alive": False,
    +}
    +
    +lmp_calc = LAMMPS_MOD(
    +    command=<lammps_executable>,
    +    label="my_lammps",
    +    files=files,
    +    keep_tmp_files=True,
    +    tmp_dir="tmp",
    +)
    +lmp_calc.set(**param_dict)
    +NiH.calc = lmp_calc
    +NiH.calc.calculate(NiH, set_atoms=False)
    +forces = NiH.get_forces()
    +
    +
    +

    Supported customized commands for LAMMPS input:

    +
    mass (set by arg `masses`)
    +package
    +atom_style, bond_style, angle_style, dihedral_style, improper_style, kspace_style
    +units (default: metal)
    +boundary
    +neighbor
    +newton
    +kim_interactions
    +pair_style (default: lj/cut 2.5)
    +pair_coeff (default: * * 1 1)
    +*compute
    +*region
    +*dump
    +group
    +fix
    +timestep
    +minimize
    +run
    +
    +
    +

    Note:

    +
      +
    • additional commands needed at the beginning can be specified in the arg model_init

    • +
    • additional commands needed after “pair_coeff” can be specified in the arg model_post

    • +
    +

    Non-customized input commands:

    +
    atom_modify sort 0 0.0
    +read_data
    +fix fix_nve all nve
    +dump dump_all all custom trj_file (dump_period) id type x y z vx vy vz fx fy fz
    +thermo_style custom (thermo_args)
    +thermo_modify flush yes format float %23.16g
    +thermo 1
    +
    +
    +

    Customized parameters:

    +
    dump_period
    +thermo_args
    +specorder
    +
    +
    +
    +
    +calculate(atoms=None, properties=None, system_changes=None, set_atoms=False)
    +

    Modify parameters

    +
    + +
    + +
    +
    +flare.md.lammps.check_sgp_match(atoms, sgp_calc, logger, specorder, command)
    +

    Check if the lammps trajectory or calculator matches the SGP predictions

    +
    + +
    +
    +flare.md.lammps.get_kinetic_stress(atoms)
    +

    LAMMPS stress tensor = virial + kinetic, +kinetic = sum(m_k * v_ki * v_kj) / V. +We subtract the kinetic term and keep only the virial term. +In the calculator, results[“stress”] += kinetic_atoms gives virial.

    +
    +
    diff --git a/flare/md/nosehoover.html b/flare/md/nosehoover.html index c2da891ed..7dc9bc8f9 100644 --- a/flare/md/nosehoover.html +++ b/flare/md/nosehoover.html @@ -96,8 +96,46 @@
    -
    -

    NoseHoover (NVT Ensemble)

    +
    +

    NoseHoover (NVT Ensemble)

    +

    Custom Nose-Hoover NVT thermostat based on ASE.

    +

    This code was originally written by Jonathan Mailoa based on these notes:

    +
    +
    +

    It was then adapted by Simon Batzner to be used within ASE. Parts of the overall outline of the class are also based on the Langevin class in ASE.

    +
    +
    +class flare.md.nosehoover.NoseHoover(*args: Any, **kwargs: Any)
    +

    Nose-Hoover (constant N, V, T) molecular dynamics.

    +

    Usage: NoseHoover(atoms, dt, temperature)

    +
    +
    Parameters
    +
      +
    • atoms (ASE Atoms) – The list of atoms.

    • +
    • timestep (float) – The time step.

    • +
    • temperature (float) – Target temperature of the MD run in [K * units.kB]

    • +
    • nvt_q (float) – Q in the Nose-Hoover equations.

    • +
    +
    +
    +

    Example Usage:

    +
    nvt_dyn = NoseHoover(
    +    atoms=atoms,
    +    timestep=0.5 * units.fs,
    +    temperature=300. * units.kB,
    +    nvt_q=334.
    +)
    +
    +
    +
    +
    +step()
    +

    Perform a MD step.

    +
    + +
    +
    diff --git a/flare/utils/env_getarray.html b/flare/utils/env_getarray.html index e63598a8a..9efa229e4 100644 --- a/flare/utils/env_getarray.html +++ b/flare/utils/env_getarray.html @@ -95,8 +95,164 @@
    -
    -

    Construct Atomic Environment

    +
    +

    Construct Atomic Environment

    +
    +
    +flare.utils.env_getarray.get_2_body_arrays(positions, atom: int, cell, r_cut, cutoff_2, species, sweep, nspecie, species_mask, twobody_mask)
    +

    Returns distances, coordinates, species of atoms, and indices of neighbors +in the 2-body local environment. This method is implemented outside +the AtomicEnvironment class to allow for njit acceleration with Numba.

    +
    +
    Parameters
    +
      +
    • positions (np.ndarray) – Positions of atoms in the structure.

    • +
    • atom (int) – Index of the central atom of the local environment.

    • +
    • cell (np.ndarray) – 3x3 array whose rows are the Bravais lattice vectors of the +cell.

    • +
    • cutoff_2 (np.ndarray) – 2-body cutoff radius.

    • +
    • species (np.ndarray) – Numpy array of species represented by their atomic numbers.

    • +
    • nspecie – number of atom types to define bonds

    • +
    • species_mask – mapping from atomic number to atom types

    • +
    • twobody_mask – mapping from the types of end atoms to bond types

    • +
    +
    +
    Type
    +

    int

    +
    +
    Type
    +

    np.ndarray

    +
    +
    Type
    +

    np.ndarray

    +
    +
    Returns
    +

    Tuple of arrays describing pairs of atoms in the 2-body local +environment.

    +

    bond_array_2: Array containing the distances and relative +coordinates of atoms in the 2-body local environment. First column +contains distances, remaining columns contain Cartesian coordinates +divided by the distance (with the origin defined as the position of the +central atom). The rows are sorted by distance from the central atom.

    +

    bond_positions_2: Coordinates of atoms in the 2-body local environment.

    +

    etypes: Species of atoms in the 2-body local environment represented by +their atomic number.

    +

    bond_indices: Structure indices of atoms in the local environment.

    +

    +
    +
    Return type
    +

    np.ndarray, np.ndarray, np.ndarray, np.ndarray

    +
    +
    +
    + +
    +
    +flare.utils.env_getarray.get_3_body_arrays(bond_array_2, bond_positions_2, ctype, etypes, r_cut, cutoff_3, nspecie, species_mask, cut3b_mask)
    +

    Returns distances and coordinates of triplets of atoms in the +3-body local environment.

    +
    +
    Parameters
    +
      +
    • bond_array_2 (np.ndarray) – 2-body bond array.

    • +
    • bond_positions_2 (np.ndarray) – Coordinates of atoms in the 2-body local +environment.

    • +
    • ctype – atomic number of the center atom

    • +
    • cutoff_3 (np.ndarray) – 3-body cutoff radius.

    • +
    • nspecie – number of atom types to define bonds

    • +
    • species_mask – mapping from atomic number to atom types

    • +
    • cut3b_mask – mapping from the types of end atoms to bond types

    • +
    +
    +
    Type
    +

    int

    +
    +
    Type
    +

    int

    +
    +
    Type
    +

    np.ndarray

    +
    +
    Type
    +

    np.ndarray

    +
    +
    Returns
    +

    Tuple of 4 arrays describing triplets of atoms in the 3-body local +environment.

    +

    bond_array_3: Array containing the distances and relative +coordinates of atoms in the 3-body local environment. First column +contains distances, remaining columns contain Cartesian coordinates +divided by the distance (with the origin defined as the position of the +central atom). The rows are sorted by distance from the central atom.

    +

    cross_bond_inds: Two dimensional array whose row m contains the indices +of atoms n > m that are within a distance cutoff_3 of both atom n and the +central atom.

    +

    cross_bond_dists: Two dimensional array whose row m contains the +distances from atom m of atoms n > m that are within a distance cutoff_3 +of both atom n and the central atom.

    +

    triplet_counts: One dimensional array of integers whose entry m is the +number of atoms that are within a distance cutoff_3 of atom m.

    +

    +
    +
    Return type
    +

    (np.ndarray, np.ndarray, np.ndarray, np.ndarray)

    +
    +
    +
    + +
    +
    +flare.utils.env_getarray.get_m2_body_arrays(positions, atom: int, cell, r_cut, manybody_cutoff_list, species, sweep: numpy.ndarray, nspec, spec_mask, manybody_mask, cutoff_func=numba.njit)
    +
    +
    Parameters
    +
      +
    • positions (np.ndarray) – Positions of atoms in the structure.

    • +
    • atom (int) – Index of the central atom of the local environment.

    • +
    • cell (np.ndarray) – 3x3 array whose rows are the Bravais lattice vectors of the +cell.

    • +
    • manybody_cutoff_list (float) – 2-body cutoff radius.

    • +
    • species (np.ndarray) – Numpy array of species represented by their atomic numbers.

    • +
    +
    +
    Returns
    +

    Tuple of arrays describing pairs of atoms in the 2-body local +environment.

    +
    +
    +
    + +
    +
    +flare.utils.env_getarray.get_m3_body_arrays(positions, atom: int, cell, cutoff: float, species, sweep, cutoff_func=numba.njit)
    +

    Note: here we assume the cutoff is not too large, +i.e., 2 * cutoff < cell_size

    +
    + +
    +
    +flare.utils.env_getarray.q3_value_mc(distances, cross_bond_inds, cross_bond_dists, triplets, r_cut, species_list, etypes, 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

    • +
    • etypes (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

    +
    +
    +
    +
    diff --git a/flare/utils/mask_helper.html b/flare/utils/mask_helper.html index 20de1fa8c..3d65f226c 100644 --- a/flare/utils/mask_helper.html +++ b/flare/utils/mask_helper.html @@ -95,9 +95,417 @@
    -
    -

    Advanced Hyperparameters Set Up

    -
    +
    +

    Advanced Hyperparameters Set Up

    +

    For multi-component systems, the configurational space can be highly complicated. +One may want to use different hyper-parameters and cutoffs for different interactions, +or do constraint optimisation for hyper-parameters.

    +

    To use more hyper-parameters, we need special kernel function that can differentiate different +pairs, triplets and other descriptors and determine which number to use for what interaction.

    +

    This kernel can be enabled by using the hyps_mask argument of the GaussianProcess class. +It contains multiple arrays to describe how to break down the array of hyper-parameters and +apply them when computing the kernel. Detail descriptions of this argument can be seen in +kernel/mc_sephyps.py.

    +

    The ParameterHelper class is to generate the hyps_mask with a more human readable interface.

    +

    Example:

    +
    >>> pm = ParameterHelper(species=['C', 'H', 'O'],
    +...                      kernels={'twobody':[['*', '*'], ['O','O']],
    +...                      'threebody':[['*', '*', '*'],
    +...                          ['O','O', 'O']]},
    +...                      parameters={'twobody0':[1, 0.5, 1], 'twobody1':[2, 0.2, 2],
    +...                            'threebody0':[1, 0.5], 'threebody1':[2, 0.2],
    +...                            'cutoff_threebody':1},
    +...                      constraints={'twobody0':[False, True]})
    +>>> hm = pm.as_dict()
    +>>> kernels = hm['kernels']
    +>>> gp_model = GaussianProcess(kernels=kernels,
    +...                            hyps=hyps, hyps_mask=hm)
    +
    +
    +

    In this example, four atomic species are involved. There are many kinds +of twobodys and threebodys. But we only want to use eight different signal variance +and length-scales.

    +

    In order to do so, we first define all the twobodys to be group “twobody0”, by +listing “-” as the first element in the twobody argument. The second +element O-O is then defined to be group “twobody1”. Note that the order +matters here. The later element overrides the ealier one. If +twobodys=[[‘O’, ‘O’], [‘*’, ‘*’]], then all twobodys belong to group “twobody1”.

    +

    Similarly, O-O-O is defined as threebody1, while all remaining ones +are left as threebody0.

    +

    The hyperpameters for each group is listed in the order of +[sig, ls, cutoff] in the parameters argument. So in this example, +O-O interaction will use [2, 0.2, 2] as its sigma, length scale, and +cutoff.

    +

    For threebody, the parameter arrays only come with two elements. So there +is no cutoff associated with threebody0 or threebody1; instead, a universal +cutoff is used, which is defined as ‘cutoff_threebody’.

    +

    The constraints argument define which hyper-parameters will be optimized. +True for optimized and false for being fixed.

    +

    Here are a couple more simple examples.

    +

    Define a 5-parameter 2+3 kernel (1, 0.5, 1, 0.5, 0.05)

    +
    >>> pm = ParameterHelper(kernels=['twobody', 'threebody'],
    +...                     parameters={'sigma': 1,
    +...                                 'lengthscale': 0.5,
    +...                                 'cutoff_twobody': 2,
    +...                                 'cutoff_threebody': 1,
    +...                                 'noise': 0.05})
    +
    +
    +

    Define a 5-parameter 2+3 kernel (1, 1, 1, 1, 0.05)

    +
    >>> pm = ParameterHelper(kernels=['twobody', 'threebody'],
    +...                      parameters={'cutoff_twobody': 2,
    +...                                  'cutoff_threebody': 1,
    +...                                  'noise': 0.05},
    +...                      ones=ones,
    +...                      random=not ones)
    +
    +
    +

    Define a 9-parameter 2+3 kernel

    +
    >>> pm = ParameterHelper()
    +>>> pm.define_group('specie', 'O', ['O'])
    +>>> pm.define_group('specie', 'rest', ['C', 'H'])
    +>>> pm.define_group('twobody', '**', ['*', '*'])
    +>>> pm.define_group('twobody', 'OO', ['O', 'O'])
    +>>> pm.define_group('threebody', '***', ['*', '*', '*'])
    +>>> pm.define_group('threebody', 'Oall', ['O', 'O', 'O'])
    +>>> pm.set_parameters('**', [1, 0.5])
    +>>> pm.set_parameters('OO', [1, 0.5])
    +>>> pm.set_parameters('Oall', [1, 0.5])
    +>>> pm.set_parameters('***', [1, 0.5])
    +>>> pm.set_parameters('cutoff_twobody', 5)
    +>>> pm.set_parameters('cutoff_threebody', 4)
    +
    +
    +

    See more examples in functions ParameterHelper.define_group , ParameterHelper.set_parameters, +and in the tests tests/test_parameters.py

    +

    If you want to add in a new hyperparameter set to an already-existing GP, you can perform the +following steps:

    +

    >> hyps_mask = pm.as_dict() +>> hyps = hyps_mask[‘hyps’] +>> kernels = hyps_mask[‘kernels’] +>> gp_model.update_kernel(kernels, ‘mc’, hyps_mask) +>> gp_model.hyps = hyps

    +
    +
    +class flare.utils.parameter_helper.ParameterHelper(hyps_mask=None, species=None, kernels={}, cutoff_groups={}, parameters=None, constraints={}, allseparate=False, random=False, ones=False, verbose='WARNING')
    +

    A helper class to construct the hyps_mask dictionary for AtomicEnvironment +, GaussianProcess and MappedGaussianProcess

    +
    +
    Parameters
    +
      +
    • hyps_mask (dict) – Not implemented yet

    • +
    • species (dict, list) – Define specie groups

    • +
    • kernels (dict, list) – Define kernels and groups for the kernels

    • +
    • cutoff_groups (dict) – Define different cutoffs for different species

    • +
    • parameters (dict) – Define signal variance, length scales, and cutoffs

    • +
    • constraints (dict) – If listed as False, the cooresponding hyperparmeters +will not be trained

    • +
    • allseparate (bool) – If True, define each type pair/triplet into a +separate group.

    • +
    • random (bool) – If True, randomized all signal variances and lengthscales

    • +
    • one (bool) – If True, set all signal variances and lengthscales to one

    • +
    • verbose (str) – Level to print with “ERROR”, “WARNING”, “INFO”, “DEBUG”

    • +
    +
    +
    +
      +
    • the species is an optional input. It can be left as None if the user only wants +to set up one group of hyper-parameters for each kernel.

    • +
    • the kernels can be defined along with or without groups. But the later mode +is not compatible with the allseparate flag.

      +
      >>> kernels=['twobody', 'threebody'],
      +
      +
      +

      or

      +
      >>> kernels={'twobody':[['*', '*'], ['O','O']],
      +...          'threebody':[['*', '*', '*'],
      +...                       ['O','O', 'O']]},
      +
      +
      +

      Current options for the kernels are twobody, threebody and manybody (based on coordination number).

      +
    • +
    • See format of species, kernels (dict), and cutoff_groups in list_groups() function.

    • +
    • See format of parameters and constraints in list_parameters() function.

    • +
    +
    +
    +all_separate_groups(group_type)
    +

    Separate all possible types of twobodys, threebodys, manybody. +One type per group.

    +
    +
    Parameters
    +

    group_type (str) – “specie”, “twobody”, “threebody”, “cut3b”, “manybody”

    +
    +
    +
    + +
    +
    +as_dict()
    +

    Dictionary representation of the mask. The output can be used for AtomicEnvironment +or the GaussianProcess

    +
    + +
    +
    +define_group(group_type, name, element_list, parameters=None, atomic_str=False)
    +

    Define specie/twobody/threebody/3b cutoff/manybody group

    +
    +
    Parameters
    +
      +
    • group_type (str) – “specie”, “twobody”, “threebody”, “cut3b”, “manybody”

    • +
    • name (str) – the name use for indexing. can be anything but “*”

    • +
    • element_list (list) – list of elements

    • +
    • parameters (list) – corresponding parameters for this group

    • +
    • atomic_str (bool) – whether the elements in element_list are +specified by group names or periodic table element names.

    • +
    +
    +
    +

    The function is helped to define different groups for specie/twobody/threebody +/3b cutoff/manybody terms. This function can be used for many times. +The later one always overrides the former one.

    +

    The name of the group has to be unique string (but not “*”), that +define a group of species or twobodys, etc. If the same name is used, +in two function calls, the definitions of the group will be merged. +Both calls will be effective.

    +

    element_list has to be a list of atomic elements, or a list of +specie group names (which should be defined in previous calls), or “*”. +“*” will loop the function over all previously defined species. +It has to be two elements for twobody/3b cutoff/manybody term, or +three elements for threebody. For specie group definition, it can be +as many elements as you want.

    +

    If multiple define_group calls have conflict with element, the later one +has higher priority. For example, twobody 1-2 are defined as group1 in +the first call, and as group2 in the second call. In the end, the twobody +will be left as group2.

    +

    Example 1:

    +
    >>> define_group('specie', 'water', ['H', 'O'])
    +>>> define_group('specie', 'salt', ['Cl', 'Na'])
    +
    +
    +

    They define H and O to be group water, and Na and Cl to be group salt.

    +

    Example 2.1:

    +
    >>> define_group('twobody', 'in-water', ['H', 'H'], atomic_str=True)
    +>>> define_group('twobody', 'in-water', ['H', 'O'], atomic_str=True)
    +>>> define_group('twobody', 'in-water', ['O', 'O'], atomic_str=True)
    +
    +
    +

    Example 2.2:

    +
    >>> define_group('twobody', 'in-water', ['water', 'water'])
    +
    +
    +

    The 2.1 is equivalent to 2.2.

    +

    Example 3.1:

    +
    >>> define_group('specie', '1', ['H'])
    +>>> define_group('specie', '2', ['O'])
    +>>> define_group('twobody', 'Hgroup', ['H', 'H'], atomic_str=True)
    +>>> define_group('twobody', 'Hgroup', ['H', 'O'], atomic_str=True)
    +>>> define_group('twobody', 'OO', ['O', 'O'], atomic_str=True)
    +
    +
    +

    Example 3.2:

    +
    >>> define_group('specie', '1', ['H'])
    +>>> define_group('specie', '2', ['O'])
    +>>> define_group('twobody', 'Hgroup', ['H', '*'], atomic_str=True)
    +>>> define_group('twobody', 'OO', ['O', 'O'], atomic_str=True)
    +
    +
    +

    Example 3.3:

    +
    >>> list_groups('specie', ['H', 'O'])
    +>>> define_group('twobody', 'Hgroup', ['H', '*'])
    +>>> define_group('twobody', 'OO', ['O', 'O'])
    +
    +
    +

    Example 3.4:

    +
    >>> list_groups('specie', ['H', 'O'])
    +>>> define_group('twobody', 'OO', ['*', '*'])
    +>>> define_group('twobody', 'Hgroup', ['H', '*'])
    +
    +
    +

    3.1 to 3.4 are all equivalent.

    +
    + +
    +
    +fill_in_parameters(group_type, random=False, ones=False, universal=False)
    +

    Separate all possible types of twobodys, threebodys, manybody. +One type per group. And fill in either universal ls and sigma from +pre-defined parameters from set_parameters(“sigma”, ..) and set_parameters(“ls”, ..) +or random parameters if random is True.

    +
    +
    Parameters
    +
      +
    • group_type (str) – “specie”, “twobody”, “threebody”, “cut3b”, “manybody”

    • +
    • definition_list (list, dict) – list of elements

    • +
    +
    +
    +
    + +
    +
    +find_group(group_type, element_list, atomic_str=False)
    +

    find the group that contains the input pair

    +
    +
    Parameters
    +
      +
    • group_type (str) – species, twobody, threebody, cut3b, manybody

    • +
    • element_list (list) – list of elements for a pair/triplet/coordination-pair

    • +
    • atomic_str (bool) – whether the elements in element_list are +specified by group names or periodic table element names.

    • +
    +
    +
    Return type
    +

    name (str)

    +
    +
    +
    + +
    +
    +static from_dict(hyps_mask, verbose=False, init_spec=[])
    +

    convert dictionary mask to HM instance +This function is not tested yet

    +
    + +
    +
    +list_groups(group_type, definition_list)
    +

    define groups in batches.

    +
    +
    Parameters
    +
      +
    • group_type (str) – “specie”, “twobody”, “threebody”, “cut3b”, “manybody”

    • +
    • definition_list (list, dict) – list of elements

    • +
    +
    +
    +

    This function runs define_group in batch. Please first read +the manual of define_group.

    +

    If the definition_list is a list, it is equivalent to +executing define_group through the definition_list.

    +
    >>> for all terms in the list:
    +>>>     define_group(group_type, group_type+'n', the nth term in the list)
    +
    +
    +

    So the first twobody defined will be group twobody0, second one will be +group twobody1. For specie, it will define all the listed elements as +groups with only one element with their original name.

    +

    If the definition_list is a dictionary, it is equivalent to

    +
    >>> for k, v in the dict:
    +>>>     define_group(group_type, k, v)
    +
    +
    +

    It is not recommended to use the dictionary mode, especially when +the group definitions are conflicting with each other. There is no +guarantee that the priority order is the same as you want.

    +

    Unlike ParameterHelper.define_group(), it can only be called once for each +group_type, and not after any ParameterHelper.define_group() calls.

    +
    + +
    +
    +list_parameters(parameter_dict: dict, constraints: dict = {})
    +

    Define many groups of parameters

    +
    +
    Parameters
    +
      +
    • parameter_dict (dict) – dictionary of all parameters

    • +
    • constraints (dict) – dictionary of all constraints

    • +
    +
    +
    +

    Example:

    +
    >>> parameter_dict={"group_name":[sig, ls, cutoffs], ...}
    +>>> constraints={"group_name":[True, False, False], ...}
    +
    +
    +

    The name of parameters can be the group name previously defined in +define_group or list_groups function. Aside from the group name, +noise, cutoff_twobody, cutoff_threebody, and +cutoff_manybody are reserved for noise parmater +and universal cutoffs, while sigma and lengthscale are +reserved for universal signal variances and length scales.

    +

    For non-reserved keys, the value should be a list of 2 to 3 elements, +corresponding to the sigma, lengthscale and cutoff (if the third one +is defined). For reserved keys, the value should be a float number.

    +

    The parameter_dict and constraints should use the same set of keys. +If a key in constraints is not used in parameter_dict, it will be ignored.

    +

    The value in the constraints can be either a single bool, which apply +to all parameters, or list of bools that apply to each parameter.

    +
    + +
    +
    +set_constraints(name, opt)
    +

    Set the parameters for certain group

    +
    +
    Parameters
    +
      +
    • name (str) – name of the patermeters

    • +
    • opt (bool, list) – whether to optimize the parameter or not

    • +
    +
    +
    +

    The name of parameters can be the group name previously defined in +define_group or list_groups function. Aside from the group name, +noise, cutoff_twobody, cutoff_threebody, and +cutoff_manybody are reserved for noise parmater +and universal cutoffs, while sigma and lengthscale are +reserved for universal signal variances and length scales.

    +

    The optimization flag can be a single bool, which apply to all +parameters under that name, or list of bools that apply to each +parameter.

    +
    + +
    +
    +set_parameters(name, parameters, opt=True)
    +

    Set the parameters for certain group

    +
    +
    Parameters
    +
      +
    • name (str) – name of the patermeters

    • +
    • parameters (list) – the sigma, lengthscale, and cutoff of each group.

    • +
    • opt (bool, list) – whether to optimize the parameter or not

    • +
    +
    +
    +

    The name of parameters can be the group name previously defined in +define_group or list_groups function. Aside from the group name, +noise, cutoff_twobody, cutoff_threebody, and +cutoff_manybody are reserved for noise parmater +and universal cutoffs, while sigma and lengthscale are +reserved for universal signal variances and length scales.

    +

    The parameter should be a list of 2-3 elements, for sigma, +lengthscale (and cutoff if the third one is defined).

    +

    The optimization flag can be a single bool, which apply to all +parameters, or list of bools that apply to each parameter.

    +
    + +
    +
    +summarize_group(group_type)
    +

    Sort and combine all the previous definition to internal varialbes

    +
    +
    Parameters
    +

    group_type (str) – species, twobody, threebody, cut3b, manybody

    +
    +
    +
    + +
    + +
    +
    +flare.utils.parameter_helper.nprandom()
    +

    random(size=None)

    +

    Return random floats in the half-open interval [0.0, 1.0). Alias for +random_sample to ease forward-porting to the new random API.

    +
    + +
    diff --git a/flare/utils/utils.html b/flare/utils/utils.html index bc523ef20..6e9b6f91e 100644 --- a/flare/utils/utils.html +++ b/flare/utils/utils.html @@ -102,6 +102,19 @@

    UtilityConstruct Atomic Environment

    +

    Utility functions for various tasks.

    +
    +
    +class flare.utils.NumpyEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)
    +

    Special json encoder for numpy types for serialization +use as

    +

    json.loads(… cls = NumpyEncoder)

    +

    or:

    +

    json.dumps(… cls = NumpyEncoder)

    +

    Thanks to StackOverflow users karlB and fnunnari, who contributed this from: +https://stackoverflow.com/a/47626762

    +
    +
    diff --git a/genindex.html b/genindex.html index 630b45b61..36a0cd8fd 100644 --- a/genindex.html +++ b/genindex.html @@ -80,14 +80,64 @@

    Index

    - B + A + | B | C | D + | E + | F + | G + | H + | I | K + | L + | M | N + | O + | P + | Q + | R | S + | T + | U + | V + | W
    +

    A

    + + + +
    +

    B

    - +
    @@ -127,6 +183,22 @@

    B

    C

    - +
    @@ -163,6 +255,8 @@

    C

    D

    +

    E

    + + + +
    + +

    F

    + + + +
    + +

    G

    + + + +
    + +

    H

    + + +
    + +

    I

    + + + +
    +

    K

    +
    + +

    L

    + + + +
    + +

    M

    + + +
    @@ -289,12 +878,12 @@

    N

  • NormalizedDotProduct::envs_struc_grad (C++ function)
  • - - + + + +

    O

    + + + +
    + +

    P

    + + + +
    + +

    Q

    + + + +
    + +

    R

    + + +
    @@ -317,6 +1034,20 @@

    N

    S

    +
    + +

    T

    + + + +
    + +

    U

    + + + +
    + +

    V

    + + +
    + +

    W

    + + +
    diff --git a/index.html b/index.html index 064a77833..9bd8e47a8 100644 --- a/index.html +++ b/index.html @@ -156,7 +156,10 @@

    ContentsBayesian Active Learning diff --git a/objects.inv b/objects.inv index e336e2db9d359d0b52b7ba405de2b89c0d1885f1..02fc688ae32dd90f35b0a31326d42e2d13cb1ad4 100644 GIT binary patch literal 23111 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 W2A_JUgJDN?v!KpB-2XrH){-Yo3JzZY diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 000000000..d67202f88 --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,269 @@ + + + + + + Python Module Index — flare 1.4.0 documentation + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + +

    Python Module Index

    + +
    + f +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + f
    + flare +
        + flare.bffs.gp.calculator +
        + flare.bffs.gp.gp +
        + flare.bffs.gp.gp_algebra +
        + flare.bffs.gp.predict +
        + flare.bffs.mgp.mgp +
        + flare.bffs.mgp.splines_methods +
        + flare.bffs.sgp.calculator +
        + flare.bffs.sgp.sparse_gp +
        + flare.descriptors.env +
        + flare.io.otf_parser +
        + flare.io.output +
        + flare.kernels.cutoffs +
        + flare.kernels.kernels +
        + flare.kernels.mc_3b_sepcut +
        + flare.kernels.mc_mb_sepcut +
        + flare.kernels.mc_sephyps +
        + flare.kernels.mc_simple +
        + flare.kernels.sc +
        + flare.learners.gp_from_aimd +
        + flare.learners.otf +
        + flare.learners.utils +
        + flare.md.fake +
        + flare.md.lammps +
        + flare.md.nosehoover +
        + flare.utils +
        + flare.utils.env_getarray +
        + flare.utils.parameter_helper +
        + flare.utils.parameters +
    + + +
    +
    +
    + +
    + +
    +

    © Copyright 2021, Jonathan Vandermause, Yu Xie, Anders Johansson, Cameron Owen.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js index ed20454f0..7f212db3d 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["citing", "contribute/contribute", "contribute/standards", "contribute/workflow", "faqs", "flare/bffs/bffs", "flare/bffs/gp/calculator", "flare/bffs/gp/gp", "flare/bffs/gp/gp_algebra", "flare/bffs/gp/predict", "flare/bffs/mgp/formulas", "flare/bffs/mgp/mgp", "flare/bffs/mgp/splines_methods", "flare/bffs/sgp/calculator", "flare/bffs/sgp/sgp", "flare/descriptors/descriptors", "flare/descriptors/env", "flare/flare", "flare/io/io", "flare/io/otf_parser", "flare/io/output", "flare/kernels/cutoffs", "flare/kernels/helper", "flare/kernels/kernels", "flare/kernels/mc_sephyps", "flare/kernels/mc_simple", "flare/kernels/sc", "flare/learners/gp_from_aimd", "flare/learners/learners", "flare/learners/lmpotf", "flare/learners/otf", "flare/learners/utils", "flare/md/fake", "flare/md/lammps", "flare/md/md", "flare/md/nosehoover", "flare/utils/env_getarray", "flare/utils/mask_helper", "flare/utils/utils", "flare_pp/bffs", "flare_pp/descriptors", "flare_pp/flare_pp", "flare_pp/kernels", "flare_pp/structure", "index", "installation/install", "installation/installation", "installation/lammps", "related", "tutorials/after_training", "tutorials/colabs", "tutorials/gpfa", "tutorials/tutorials"], "filenames": ["citing.rst", "contribute/contribute.rst", "contribute/standards.rst", "contribute/workflow.rst", "faqs.rst", "flare/bffs/bffs.rst", "flare/bffs/gp/calculator.rst", "flare/bffs/gp/gp.rst", "flare/bffs/gp/gp_algebra.rst", "flare/bffs/gp/predict.rst", "flare/bffs/mgp/formulas.ipynb", "flare/bffs/mgp/mgp.rst", "flare/bffs/mgp/splines_methods.rst", "flare/bffs/sgp/calculator.rst", "flare/bffs/sgp/sgp.rst", "flare/descriptors/descriptors.rst", "flare/descriptors/env.rst", "flare/flare.rst", "flare/io/io.rst", "flare/io/otf_parser.rst", "flare/io/output.rst", "flare/kernels/cutoffs.rst", "flare/kernels/helper.rst", "flare/kernels/kernels.rst", "flare/kernels/mc_sephyps.rst", "flare/kernels/mc_simple.rst", "flare/kernels/sc.rst", "flare/learners/gp_from_aimd.rst", "flare/learners/learners.rst", "flare/learners/lmpotf.rst", "flare/learners/otf.rst", "flare/learners/utils.rst", "flare/md/fake.rst", "flare/md/lammps.rst", "flare/md/md.rst", "flare/md/nosehoover.rst", "flare/utils/env_getarray.rst", "flare/utils/mask_helper.rst", "flare/utils/utils.rst", "flare_pp/bffs.rst", "flare_pp/descriptors.rst", "flare_pp/flare_pp.rst", "flare_pp/kernels.rst", "flare_pp/structure.rst", "index.rst", "installation/install.rst", "installation/installation.rst", "installation/lammps.rst", "related.rst", "tutorials/after_training.ipynb", "tutorials/colabs.rst", "tutorials/gpfa.rst", "tutorials/tutorials.rst"], "titles": ["How to Cite", "How To Contribute", "Code Standards", "Git Workflow", "Frequently Asked Questions", "Bayesian Force Fields", "FLARE ASE Calculator", "Gaussian Process Force Fields", "Helper functions for GP", "Predict", "Formulation of Mapped Gaussian Process", "Mapped Gaussian Process", "Splines Methods", "ASE Calculator of Sparse GP", "Sparse Gaussian Process Force Fields", "Descriptors", "Atomic Environments", "Python Code Documentation", "File Input and Output", "OTF Parser", "Output", "Cutoff Functions", "Helper Functions", "Kernels", "Multi-element Kernels (Separate Parameters)", "Multi-element Kernels (simple)", "Single-element Kernels", "GP From AIMD", "Bayesian Active Learning", "On-the-Fly Training in LAMMPS", "On-the-Fly Training", "Conditions to add training data", "Fake MD", "LAMMPS Calculator and MD", "ASE MD Engine", "NoseHoover (NVT Ensemble)", "Construct Atomic Environment", "Advanced Hyperparameters Set Up", "Utility", "Bayesian force fields", "Descriptors", "C++ Code Documentation", "Kernels", "Structures", "FLARE: Fast Learning of Atomistic Rare Events", "Installation of FLARE", "Installation", "Compile LAMMPS with FLARE", "Applications/Gallery", "Build 2+3-body Mapped GP", "FLARE: Active Learning Bayesian Force Fields", "Training a 2+3-body Gaussian Process from an AIMD Run", "Tutorials"], "terms": {"If": [0, 3, 4, 45, 47, 48, 51], "you": [0, 2, 3, 4, 45, 47, 48, 49, 50, 51], "us": [0, 2, 3, 10, 32, 43, 44, 45, 47, 48, 49, 50, 51], "flare": [0, 2, 3, 5, 7, 17, 34, 46, 48, 49, 51, 52], "includ": [0, 4, 34, 45, 49, 50, 51], "b2": [0, 40, 47], "descriptor": [0, 4, 17, 41, 43, 44, 47, 50], "normalizeddotproduct": [0, 42, 47], "kernel": [0, 10, 17, 39, 41, 44, 47, 49, 50, 51], "spars": [0, 4, 5, 17, 44, 46, 50], "gp": [0, 4, 5, 7, 10, 14, 17, 28, 32, 44, 45, 50, 51, 52], "pleas": [0, 2, 3, 4, 23, 45, 48, 49], "follow": [0, 2, 3, 4, 45, 47, 49, 51], "paper": 0, "1": [0, 4, 10, 39, 43, 44, 45, 47, 48, 49, 52], "vandermaus": [0, 10, 23, 48], "j": [0, 10, 40, 45, 47, 48], "xie": [0, 10, 48], "y": [0, 4, 10, 39, 45], "lim": [0, 48], "": [0, 2, 4, 34, 43, 44, 46, 47, 51], "owen": [0, 48], "c": [0, 44, 45], "kozinski": [0, 48], "b": [0, 3, 10, 45, 48], "2021": [0, 48], "activ": [0, 10, 17, 32, 44, 45, 48, 52], "learn": [0, 10, 17, 32, 48, 52], "reactiv": [0, 48], "bayesian": [0, 10, 17, 41, 44, 48, 52], "forc": [0, 3, 4, 10, 17, 32, 41, 43, 44, 48, 51, 52], "field": [0, 10, 17, 41, 44, 48, 52], "applic": [0, 44], "heterogen": [0, 48], "hydrogen": [0, 48], "platinum": [0, 48], "catalysi": [0, 48], "dynam": [0, 48, 50, 51], "natur": [0, 51], "commun": [0, 48], "13": 0, "2022": [0, 48], "5183": 0, "http": [0, 3, 45, 47, 51], "www": 0, "com": [0, 3, 45, 47], "articl": 0, "s41467": 0, "022": 0, "32294": 0, "0": [0, 4, 39, 40, 42, 43, 45, 51], "workflow": [0, 1, 44], "full": [0, 44, 46, 47, 51], "gaussian": [0, 5, 17, 44, 46, 50, 52], "process": [0, 5, 17, 44, 46, 47, 50, 52], "2": [0, 4, 10, 23, 44, 45, 47, 50, 52], "bodi": [0, 10, 23, 44, 47, 48, 50, 52], "3": [0, 3, 4, 10, 23, 44, 45, 47, 50, 52], "your": [0, 2, 3, 4, 44, 45, 47, 48, 49, 50, 52], "research": [0, 48], "torrisi": [0, 48, 51], "batzner": [0, 48], "sun": [0, 48], "l": [0, 10], "kolpak": [0, 48], "A": [0, 47, 48, 50, 51], "m": [0, 10, 48], "On": [0, 10, 17, 28, 44, 48], "fly": [0, 10, 17, 28, 44, 48, 49, 50], "interpret": [0, 10, 48], "atomist": [0, 10, 48], "rare": [0, 10, 48], "event": [0, 10, 48], "npj": [0, 10, 48], "comput": [0, 10, 45, 48, 49, 50], "mater": 0, "6": [0, 10, 48, 49], "20": [0, 4, 49], "2020": [0, 10, 48], "doi": 0, "org": [0, 47], "10": [0, 4, 10, 48], "1038": 0, "s41524": 0, "020": 0, "0283": 0, "z": 0, "lammp": [0, 4, 17, 28, 34, 44, 46, 50, 51, 52], "pair": [0, 40, 44, 47, 50, 52], "style": [0, 2, 44, 47, 50, 52], "mgp": [0, 10, 44, 52], "map": [0, 5, 17, 44, 47, 52], "et": [0, 10, 23], "al": [0, 10, 23], "from": [0, 1, 4, 10, 17, 28, 32, 44, 45, 47, 48, 50, 52], "simul": [0, 44, 47, 48, 49], "inter": [0, 4, 10, 48], "dimension": [0, 10, 48], "transform": [0, 10, 48], "stanen": [0, 10, 48], "7": [0, 48, 51], "40": 0, "021": 0, "00510": 0, "pylammp": [0, 4], "train": [0, 4, 10, 17, 28, 32, 34, 44, 45, 49, 50, 52], "4": [0, 10, 47, 49], "ramak": [0, 48], "protik": [0, 48], "n": [0, 10, 43], "h": [0, 45, 48], "johansson": [0, 47, 48], "uncertainti": [0, 4, 11, 48, 50, 51], "awar": [0, 48, 50], "molecular": [0, 48, 50, 51], "phase": [0, 48], "thermal": [0, 48, 50], "transport": [0, 48, 50], "sic": [0, 48], "9": [0, 45], "36": 0, "2023": [0, 48], "kokko": [0, 44, 46], "gpu": [0, 44, 46], "acceler": [0, 44, 46, 49], "5": [0, 3, 49, 51], "soo": [0, 48], "micron": [0, 48], "scale": [0, 10, 48, 51], "first": [0, 4, 43, 45, 48, 49, 51], "principl": [0, 10, 48], "arxiv": [0, 10, 48], "preprint": [0, 10, 48], "2204": 0, "12573": 0, "thank": 0, "git": [1, 44, 45, 47], "gener": [1, 2, 4, 44, 47], "master": [1, 44], "develop": [1, 2, 44, 46], "topic": [1, 44], "branch": [1, 2, 44], "push": [1, 2, 44], "chang": [1, 2, 44, 47], "mir": [1, 44, 45], "repo": [1, 44, 45], "directli": [1, 10, 44, 49], "fork": [1, 44], "code": [1, 3, 44, 45, 50, 51], "standard": [1, 44], "pep": [1, 44], "8": [1, 44, 45, 49], "docstr": [1, 44], "test": [1, 3, 4, 44, 46, 49, 50, 51], "befor": [2, 3, 4, 45, 51], "make": [2, 3, 4, 45, 47], "sure": [2, 3, 4, 45], "respect": [2, 51], "run": [2, 4, 32, 44, 45, 46, 50, 52], "through": [2, 45, 51], "pylint": 2, "check": [2, 3, 4, 45, 50], "re": [2, 3, 4, 47], "complianc": 2, "file": [2, 4, 17, 44, 45, 47, 50, 51, 52], "name": [2, 3, 45, 47, 51], "all": [2, 4, 10, 47, 50, 51], "new": [2, 3, 45], "modul": [2, 4, 32, 45, 49, 51], "class": [2, 39, 40, 42, 43, 45, 51], "method": [2, 4, 5, 11, 17, 44, 50, 51], "should": [2, 3, 4, 45, 47], "have": [2, 3, 4, 10, 45, 47, 49, 50, 51], "sphinx": 2, "describ": [2, 3, 51], "what": [2, 3, 4, 10, 51], "doe": [2, 4, 45], "its": [2, 10, 51], "input": [2, 4, 17, 44, 47, 49, 51], "ar": [2, 3, 4, 10, 43, 45, 47, 49, 51], "These": [2, 51], "automat": [2, 47, 49], "document": [2, 3, 44, 47], "so": [2, 4, 45, 49, 51], "thei": [2, 4], "clear": 2, "descript": [2, 3], "featur": [2, 3], "must": [2, 43, 47, 51], "accompani": 2, "unit": [2, 3, 4, 51], "integr": [2, 4], "written": [2, 49], "pytest": 2, "thi": [2, 3, 4, 10, 45, 47, 49, 51], "help": [2, 3, 4, 51], "ensur": [2, 4], "work": [2, 3, 4, 47], "properli": 2, "whole": 2, "easier": 2, "maintain": 2, "To": [3, 10, 44, 49], "contribut": [3, 44], "sourc": 3, "guidelin": 3, "section": [3, 49], "ani": [3, 10, 51], "command": [3, 45, 49, 51], "unfamiliar": 3, "out": [3, 4, 49, 50, 51], "chapter": [3, 4], "pro": 3, "book": 3, "pattern": 3, "creat": [3, 45, 49], "an": [3, 4, 10, 34, 44, 45, 47, 49, 52], "issu": [3, 4, 45], "github": [3, 45, 47], "want": [3, 10, 45, 47, 51], "address": 3, "see": [3, 4, 10, 47, 49, 51], "below": [3, 4, 51], "how": [3, 4, 44, 47, 48, 50, 51], "repositori": [3, 4, 47, 49], "merg": 3, "when": [3, 4, 43, 45, 47, 49, 51], "finish": 3, "close": [3, 4], "The": [3, 4, 10, 32, 43, 45, 47, 48, 49, 50, 51], "ha": [3, 4, 10, 43, 45, 47, 51], "three": [3, 49, 51], "tier": 3, "structur": [3, 4, 39, 40, 41, 42, 44, 48, 49, 51], "i": [3, 4, 10, 32, 39, 40, 43, 45, 47, 49, 50, 51], "which": [3, 4, 10, 45, 47, 51], "onli": [3, 4, 10, 44, 45, 46, 51], "battl": 3, "both": [3, 4, 10, 49, 51], "focu": 3, "specif": [3, 4, 47], "delet": 3, "onc": [3, 4, 49, 51], "can": [3, 4, 10, 32, 45, 47, 49, 50, 51], "local": [3, 4, 10, 45], "copi": [3, 45, 47], "remot": 3, "checkout": 3, "origin": 3, "write": [3, 49], "access": [3, 45], "version": [3, 4, 45, 47, 48, 49], "edit": 3, "here": [3, 48, 49, 50, 51], "step": [3, 4, 32, 44, 45, 47, 49, 52], "go": [3, 49], "up": [3, 10, 17, 38, 44, 45, 49, 52], "commit": 3, "period": [3, 43], "done": [3, 4, 45, 49, 51], "upstream": 3, "u": [3, 10, 45, 48], "pull": 3, "request": 3, "give": [3, 45, 47, 51], "ve": 3, "now": [3, 49, 51], "set": [3, 4, 10, 17, 38, 44, 45, 47, 48, 49, 52], "add": [3, 17, 28, 44, 45], "group": [3, 45], "off": [3, 45, 47, 49], "date": 3, "fetch": 3, "some": [3, 4, 51], "reason": [3, 4], "were": 3, "made": [3, 4], "alwai": 3, "reset": [3, 49], "hard": 3, "while": [3, 4, 10, 45, 47], "final": [3, 4, 45, 51], "time": [3, 4, 49, 50, 51], "ll": [3, 51], "option": [3, 44, 45, 52], "open": [3, 51], "just": 3, "page": 4, "design": [4, 51], "user": [4, 45, 49], "troubleshoot": 4, "commonli": 4, "encount": [4, 45], "perform": [4, 45, 47], "task": [4, 47], "framework": 4, "do": [4, 32, 34, 47, 48, 49, 50, 51], "mkl": [4, 44, 46], "error": [4, 45, 51], "load": [4, 45, 49, 51], "conda": [4, 45], "mkl_fft": [4, 45], "Then": [4, 10, 45, 47, 51], "pip": [4, 45], "list": [4, 43, 45, 47, 48, 51], "two": [4, 10, 47, 49, 51], "numpi": [4, 45, 49], "try": [4, 45, 47], "uninstal": [4, 45], "otherwis": [4, 47], "revert": 4, "18": [4, 10], "might": [4, 47], "also": [4, 45, 47, 51], "fix": [4, 10], "enjoi": 4, "long": 4, "histori": 4, "studi": [4, 10, 48], "mani": [4, 10, 48], "excel": 4, "resourc": 4, "we": [4, 10, 32, 34, 45, 48, 49, 50, 51], "recommend": [4, 45], "One": [4, 49], "author": 4, "consult": 4, "quit": 4, "textbook": 4, "machin": [4, 10, 45, 48], "rasmussen": 4, "william": 4, "particular": 4, "being": [4, 51], "great": 4, "choos": [4, 51], "my": 4, "cutoff": [4, 10, 17, 23, 40, 43, 44, 51], "right": [4, 10], "depend": [4, 45, 51], "system": [4, 43, 47, 48, 49, 51], "ionic": 4, "often": 4, "better": [4, 10], "larger": [4, 45, 47], "dens": 4, "like": [4, 45, 47, 51], "diamond": 4, "emploi": 4, "smaller": [4, 51], "refer": [4, 11, 23], "radial": 4, "distribut": 4, "function": [4, 5, 7, 10, 17, 23, 39, 40, 42, 43, 44, 51], "atom": [4, 10, 15, 17, 38, 39, 43, 44, 47, 49, 51], "rang": [4, 49], "valu": [4, 40, 51], "examin": 4, "model": [4, 10, 44, 46, 47, 48, 50, 51, 52], "optim": [4, 51], "hyperparamet": [4, 10, 17, 38, 39, 44, 49, 51], "likelihood": [4, 51], "keep": 4, "mind": 4, "intim": 4, "coupl": [4, 34], "angular": 4, "base": [4, 48, 51], "vari": 4, "n_max": 4, "l_max": 4, "ac": [4, 48, 50], "requir": [4, 44, 46, 51], "For": [4, 23, 47, 51], "multi": [4, 17, 23, 44, 51], "compon": [4, 10, 51], "cutoff_matrix": 4, "explicit": 4, "each": [4, 40, 43, 47, 51], "speci": [4, 40, 43, 49, 51], "interact": [4, 48], "e": [4, 10, 32, 45, 47], "g": [4, 45, 47, 51], "cutoff_11": 4, "cutoff_12": 4, "cutoff_21": 4, "cutoff_22": 4, "matrix": [4, 10, 40], "popul": [4, 51], "maximum": 4, "good": 4, "strategi": 4, "import": [4, 45, 49, 51], "obtain": [4, 49], "case": [4, 45, 47, 51], "bad": 4, "choic": 4, "prior": 4, "howev": 4, "get": [4, 32, 45, 49], "slower": 4, "more": [4, 47, 49, 51], "data": [4, 10, 17, 28, 44, 45, 48, 49, 50, 51], "collect": [4, 49], "trick": 4, "mai": [4, 47, 51], "need": [4, 10, 47, 49, 51], "provid": [4, 32, 34, 49, 51], "minim": [4, 49], "There": [4, 47], "few": [4, 50, 51], "paramet": [4, 17, 23, 43, 44, 49, 51], "notic": [4, 10], "maxit": 4, "maxim": [4, 51], "number": [4, 10, 43, 45, 47, 49, 51], "iter": [4, 51], "usual": [4, 47], "prevent": 4, "too": [4, 10], "unstabl": 4, "rais": 4, "converg": 4, "within": [4, 10, 45], "train_hyp": 4, "dft": [4, 32], "call": [4, 45, 51], "whererin": 4, "initi": [4, 43, 45, 51], "10th": 4, "sinc": [4, 10, 49, 51], "observ": [4, 10], "stabl": 4, "oppos": 4, "std_tolerance_factor": 4, "predict": [4, 5, 7, 10, 17, 43, 44, 45, 51], "abov": [4, 10, 45, 47, 49, 51], "threshold": 4, "defin": [4, 10, 51], "rel": [4, 51], "mean": [4, 43, 51], "default": [4, 40, 42, 43, 47, 51], "In": [4, 10, 32, 45, 47, 51], "01": [4, 51], "05": 4, "etc": [4, 45, 47, 49], "desir": [4, 51], "lower": [4, 49, 51], "update_threshold": 4, "ad": [4, 51], "surpass": 4, "found": [4, 45, 47], "decent": 4, "environ": [4, 10, 15, 17, 38, 40, 44, 45, 47, 49, 51], "addit": 4, "sever": 4, "everi": [4, 47, 49, 51], "closer": 4, "where": [4, 10, 40, 43, 45, 47], "ineffici": 4, "complex": [4, 48], "why": 4, "small": [4, 10, 51], "perturb": 4, "start": 4, "perfect": 4, "lattic": [4, 43, 50], "random": 4, "posit": [4, 43, 49], "symmetri": 4, "crystal": 4, "broken": 4, "accomplish": 4, "jitter": 4, "flag": [4, 47], "yaml": [4, 50, 51], "script": [4, 45, 47, 50], "angstrom": [4, 51], "highli": 4, "symmetr": 4, "thu": [4, 49], "zero": 4, "look": [4, 47], "same": 4, "similar": [4, 47, 51], "numer": 4, "stabil": 4, "temperatur": 4, "unreason": 4, "high": [4, 45, 51], "signal": [4, 51], "energi": [4, 11, 43, 48, 49, 50], "configur": [4, 50, 51], "relax": 4, "trajectori": [4, 32, 49, 51], "minima": 4, "yield": 4, "lead": [4, 45], "instabl": 4, "veloc": 4, "light": 4, "reduc": [4, 47], "timestep": 4, "enhanc": 4, "know": [4, 48], "It": 4, "analysi": [4, 10], "complet": [4, 49, 51], "ey": 4, "pressur": 4, "marker": 4, "sens": 4, "stop": 4, "ceas": 4, "becom": 4, "mae": [4, 51], "stress": [4, 43, 49], "indic": [4, 51], "approach": 4, "given": [4, 32], "accuraci": 4, "remain": 4, "low": [4, 10, 51], "throughout": 4, "entir": 4, "alter": 4, "condit": [4, 17, 28, 44], "under": [4, 45], "decreas": 4, "happen": 4, "assertionerror": 4, "assert": 4, "np": [4, 45, 47, 49], "allclos": 4, "lmp_energi": 4, "gp_energi": 4, "appear": 4, "saniti": 4, "disagr": 4, "enough": 4, "result": [4, 51], "unphys": 4, "explos": 4, "increas": 4, "bound": [4, 49], "select": [4, 51], "typic": [4, 47], "fine": [4, 51], "calcul": [4, 5, 7, 14, 17, 32, 34, 44, 45, 49, 50], "frame": [4, 32, 44, 52], "track": 4, "order": [4, 43, 47, 51], "appropri": 4, "evalu": 4, "success": 4, "most": [4, 47], "immedi": 4, "assess": 4, "avail": [4, 45, 47, 50, 51], "physic": [4, 10, 48], "nois": [4, 49, 51], "actual": [4, 45], "labl": 4, "depth": [4, 47], "analys": 4, "pariti": 4, "plot": 4, "engin": [4, 17, 44], "compat": 4, "our": [4, 23, 49, 51], "ASE": [4, 5, 7, 14, 17, 44, 49, 51], "well": [4, 51], "without": 4, "dive": 4, "benchmark": [4, 48], "quantif": 4, "capabl": 4, "determin": [4, 43], "whether": [4, 45], "oper": 4, "domain": [4, 10], "exampl": [4, 10, 49, 51], "uncertianti": 4, "elsewher": 4, "misbehav": 4, "influenc": 4, "after": [4, 10, 45, 49, 51], "build": [4, 10, 44, 45, 47, 52], "match": 4, "present": [4, 51], "coeffici": [4, 44, 52], "mass": [4, 49], "assign": [4, 40], "non": [4, 47], "either": 4, "visual": 4, "inspect": 4, "via": [4, 48, 51], "implement": 4, "aggress": 4, "prompt": 4, "toggl": 4, "thermostat": 4, "damp": 4, "factor": 4, "relat": 4, "next": [4, 32, 49, 51], "point": [4, 10, 49], "upon": 4, "built": 4, "conjug": 4, "gradient": 4, "descent": 4, "drastic": 4, "helper": [5, 7, 17, 23, 44], "spline": [5, 10, 11, 17, 44], "formul": [5, 11, 17, 44], "take": [10, 50], "simplic": [10, 51], "explan": [10, 49], "denot": [10, 43, 51], "rho_i": 10, "consist": 10, "center": 10, "whose": [10, 43], "neighbor": [10, 43, 47], "certain": 10, "regress": 10, "begin": [10, 47, 51], "align": 10, "sum_": 10, "p": 10, "q": 10, "rho_j": 10, "tild": 10, "k": [10, 47], "alpha_j": 10, "epsilon": 10, "end": 10, "bond": 10, "sigma_2": 10, "exp": 10, "over": [10, 51], "l_2": 10, "boldsymbol": 10, "alpha": [10, 39], "mathbf": 10, "sigma": [10, 39, 42], "invers": 10, "multipli": 10, "label": [10, 43, 49, 51], "vector": [10, 39, 40, 42, 43], "equat": [10, 50], "decompos": 10, "summat": 10, "therefor": [10, 51], "cubic": 10, "interpol": 10, "deriv": 10, "tripl": 10, "w": 10, "r": [10, 48, 51], "t": [10, 47, 51], "remov": 10, "cost": 10, "linearli": 10, "size": [10, 47], "due": 10, "independ": 10, "rho": 10, "v": 10, "_": 10, "ij": 10, "twice": 10, "compar": [10, 51], "expens": 10, "memori": [10, 47], "becaus": [10, 45], "larg": [10, 45, 47, 51], "grid": [10, 49], "solv": 10, "problem": 10, "2nd": [10, 49], "term": [10, 51], "express": 10, "form": 10, "top": 10, "left": 10, "psi": 10, "choleski": 10, "decomposit": 10, "varianc": [10, 43, 51], "3n_": 10, "sim": 10, "o": [10, 48, 49], "find": [10, 45, 51], "phi": 10, "min_": 10, "quad": 10, "foral": 10, "estim": [10, 47], "instead": [10, 32, 45], "pca": 10, "pick": 10, "rank": 10, "higher": [10, 51], "yu": [10, 48], "fast": [10, 48, 49], "2008": 10, "11796": 10, "glielmo": [10, 23], "aldo": 10, "claudio": [10, 48], "zeni": [10, 48], "alessandro": 10, "de": [10, 48], "vita": 10, "effici": 10, "nonparametr": 10, "review": 10, "97": 10, "2018": 10, "184307": 10, "meet": 10, "quantum": 10, "springer": 10, "cham": 10, "67": 10, "98": 10, "jonathan": [10, 48], "materi": [10, 48], "11": [10, 48], "aimd": [17, 28, 44, 52], "md": [17, 44], "fake": [17, 34, 44], "nosehoov": [17, 34, 44], "nvt": [17, 34, 44], "ensembl": [17, 34, 44], "singl": [17, 23, 44], "element": [17, 23, 40, 44], "simpl": [17, 23, 44, 50, 51], "separ": [17, 23, 44], "output": [17, 44, 50, 51], "otf": [17, 18, 32, 34, 44, 45, 52], "parser": [17, 18, 44], "util": [17, 44, 49], "advanc": [17, 38, 44], "construct": [17, 38, 40, 43, 44, 52], "detail": [23, 45, 50], "interfac": [32, 34, 45, 49], "offlin": [32, 44, 50, 51], "ab": [32, 51], "initio": [32, 51], "potenti": [32, 47, 50], "real": 32, "feed": 32, "And": 32, "ground": 32, "truth": 32, "read": [32, 51], "wrap": 34, "gaussianprocess": [34, 45, 49, 51], "mappedgaussianprocess": [34, 49], "flare_calcul": [34, 49], "sparsegp": [39, 42], "public": [39, 40, 42, 43], "std": [39, 40, 42, 43], "doubl": [39, 40, 42, 43], "energy_nois": 39, "force_nois": 39, "stress_nois": 39, "void": [39, 40, 42, 43], "initialize_sparse_descriptor": 39, "const": [39, 40, 42, 43], "add_all_environ": 39, "add_specific_environ": 39, "int": [39, 40, 42, 43], "add_random_environ": 39, "n_ad": 39, "add_uncertain_environ": 39, "eigen": [39, 40, 42, 43, 47], "vectorxd": [39, 40, 42, 43], "compute_cluster_uncertainti": 39, "sort_clusters_by_uncertainti": 39, "add_training_structur": 39, "atom_indic": [39, 40], "rel_e_nois": 39, "rel_f_nois": 39, "rel_s_nois": 39, "update_kuu": 39, "clusterdescriptor": [39, 40, 42], "cluster_descriptor": 39, "update_kuf": 39, "stack_kuu": 39, "stack_kuf": 39, "update_matrices_qr": 39, "predict_mean": 39, "predict_sor": 39, "predict_dtc": 39, "predict_local_uncertainti": 39, "compute_likelihood_st": 39, "compute_likelihood_gradient_st": 39, "bool": 39, "precomputed_knk": 39, "fals": [39, 45, 49], "precompute_knk": 39, "compute_knk": 39, "precomput": 39, "matrixxd": [39, 40, 42, 43], "compute_dknk": 39, "compute_likelihood": 39, "compute_likelihood_gradi": 39, "set_hyperparamet": [39, 42], "hyp": [39, 42, 51], "write_mapping_coeffici": 39, "string": [39, 40, 42, 43], "file_nam": [39, 43, 49], "contributor": 39, "kernel_index": [39, 42], "write_varmap_coeffici": 39, "write_sparse_descriptor": 39, "write_l_invers": 39, "member": [39, 40, 42, 43], "kuu_kernel": 39, "kuf_kernel": 39, "kuu": [39, 42], "kuf": [39, 42], "kuf_e_noise_kfu": 39, "kuf_f_noise_kfu": 39, "kuf_s_noise_kfu": 39, "knk_e": 39, "knk_f": 39, "knk_": 39, "n_kernel": 39, "kuu_jitt": 39, "kuu_invers": 39, "r_inv": 39, "l_inv": 39, "r_inv_diag": 39, "l_diag": 39, "sparse_descriptor": 39, "training_structur": 39, "sparse_indic": 39, "training_atom_indic": 39, "noise_vector": 39, "label_count": 39, "e_noise_on": 39, "f_noise_on": 39, "s_noise_on": 39, "inv_e_noise_on": 39, "inv_f_noise_on": 39, "inv_s_noise_on": 39, "n_energy_label": 39, "n_force_label": 39, "n_stress_label": 39, "n_spars": 39, "n_label": 39, "n_struc": 39, "log_marginal_likelihood": 39, "data_fit": 39, "complexity_penalti": 39, "trace_term": 39, "constant_term": 39, "likelihood_gradi": 39, "varmap_coeff": 39, "static": [39, 43, 45], "nlohmann_define_type_intrus": [39, 43], "to_json": [39, 43], "from_json": [39, 43], "subclass": [40, 42], "b2_simpl": 40, "b3": 40, "fourbodi": 40, "threebodi": [40, 49, 51], "threebodywid": 40, "twobodi": [40, 49, 51], "virtual": [40, 42], "descriptorvalu": [40, 42, 43], "compute_struc": 40, "write_to_fil": 40, "ofstream": [40, 42], "coeff_fil": [40, 42], "coeff_siz": 40, "nlohmann": [40, 42], "json": [40, 42, 49, 51], "return_json": [40, 42], "descriptor_nam": 40, "n_descriptor": 40, "n_type": 40, "n_atom": 40, "volum": [40, 43], "descriptor_force_derv": 40, "neighbor_coordin": 40, "descriptor_norm": 40, "descriptor_force_dot": 40, "cutoff_valu": 40, "cutoff_derv": 40, "vectorxi": [40, 43], "neighbor_count": [40, 43], "cumulative_neighbor_count": [40, 43], "neighbor_indic": 40, "n_cluster": 40, "n_clusters_by_typ": 40, "cumulative_type_count": 40, "n_neighbors_by_typ": 40, "cluster": [40, 47], "initialize_clust": 40, "add_clusters_by_typ": 40, "add_clust": 40, "add_all_clust": 40, "b2_norm": 40, "radial_basi": 40, "cutoff_funct": 40, "radial_hyp": 40, "cutoff_hyp": 40, "descriptor_set": 40, "distinct": 40, "radial_point": 40, "cutoff_point": 40, "correspond": [40, 51], "central": 40, "dotproduct": 42, "normalizeddotproduct_icm": 42, "squaredexponenti": 42, "kernel_hyperparamet": 42, "envs_env": 42, "envs1": 42, "envs2": 42, "envs_envs_grad": 42, "envs_struc": 42, "env": [42, 45], "struc": [42, 49], "envs_struc_grad": 42, "self_kernel_struc": 42, "struc_struc": 42, "struc1": 42, "struc2": 42, "compute_mapping_coeffici": 42, "gp_model": [42, 45, 49], "compute_varmap_coeffici": 42, "write_info": 42, "kuu_grad": 42, "kuf_grad": 42, "kernel_nam": 42, "power": 42, "new_hyp": 42, "compute_map_coeff_pow1": 42, "compute_map_coeff_pow2": 42, "sig2": [42, 49], "attribut": 43, "count": 43, "cumul": 43, "length": [43, 51], "entri": 43, "neighbor_speci": 43, "equal": [43, 45, 47], "total": [43, 47], "structure_indic": 43, "id": 43, "wa": 43, "box": 43, "cell": [43, 49, 51], "cell_transpos": 43, "cell_transpose_invers": 43, "cell_dot": 43, "cell_dot_invers": 43, "coordin": 43, "wrapped_posit": 43, "relative_posit": 43, "descriptor_calcul": 43, "mean_ef": 43, "variance_ef": 43, "mean_contribut": 43, "local_uncertainti": 43, "constructor": 43, "basic": [43, 44, 46], "hold": 43, "3x3": 43, "arrai": 43, "row": 43, "bravai": 43, "integ": 43, "chemic": [43, 48, 49], "lie": 43, "between": 43, "inclus": 43, "nx3": 43, "wrap_posit": 43, "get_single_sweep_cutoff": 43, "compute_neighbor": 43, "compute_descriptor": 43, "single_sweep_cutoff": 43, "sweep": 43, "n_neighbor": 43, "noa": 43, "instal": [44, 47, 49, 50], "guid": [44, 46], "troubl": [44, 46], "shoot": [44, 46], "multiprocess": [44, 46], "compil": [44, 45, 46, 49, 50], "cmake": [44, 45, 46], "usag": [44, 46], "note": [44, 46, 49], "newton": [44, 46, 49], "relev": [44, 46], "tutori": [44, 49, 50, 51], "roadmap": [44, 52], "figur": [44, 52], "object": [44, 52], "extract": [44, 52], "previou": [44, 52], "pre": [44, 52], "argument": [44, 52], "pars": [44, 51, 52], "log": [44, 52], "dump": [44, 52], "python": [44, 45, 50], "frequent": 44, "ask": 44, "question": 44, "packag": [44, 45, 47, 49], "product": 44, "ml": 44, "ff": 44, "galleri": 44, "cite": 44, "alreadi": [45, 51], "them": 45, "17": 45, "gcc": 45, "intel": 45, "2017": 45, "174": 45, "gxx": 45, "devel": 45, "servic": 45, "openmp": 45, "forg": 45, "openbla": 45, "lapack": 45, "liblapack": 45, "download": [45, 47, 49], "clone": [45, 47], "cd": [45, 47], "mkdir": [45, 47], "librari": [45, 47], "folder": [45, 47], "cp": 45, "_c_flare": 45, "bff": [45, 51], "sgp": [45, 50], "path": [45, 47, 51], "pythonpath": 45, "export": 45, "current_dir": 45, "altern": [45, 47], "wai": [45, 49], "sy": 45, "append": 45, "leav": [45, 47], "current": [45, 49], "consol": 45, "__file__": 45, "xxx": 45, "lib": [45, 49], "python3": [45, 49], "site": [45, 49], "__init__": 45, "py": [45, 49], "link": 45, "ldd": 45, "expect": [45, 50, 51], "show": [45, 50, 51], "libmkl": 45, "libopenbla": 45, "libgomp": 45, "fail": 45, "dure": 45, "cxx": 45, "sometim": 45, "correct": 45, "still": 45, "one": [45, 47, 51], "redo": 45, "own": [45, 47, 50], "header": [45, 47, 49, 51], "variabl": [45, 47, 49], "mkl_includ": 45, "directori": [45, 47, 51], "manag": 45, "warn": [45, 49], "bin": 45, "other": [45, 47, 51], "fatal": 45, "linkag": 45, "environment": 45, "ld_preload": 45, "conda_prefix": 45, "libmkl_cor": 45, "libmkl_intel_thread": 45, "libiomp5": 45, "instruct": [45, 47, 49], "discuss": [45, 50], "parallel": [45, 47, 49], "omp_num_thread": 45, "cpu": [45, 47], "node": [45, 47], "thread": [45, 47], "signific": 45, "numpy_": 45, "print": [45, 47, 51], "__config__": 45, "reinstal": 45, "manual": 45, "second": 45, "turn": 45, "parallelizatit": 45, "par": 45, "true": [45, 49], "per_atom_par": 45, "n_cpu": [45, 47, 49], "otf_inst": 45, "third": [45, 49], "less": 45, "than": [45, 47, 49], "overload": 45, "equival": 45, "nest": 45, "support": [45, 51], "mpi": [45, 47], "multipl": [45, 47, 51], "unusu": 45, "slow": 45, "ander": [47, 48], "lammps_plugin": 47, "sh": 47, "necessari": [47, 51], "slightli": 47, "updat": 47, "makefil": 47, "gitlab": 47, "libeigen": 47, "workaround": 47, "mv": 47, "src": 47, "easili": 47, "17feb22": 47, "dpkg_machdyn": 47, "ye": [47, 49], "ddownload_eigen3": 47, "eigen3": 47, "doc": 47, "build_extra": 47, "html": [47, 51], "dpkg_kokko": 47, "ON": 47, "dkokkos_enable_cuda": 47, "dkokkos_arch_volta70": 47, "auto": 47, "detect": 47, "realli": 47, "old": [47, 49], "abl": 47, "kokkos_arch": 47, "accord": 47, "volta70": 47, "v100": 47, "pascal60": 47, "p100": 47, "pair_styl": [47, 49], "pair_coeff": [47, 49], "si": 47, "txt": 47, "replac": 47, "lmp": [47, 49], "speed_kokko": 47, "sf": 47, "kk": 47, "pk": 47, "neigh": 47, "per": [47, 51], "divid": 47, "batch": 47, "control": [47, 51], "maxmem": 47, "gb": 47, "much": 47, "minu": 47, "limit": 47, "12": [47, 48], "affect": 47, "verifi": 47, "been": [47, 51], "correctli": 47, "mpirun": 47, "x": 47, "would": [47, 51], "launch": 47, "core": 47, "hyperthread": 47, "sampl": 47, "slurm": 47, "job": 47, "48": 47, "someth": 47, "sbatch": 47, "ntask": 47, "slurm_ntask": 47, "lmp_kokkos_omp": 47, "slurm_cpus_per_task": 47, "knight": 47, "land": 47, "heavili": 47, "lmp_kokkos_cuda_mpi": 47, "slurm_gpus_per_nod": 47, "kick": 47, "don": [47, 51], "specifi": 47, "anyth": 47, "skip": 47, "risk": 47, "safest": 47, "everyth": 47, "probabl": 47, "faster": 47, "roughli": 47, "let": 48, "steven": [48, 51], "simon": 48, "lixin": 48, "alexi": 48, "bori": 48, "publish": 48, "transit": 48, "agi": [48, 49], "jin": 48, "matthij": 48, "van": 48, "spronsen": 48, "albert": 48, "musaelian": 48, "christoph": 48, "connor": 48, "tobia": 48, "egl": 48, "nicola": 48, "molinari": 48, "jacob": 48, "florian": 48, "kain": 48, "duanmu": 48, "robert": 48, "madix": 48, "philipp": 48, "sautet": 48, "cynthia": 48, "friend": 48, "evolut": 48, "metast": 48, "bimetal": 48, "surfac": [48, 51], "microscopi": 48, "journal": 48, "american": 48, "societi": 48, "chemrxiv": 48, "pd": 48, "ag": [48, 49], "andrea": 48, "cepellotti": 48, "cameron": 48, "2106": 48, "01949": 48, "reaction": 48, "h2": 48, "pt": 48, "kevin": 48, "rossi": 48, "theodor": 48, "pavloudi": 48, "joseph": 48, "kioseogl": 48, "stefano": 48, "gironcoli": 48, "richard": 48, "palmer": 48, "francesca": 48, "baletto": 48, "driven": 48, "character": 48, "gold": 48, "nanoparticl": 48, "melt": 48, "nat": 48, "6056": 48, "au": 48, "kai": 48, "xu": 48, "lei": 48, "yan": 48, "bingran": 48, "interatom": 48, "111": 48, "strong": 48, "harri": 48, "halim": 48, "yoshitada": 48, "morikawa": 48, "elucid": 48, "cu": 48, "zn": 48, "alloi": 48, "997": 48, "phy": 48, "chem": 48, "senja": 48, "nakib": 48, "2203": 48, "03824": 48, "zhou": 48, "chen": 48, "hio": 48, "tong": 48, "ngan": 48, "zubin": 48, "darbari": 48, "adrian": 48, "lewandowski": 48, "dario": 48, "stacchiola": 48, "jorg": 48, "anib": 48, "boscoboinik": 48, "adsorb": [48, 51], "induc": 48, "restructur": 48, "kinet": 48, "catalyst": 48, "pdau": 48, "144": 48, "33": 48, "15132": 48, "15142": 48, "hong": 48, "sung": 48, "jun": 48, "hoje": 48, "chun": 48, "jehyun": 48, "lee": 48, "byung": 48, "hyun": 48, "kim": 48, "min": 48, "ho": 48, "seo": 48, "joonhe": 48, "kang": 48, "byungchan": 48, "han": 48, "crystallin": 48, "polym": 48, "der": 48, "waal": 48, "chemistri": 48, "letter": 48, "25": 48, "6000": 48, "6006": 48, "duschatko": 48, "blake": 48, "coars": 48, "grain": 48, "free": 48, "2210": 48, "16364": 48, "jennif": 48, "coulter": 48, "metal": [48, 51], "tm23": 48, "2302": 48, "12993": 48, "mike": 48, "pol": 48, "victor": 48, "brouwer": 48, "sof\u00eda": 48, "calero": 48, "shuxia": 48, "tao": 48, "defect": 48, "migrat": 48, "halid": 48, "perovskit": 48, "insight": 48, "59": 48, "31": 48, "4660": 48, "4663": 48, "plai": [49, 50], "thing": 49, "reconstruct": 49, "save": 49, "otf_pars": 49, "logdir": 49, "test_fil": [49, 51], "f": [49, 51], "agi_snippet": 49, "hyp_no": 49, "otf_object": 49, "otfanalysi": 49, "make_gp": 49, "hyp_label": [49, 51], "ls2": 49, "sig3": 49, "ls3": 49, "binari": 49, "write_model": 49, "format": [49, 51], "last": 49, "pickl": 49, "from_fil": 49, "grid_param": 49, "map_forc": 49, "grid_num": 49, "64": 49, "training_statist": 49, "lammps_loc": 49, "agi_molten": 49, "mgp_model": 49, "var_map": 49, "none": 49, "lmp_file_nam": 49, "build_map": 49, "yuxi": 49, "opt": 49, "anaconda3": 49, "mapxb": 49, "519": 49, "userwarn": 49, "distanc": 49, "129780094032889": 49, "With": 49, "execut": 49, "lmp_execut": 49, "chemical_symbol": 49, "1st": 49, "togeth": 49, "anoth": 49, "element_cod": 49, "_z_to_mass": 49, "_element_to_z": 49, "ase": [49, 51], "lammpsrun": 49, "gp_species_list": 49, "position_list": 49, "force_list": 49, "otf_cel": 49, "symbol": 49, "specie_symbol_list": 49, "join": 49, "len": 49, "param": 49, "calc": 49, "lmp_calc": 49, "tmp_agi": 49, "keep_tmp_fil": 49, "tmp_dir": 49, "tmp": 49, "specord": 49, "get_potential_energi": 49, "get_forc": 49, "get_stress": 49, "191": 49, "syntax": 49, "39": 49, "self": 49, "legacy_warn_str": 49, "34": 49, "lammps_calcul": 49, "coef": 49, "atom_typ": 49, "atom_mass": 49, "108": 49, "127": 49, "atom_speci": 49, "27": 49, "data_file_nam": 49, "data_text": 49, "lammps_dat": 49, "write_text": 49, "style_str": 49, "coeff_str": 49, "lammps_execut": 49, "dump_file_nam": 49, "input_file_nam": 49, "output_file_nam": 49, "input_text": 49, "generic_lammps_input": 49, "run_lammp": 49, "lammps_forc": 49, "lammps_pars": 49, "googl": 50, "colab": [50, 51], "demo": 50, "md17": 50, "dataset": [50, 51], "onlin": 50, "aluminum": 50, "api": 50, "video": 50, "walkthrough": 50, "squar": 50, "exponenti": 50, "conduct": 50, "boltzmann": 50, "phono3pi": 50, "constant": 50, "phoeb": 50, "custom": 50, "attach": 50, "minut": 50, "normal": 50, "desktop": 50, "laptop": 50, "exclud": 50, "gpfa": 51, "shown": 51, "harvard": 51, "edu": 51, "decemb": 51, "2019": 51, "demonstr": 51, "previous": 51, "exist": 51, "veri": 51, "short": 51, "molecul": 51, "focus": 51, "involv": 51, "methanol": 51, "vibrat": 51, "about": 51, "equilibrium": 51, "ran": 51, "vasp": 51, "walk": 51, "contain": 51, "tool": 51, "goal": 51, "instanti": 51, "sake": 51, "plu": 51, "mc": 51, "3mc": 51, "guess": 51, "later": 51, "At": 51, "atomicenviron": 51, "four": 51, "parameter": 51, "comparison": 51, "fed": 51, "fifth": 51, "suffic": 51, "two_plus_three_body_mc": 51, "handl": 51, "io": 51, "databas": 51, "fysik": 51, "dtu": 51, "dk": 51, "xyz": 51, "qe": 51, "return": 51, "convert": 51, "flare_atom": 51, "simpli": 51, "traj": 51, "from_ase_atom": 51, "vasprun": 51, "methanol_fram": 51, "loaded_dict": 51, "line": 51, "readlin": 51, "from_dict": 51, "d": 51, "decor": 51, "seen": 51, "yet": 51, "readi": 51, "dedic": 51, "trajectorytrain": 51, "varieti": 51, "trainer": 51, "pass": 51, "degre": 51, "ultim": 51, "repres": 51, "best": 51, "explain": 51, "rel_std_toler": 51, "heurist": 51, "amount": 51, "cannot": 51, "significantli": 51, "differ": 51, "criteria": 51, "sig_n": 51, "store": 51, "convent": 51, "abs_std_toler": 51, "stringent": 51, "invari": 51, "rise": 51, "associ": 51, "divers": 51, "furthermor": 51, "baselin": 51, "commenc": 51, "seed": 51, "By": 51, "accept": 51, "subset": 51, "pre_train_on_skip": 51, "slice": 51, "those": 51, "instanc": 51, "learner": 51, "gp_from_aimd": 51, "tt": 51, "diagnos": 51, "individu": 51, "problemat": 51, "organ": 51}, "objects": {"": [[40, 0, 1, "_CPPv42B2", "B2"], [40, 1, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2"], [40, 1, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2"], [40, 1, 1, "_CPPv4N2B22B2Ev", "B2::B2"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::cutoff_function"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoff_function"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::cutoff_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoff_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoffs"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::descriptor_settings"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::descriptor_settings"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::radial_basis"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::radial_basis"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::radial_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::radial_hyps"], [40, 1, 1, "_CPPv4N2B213compute_strucER9Structure", "B2::compute_struc"], [40, 2, 1, "_CPPv4N2B213compute_strucER9Structure", "B2::compute_struc::structure"], [40, 3, 1, "_CPPv4N2B215cutoff_functionE", "B2::cutoff_function"], [40, 3, 1, "_CPPv4N2B211cutoff_hypsE", "B2::cutoff_hyps"], [40, 3, 1, "_CPPv4N2B214cutoff_pointerE", "B2::cutoff_pointer"], [40, 3, 1, "_CPPv4N2B27cutoffsE", "B2::cutoffs"], [40, 3, 1, "_CPPv4N2B215descriptor_nameE", "B2::descriptor_name"], [40, 3, 1, "_CPPv4N2B219descriptor_settingsE", "B2::descriptor_settings"], [40, 3, 1, "_CPPv4N2B212radial_basisE", "B2::radial_basis"], [40, 3, 1, "_CPPv4N2B211radial_hypsE", "B2::radial_hyps"], [40, 3, 1, "_CPPv4N2B214radial_pointerE", "B2::radial_pointer"], [40, 1, 1, "_CPPv4N2B211return_jsonEv", "B2::return_json"], [40, 1, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file"], [40, 2, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file::coeff_file"], [40, 2, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file::coeff_size"], [40, 0, 1, "_CPPv417ClusterDescriptor", "ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValues", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorEv", "ClusterDescriptor::ClusterDescriptor"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValues", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor16add_all_clustersERK16DescriptorValues", "ClusterDescriptor::add_all_clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor16add_all_clustersERK16DescriptorValues", "ClusterDescriptor::add_all_clusters::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type"], [40, 2, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type::structure"], [40, 3, 1, "_CPPv4N17ClusterDescriptor21cumulative_type_countE", "ClusterDescriptor::cumulative_type_count"], [40, 3, 1, "_CPPv4N17ClusterDescriptor13cutoff_valuesE", "ClusterDescriptor::cutoff_values"], [40, 3, 1, "_CPPv4N17ClusterDescriptor16descriptor_normsE", "ClusterDescriptor::descriptor_norms"], [40, 3, 1, "_CPPv4N17ClusterDescriptor11descriptorsE", "ClusterDescriptor::descriptors"], [40, 1, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster"], [40, 2, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster::n_descriptors"], [40, 2, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster::n_types"], [40, 3, 1, "_CPPv4N17ClusterDescriptor10n_clustersE", "ClusterDescriptor::n_clusters"], [40, 3, 1, "_CPPv4N17ClusterDescriptor18n_clusters_by_typeE", "ClusterDescriptor::n_clusters_by_type"], [40, 3, 1, "_CPPv4N17ClusterDescriptor13n_descriptorsE", "ClusterDescriptor::n_descriptors"], [40, 3, 1, "_CPPv4N17ClusterDescriptor7n_typesE", "ClusterDescriptor::n_types"], [40, 0, 1, "_CPPv410Descriptor", "Descriptor"], [40, 1, 1, "_CPPv4N10Descriptor10DescriptorEv", "Descriptor::Descriptor"], [40, 1, 1, "_CPPv4N10Descriptor13compute_strucER9Structure", "Descriptor::compute_struc"], [40, 2, 1, "_CPPv4N10Descriptor13compute_strucER9Structure", "Descriptor::compute_struc::structure"], [40, 3, 1, "_CPPv4N10Descriptor15descriptor_nameE", "Descriptor::descriptor_name"], [40, 1, 1, "_CPPv4N10Descriptor11return_jsonEv", "Descriptor::return_json"], [40, 1, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file"], [40, 2, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file::coeff_file"], [40, 2, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file::coeff_size"], [40, 1, 1, "_CPPv4N10DescriptorD0Ev", "Descriptor::~Descriptor"], [40, 0, 1, "_CPPv416DescriptorValues", "DescriptorValues"], [40, 1, 1, "_CPPv4N16DescriptorValues16DescriptorValuesEv", "DescriptorValues::DescriptorValues"], [40, 3, 1, "_CPPv4N16DescriptorValues12atom_indicesE", "DescriptorValues::atom_indices"], [40, 3, 1, "_CPPv4N16DescriptorValues26cumulative_neighbor_countsE", "DescriptorValues::cumulative_neighbor_counts"], [40, 3, 1, "_CPPv4N16DescriptorValues21cumulative_type_countE", "DescriptorValues::cumulative_type_count"], [40, 3, 1, "_CPPv4N16DescriptorValues12cutoff_dervsE", "DescriptorValues::cutoff_dervs"], [40, 3, 1, "_CPPv4N16DescriptorValues13cutoff_valuesE", "DescriptorValues::cutoff_values"], [40, 3, 1, "_CPPv4N16DescriptorValues22descriptor_force_dervsE", "DescriptorValues::descriptor_force_dervs"], [40, 3, 1, "_CPPv4N16DescriptorValues21descriptor_force_dotsE", "DescriptorValues::descriptor_force_dots"], [40, 3, 1, "_CPPv4N16DescriptorValues16descriptor_normsE", "DescriptorValues::descriptor_norms"], [40, 3, 1, "_CPPv4N16DescriptorValues11descriptorsE", "DescriptorValues::descriptors"], [40, 3, 1, "_CPPv4N16DescriptorValues7n_atomsE", "DescriptorValues::n_atoms"], [40, 3, 1, "_CPPv4N16DescriptorValues10n_clustersE", "DescriptorValues::n_clusters"], [40, 3, 1, "_CPPv4N16DescriptorValues18n_clusters_by_typeE", "DescriptorValues::n_clusters_by_type"], [40, 3, 1, "_CPPv4N16DescriptorValues13n_descriptorsE", "DescriptorValues::n_descriptors"], [40, 3, 1, "_CPPv4N16DescriptorValues19n_neighbors_by_typeE", "DescriptorValues::n_neighbors_by_type"], [40, 3, 1, "_CPPv4N16DescriptorValues7n_typesE", "DescriptorValues::n_types"], [40, 3, 1, "_CPPv4N16DescriptorValues20neighbor_coordinatesE", "DescriptorValues::neighbor_coordinates"], [40, 3, 1, "_CPPv4N16DescriptorValues15neighbor_countsE", "DescriptorValues::neighbor_counts"], [40, 3, 1, "_CPPv4N16DescriptorValues16neighbor_indicesE", "DescriptorValues::neighbor_indices"], [40, 3, 1, "_CPPv4N16DescriptorValues6volumeE", "DescriptorValues::volume"], [42, 0, 1, "_CPPv46Kernel", "Kernel"], [42, 1, 1, "_CPPv4N6Kernel6KernelEN5Eigen8VectorXdE", "Kernel::Kernel"], [42, 1, 1, "_CPPv4N6Kernel6KernelEv", "Kernel::Kernel"], [42, 2, 1, "_CPPv4N6Kernel6KernelEN5Eigen8VectorXdE", "Kernel::Kernel::kernel_hyperparameters"], [42, 1, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::Kuf"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::hyps"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::kernel_index"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::strucs"], [42, 1, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::Kuu"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::hyps"], [42, 1, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients"], [42, 2, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients::gp_model"], [42, 2, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients"], [42, 2, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients::gp_model"], [42, 2, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::envs1"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::envs2"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::hyps"], [42, 1, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::envs1"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::envs2"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::hyps"], [42, 1, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::envs"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::struc"], [42, 1, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::hyps"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::struc"], [42, 3, 1, "_CPPv4N6Kernel22kernel_hyperparametersE", "Kernel::kernel_hyperparameters"], [42, 3, 1, "_CPPv4N6Kernel11kernel_nameE", "Kernel::kernel_name"], [42, 1, 1, "_CPPv4N6Kernel11return_jsonEv", "Kernel::return_json"], [42, 1, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc"], [42, 2, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc::struc"], [42, 1, 1, "_CPPv4N6Kernel19set_hyperparametersEN5Eigen8VectorXdE", "Kernel::set_hyperparameters"], [42, 2, 1, "_CPPv4N6Kernel19set_hyperparametersEN5Eigen8VectorXdE", "Kernel::set_hyperparameters::hyps"], [42, 1, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::struc1"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::struc2"], [42, 1, 1, "_CPPv4N6Kernel10write_infoERNSt8ofstreamE", "Kernel::write_info"], [42, 2, 1, "_CPPv4N6Kernel10write_infoERNSt8ofstreamE", "Kernel::write_info::coeff_file"], [42, 1, 1, "_CPPv4N6KernelD0Ev", "Kernel::~Kernel"], [42, 0, 1, "_CPPv420NormalizedDotProduct", "NormalizedDotProduct"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::Kuf"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::kernel_index"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::new_hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::strucs"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::Kuu"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::new_hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEv", "NormalizedDotProduct::NormalizedDotProduct"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct::power"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct::sigma"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::envs1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::envs2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::envs1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::envs2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::struc"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::struc"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct5powerE", "NormalizedDotProduct::power"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc::struc"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct19set_hyperparametersEN5Eigen8VectorXdE", "NormalizedDotProduct::set_hyperparameters"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct19set_hyperparametersEN5Eigen8VectorXdE", "NormalizedDotProduct::set_hyperparameters::new_hyps"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct4sig2E", "NormalizedDotProduct::sig2"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct5sigmaE", "NormalizedDotProduct::sigma"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::struc1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::struc2"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct10write_infoERNSt8ofstreamE", "NormalizedDotProduct::write_info"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10write_infoERNSt8ofstreamE", "NormalizedDotProduct::write_info::coeff_file"], [39, 0, 1, "_CPPv48SparseGP", "SparseGP"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_eE", "SparseGP::KnK_e"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_fE", "SparseGP::KnK_f"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_sE", "SparseGP::KnK_s"], [39, 3, 1, "_CPPv4N8SparseGP3KufE", "SparseGP::Kuf"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_e_noise_KfuE", "SparseGP::Kuf_e_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_f_noise_KfuE", "SparseGP::Kuf_f_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP11Kuf_kernelsE", "SparseGP::Kuf_kernels"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_s_noise_KfuE", "SparseGP::Kuf_s_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP3KuuE", "SparseGP::Kuu"], [39, 3, 1, "_CPPv4N8SparseGP11Kuu_inverseE", "SparseGP::Kuu_inverse"], [39, 3, 1, "_CPPv4N8SparseGP10Kuu_jitterE", "SparseGP::Kuu_jitter"], [39, 3, 1, "_CPPv4N8SparseGP11Kuu_kernelsE", "SparseGP::Kuu_kernels"], [39, 3, 1, "_CPPv4N8SparseGP6L_diagE", "SparseGP::L_diag"], [39, 3, 1, "_CPPv4N8SparseGP5L_invE", "SparseGP::L_inv"], [39, 3, 1, "_CPPv4N8SparseGP5R_invE", "SparseGP::R_inv"], [39, 3, 1, "_CPPv4N8SparseGP10R_inv_diagE", "SparseGP::R_inv_diag"], [39, 3, 1, "_CPPv4N8SparseGP5SigmaE", "SparseGP::Sigma"], [39, 1, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP"], [39, 1, 1, "_CPPv4N8SparseGP8SparseGPEv", "SparseGP::SparseGP"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::energy_noise"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::force_noise"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::kernels"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::stress_noise"], [39, 1, 1, "_CPPv4N8SparseGP20add_all_environmentsERK9Structure", "SparseGP::add_all_environments"], [39, 2, 1, "_CPPv4N8SparseGP20add_all_environmentsERK9Structure", "SparseGP::add_all_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments"], [39, 2, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments::n_added"], [39, 2, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments"], [39, 2, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments::atoms"], [39, 2, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::atom_indices"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_e_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_f_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_s_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::structure"], [39, 1, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments"], [39, 2, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments::n_added"], [39, 2, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments::structure"], [39, 3, 1, "_CPPv4N8SparseGP5alphaE", "SparseGP::alpha"], [39, 3, 1, "_CPPv4N8SparseGP18complexity_penaltyE", "SparseGP::complexity_penalty"], [39, 1, 1, "_CPPv4N8SparseGP11compute_KnKEb", "SparseGP::compute_KnK"], [39, 2, 1, "_CPPv4N8SparseGP11compute_KnKEb", "SparseGP::compute_KnK::precomputed"], [39, 1, 1, "_CPPv4N8SparseGP29compute_cluster_uncertaintiesERK9Structure", "SparseGP::compute_cluster_uncertainties"], [39, 2, 1, "_CPPv4N8SparseGP29compute_cluster_uncertaintiesERK9Structure", "SparseGP::compute_cluster_uncertainties::structure"], [39, 1, 1, "_CPPv4N8SparseGP12compute_dKnKEi", "SparseGP::compute_dKnK"], [39, 2, 1, "_CPPv4N8SparseGP12compute_dKnKEi", "SparseGP::compute_dKnK::i"], [39, 1, 1, "_CPPv4N8SparseGP18compute_likelihoodEv", "SparseGP::compute_likelihood"], [39, 1, 1, "_CPPv4N8SparseGP27compute_likelihood_gradientERKN5Eigen8VectorXdE", "SparseGP::compute_likelihood_gradient"], [39, 2, 1, "_CPPv4N8SparseGP27compute_likelihood_gradientERKN5Eigen8VectorXdE", "SparseGP::compute_likelihood_gradient::hyperparameters"], [39, 1, 1, "_CPPv4N8SparseGP34compute_likelihood_gradient_stableEb", "SparseGP::compute_likelihood_gradient_stable"], [39, 2, 1, "_CPPv4N8SparseGP34compute_likelihood_gradient_stableEb", "SparseGP::compute_likelihood_gradient_stable::precomputed_KnK"], [39, 1, 1, "_CPPv4N8SparseGP25compute_likelihood_stableEv", "SparseGP::compute_likelihood_stable"], [39, 3, 1, "_CPPv4N8SparseGP13constant_termE", "SparseGP::constant_term"], [39, 3, 1, "_CPPv4N8SparseGP8data_fitE", "SparseGP::data_fit"], [39, 3, 1, "_CPPv4N8SparseGP11e_noise_oneE", "SparseGP::e_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP12energy_noiseE", "SparseGP::energy_noise"], [39, 3, 1, "_CPPv4N8SparseGP11f_noise_oneE", "SparseGP::f_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP11force_noiseE", "SparseGP::force_noise"], [39, 3, 1, "_CPPv4N8SparseGP15hyperparametersE", "SparseGP::hyperparameters"], [39, 1, 1, "_CPPv4N8SparseGP29initialize_sparse_descriptorsERK9Structure", "SparseGP::initialize_sparse_descriptors"], [39, 2, 1, "_CPPv4N8SparseGP29initialize_sparse_descriptorsERK9Structure", "SparseGP::initialize_sparse_descriptors::structure"], [39, 3, 1, "_CPPv4N8SparseGP15inv_e_noise_oneE", "SparseGP::inv_e_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP15inv_f_noise_oneE", "SparseGP::inv_f_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP15inv_s_noise_oneE", "SparseGP::inv_s_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP7kernelsE", "SparseGP::kernels"], [39, 3, 1, "_CPPv4N8SparseGP11label_countE", "SparseGP::label_count"], [39, 3, 1, "_CPPv4N8SparseGP19likelihood_gradientE", "SparseGP::likelihood_gradient"], [39, 3, 1, "_CPPv4N8SparseGP23log_marginal_likelihoodE", "SparseGP::log_marginal_likelihood"], [39, 3, 1, "_CPPv4N8SparseGP15n_energy_labelsE", "SparseGP::n_energy_labels"], [39, 3, 1, "_CPPv4N8SparseGP14n_force_labelsE", "SparseGP::n_force_labels"], [39, 3, 1, "_CPPv4N8SparseGP9n_kernelsE", "SparseGP::n_kernels"], [39, 3, 1, "_CPPv4N8SparseGP8n_labelsE", "SparseGP::n_labels"], [39, 3, 1, "_CPPv4N8SparseGP8n_sparseE", "SparseGP::n_sparse"], [39, 3, 1, "_CPPv4N8SparseGP15n_stress_labelsE", "SparseGP::n_stress_labels"], [39, 3, 1, "_CPPv4N8SparseGP8n_strucsE", "SparseGP::n_strucs"], [39, 3, 1, "_CPPv4N8SparseGP12noise_vectorE", "SparseGP::noise_vector"], [39, 1, 1, "_CPPv4N8SparseGP14precompute_KnKEv", "SparseGP::precompute_KnK"], [39, 1, 1, "_CPPv4N8SparseGP11predict_DTCER9Structure", "SparseGP::predict_DTC"], [39, 2, 1, "_CPPv4N8SparseGP11predict_DTCER9Structure", "SparseGP::predict_DTC::structure"], [39, 1, 1, "_CPPv4N8SparseGP11predict_SORER9Structure", "SparseGP::predict_SOR"], [39, 2, 1, "_CPPv4N8SparseGP11predict_SORER9Structure", "SparseGP::predict_SOR::structure"], [39, 1, 1, "_CPPv4N8SparseGP27predict_local_uncertaintiesER9Structure", "SparseGP::predict_local_uncertainties"], [39, 2, 1, "_CPPv4N8SparseGP27predict_local_uncertaintiesER9Structure", "SparseGP::predict_local_uncertainties::structure"], [39, 1, 1, "_CPPv4N8SparseGP12predict_meanER9Structure", "SparseGP::predict_mean"], [39, 2, 1, "_CPPv4N8SparseGP12predict_meanER9Structure", "SparseGP::predict_mean::structure"], [39, 3, 1, "_CPPv4N8SparseGP11s_noise_oneE", "SparseGP::s_noise_one"], [39, 1, 1, "_CPPv4N8SparseGP19set_hyperparametersEN5Eigen8VectorXdE", "SparseGP::set_hyperparameters"], [39, 2, 1, "_CPPv4N8SparseGP19set_hyperparametersEN5Eigen8VectorXdE", "SparseGP::set_hyperparameters::hyps"], [39, 1, 1, "_CPPv4N8SparseGP28sort_clusters_by_uncertaintyERK9Structure", "SparseGP::sort_clusters_by_uncertainty"], [39, 2, 1, "_CPPv4N8SparseGP28sort_clusters_by_uncertaintyERK9Structure", "SparseGP::sort_clusters_by_uncertainty::structure"], [39, 3, 1, "_CPPv4N8SparseGP18sparse_descriptorsE", "SparseGP::sparse_descriptors"], [39, 3, 1, "_CPPv4N8SparseGP14sparse_indicesE", "SparseGP::sparse_indices"], [39, 1, 1, "_CPPv4N8SparseGP9stack_KufEv", "SparseGP::stack_Kuf"], [39, 1, 1, "_CPPv4N8SparseGP9stack_KuuEv", "SparseGP::stack_Kuu"], [39, 3, 1, "_CPPv4N8SparseGP12stress_noiseE", "SparseGP::stress_noise"], [39, 3, 1, "_CPPv4N8SparseGP10trace_termE", "SparseGP::trace_term"], [39, 3, 1, "_CPPv4N8SparseGP21training_atom_indicesE", "SparseGP::training_atom_indices"], [39, 3, 1, "_CPPv4N8SparseGP19training_structuresE", "SparseGP::training_structures"], [39, 1, 1, "_CPPv4N8SparseGP10update_KufERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuf"], [39, 2, 1, "_CPPv4N8SparseGP10update_KufERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuf::cluster_descriptors"], [39, 1, 1, "_CPPv4N8SparseGP10update_KuuERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuu"], [39, 2, 1, "_CPPv4N8SparseGP10update_KuuERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuu::cluster_descriptors"], [39, 1, 1, "_CPPv4N8SparseGP18update_matrices_QREv", "SparseGP::update_matrices_QR"], [39, 3, 1, "_CPPv4N8SparseGP13varmap_coeffsE", "SparseGP::varmap_coeffs"], [39, 1, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse"], [39, 2, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse::contributor"], [39, 2, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse::file_name"], [39, 1, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::contributor"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::file_name"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::kernel_index"], [39, 1, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors"], [39, 2, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors::contributor"], [39, 2, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors::file_name"], [39, 1, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::contributor"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::file_name"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::kernel_index"], [39, 3, 1, "_CPPv4N8SparseGP1yE", "SparseGP::y"], [43, 0, 1, "_CPPv49Structure", "Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureEv", "Structure::Structure"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::cell"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::cell"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::cutoff"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::descriptor_calculators"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::positions"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::positions"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::species"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::species"], [43, 3, 1, "_CPPv4N9Structure4cellE", "Structure::cell"], [43, 3, 1, "_CPPv4N9Structure8cell_dotE", "Structure::cell_dot"], [43, 3, 1, "_CPPv4N9Structure16cell_dot_inverseE", "Structure::cell_dot_inverse"], [43, 3, 1, "_CPPv4N9Structure14cell_transposeE", "Structure::cell_transpose"], [43, 3, 1, "_CPPv4N9Structure22cell_transpose_inverseE", "Structure::cell_transpose_inverse"], [43, 1, 1, "_CPPv4N9Structure19compute_descriptorsEv", "Structure::compute_descriptors"], [43, 1, 1, "_CPPv4N9Structure17compute_neighborsEv", "Structure::compute_neighbors"], [43, 3, 1, "_CPPv4N9Structure25cumulative_neighbor_countE", "Structure::cumulative_neighbor_count"], [43, 3, 1, "_CPPv4N9Structure6cutoffE", "Structure::cutoff"], [43, 3, 1, "_CPPv4N9Structure22descriptor_calculatorsE", "Structure::descriptor_calculators"], [43, 3, 1, "_CPPv4N9Structure11descriptorsE", "Structure::descriptors"], [43, 3, 1, "_CPPv4N9Structure6energyE", "Structure::energy"], [43, 3, 1, "_CPPv4N9Structure6forcesE", "Structure::forces"], [43, 1, 1, "_CPPv4N9Structure23get_single_sweep_cutoffEv", "Structure::get_single_sweep_cutoff"], [43, 3, 1, "_CPPv4N9Structure19local_uncertaintiesE", "Structure::local_uncertainties"], [43, 3, 1, "_CPPv4N9Structure18mean_contributionsE", "Structure::mean_contributions"], [43, 3, 1, "_CPPv4N9Structure8mean_efsE", "Structure::mean_efs"], [43, 3, 1, "_CPPv4N9Structure11n_neighborsE", "Structure::n_neighbors"], [43, 3, 1, "_CPPv4N9Structure14neighbor_countE", "Structure::neighbor_count"], [43, 3, 1, "_CPPv4N9Structure16neighbor_speciesE", "Structure::neighbor_species"], [43, 3, 1, "_CPPv4N9Structure3noaE", "Structure::noa"], [43, 3, 1, "_CPPv4N9Structure9positionsE", "Structure::positions"], [43, 3, 1, "_CPPv4N9Structure18relative_positionsE", "Structure::relative_positions"], [43, 3, 1, "_CPPv4N9Structure19single_sweep_cutoffE", "Structure::single_sweep_cutoff"], [43, 3, 1, "_CPPv4N9Structure7speciesE", "Structure::species"], [43, 3, 1, "_CPPv4N9Structure8stressesE", "Structure::stresses"], [43, 3, 1, "_CPPv4N9Structure17structure_indicesE", "Structure::structure_indices"], [43, 3, 1, "_CPPv4N9Structure5sweepE", "Structure::sweep"], [43, 3, 1, "_CPPv4N9Structure12variance_efsE", "Structure::variance_efs"], [43, 3, 1, "_CPPv4N9Structure6volumeE", "Structure::volume"], [43, 1, 1, "_CPPv4N9Structure14wrap_positionsEv", "Structure::wrap_positions"], [43, 3, 1, "_CPPv4N9Structure17wrapped_positionsE", "Structure::wrapped_positions"]]}, "objtypes": {"0": "cpp:class", "1": "cpp:function", "2": "cpp:functionParam", "3": "cpp:member"}, "objnames": {"0": ["cpp", "class", "C++ class"], "1": ["cpp", "function", "C++ function"], "2": ["cpp", "functionParam", "C++ function parameter"], "3": ["cpp", "member", "C++ member"]}, "titleterms": {"how": [0, 1], "cite": 0, "To": 1, "contribut": 1, "code": [2, 17, 41], "standard": 2, "pep": 2, "8": 2, "docstr": 2, "test": [2, 45], "git": 3, "workflow": 3, "gener": 3, "master": 3, "develop": [3, 45], "topic": 3, "branch": 3, "push": 3, "chang": 3, "mir": 3, "repo": 3, "directli": 3, "from": [3, 27, 49, 51], "fork": 3, "frequent": 4, "ask": 4, "question": 4, "instal": [4, 45, 46], "packag": 4, "gaussian": [4, 7, 10, 11, 14, 45, 51], "process": [4, 7, 10, 11, 14, 45, 51], "otf": [4, 19, 49], "On": [4, 29, 30], "fly": [4, 29, 30], "activ": [4, 28, 50], "learn": [4, 28, 44, 50], "offlin": 4, "product": 4, "md": [4, 32, 33, 34], "simul": 4, "us": 4, "flare": [4, 6, 44, 45, 47, 50], "ml": 4, "ff": 4, "bayesian": [5, 28, 39, 50], "forc": [5, 7, 14, 39, 49, 50], "field": [5, 7, 14, 39, 49, 50], "ASE": [6, 13, 34], "calcul": [6, 13, 33], "helper": [8, 22], "function": [8, 21, 22], "gp": [8, 13, 27, 49], "predict": 9, "formul": 10, "map": [10, 11, 49], "energi": 10, "uncertainti": 10, "dimens": 10, "reduct": 10, "refer": 10, "spline": 12, "method": 12, "spars": [13, 14, 45], "descriptor": [15, 40], "atom": [16, 36], "environ": [16, 36], "python": 17, "document": [17, 41], "file": [18, 49], "input": 18, "output": [18, 20], "parser": 19, "cutoff": 21, "kernel": [23, 24, 25, 26, 42], "multi": [24, 25], "element": [24, 25, 26], "separ": 24, "paramet": 24, "simpl": 25, "singl": 26, "aimd": [27, 51], "train": [29, 30, 31, 51], "lammp": [29, 33, 47, 49], "condit": 31, "add": 31, "data": 31, "fake": 32, "engin": 34, "nosehoov": 35, "nvt": 35, "ensembl": 35, "construct": [36, 49], "advanc": 37, "hyperparamet": 37, "set": [37, 51], "up": [37, 51], "util": 38, "c": 41, "structur": 43, "fast": 44, "atomist": 44, "rare": 44, "event": 44, "content": 44, "requir": 45, "": 45, "guid": 45, "troubl": 45, "shoot": 45, "acceler": 45, "multiprocess": 45, "mkl": 45, "model": [45, 49], "full": 45, "compil": 47, "cmake": 47, "gpu": 47, "kokko": 47, "basic": 47, "usag": 47, "run": [47, 49, 51], "note": 47, "newton": 47, "onli": 47, "relev": 47, "applic": 48, "galleri": 48, "build": 49, "2": [49, 51], "3": [49, 51], "bodi": [49, 51], "pars": 49, "log": 49, "dump": 49, "coeffici": 49, "mgp": 49, "pair": 49, "style": 49, "an": 51, "roadmap": 51, "figur": 51, "step": 51, "1": 51, "object": 51, "option": 51, "extract": 51, "frame": 51, "previou": 51, "your": 51, "pre": 51, "argument": 51, "tutori": 52}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["citing", "contribute/contribute", "contribute/standards", "contribute/workflow", "faqs", "flare/bffs/bffs", "flare/bffs/gp/calculator", "flare/bffs/gp/gp", "flare/bffs/gp/gp_algebra", "flare/bffs/gp/predict", "flare/bffs/mgp/formulas", "flare/bffs/mgp/mgp", "flare/bffs/mgp/splines_methods", "flare/bffs/sgp/calculator", "flare/bffs/sgp/sgp", "flare/descriptors/descriptors", "flare/descriptors/env", "flare/flare", "flare/io/io", "flare/io/otf_parser", "flare/io/output", "flare/kernels/cutoffs", "flare/kernels/helper", "flare/kernels/kernels", "flare/kernels/mc_sephyps", "flare/kernels/mc_simple", "flare/kernels/sc", "flare/learners/gp_from_aimd", "flare/learners/learners", "flare/learners/lmpotf", "flare/learners/otf", "flare/learners/utils", "flare/md/fake", "flare/md/lammps", "flare/md/md", "flare/md/nosehoover", "flare/utils/env_getarray", "flare/utils/mask_helper", "flare/utils/utils", "flare_pp/bffs", "flare_pp/descriptors", "flare_pp/flare_pp", "flare_pp/kernels", "flare_pp/structure", "index", "installation/install", "installation/installation", "installation/lammps", "related", "tutorials/after_training", "tutorials/colabs", "tutorials/gpfa", "tutorials/tutorials"], "filenames": ["citing.rst", "contribute/contribute.rst", "contribute/standards.rst", "contribute/workflow.rst", "faqs.rst", "flare/bffs/bffs.rst", "flare/bffs/gp/calculator.rst", "flare/bffs/gp/gp.rst", "flare/bffs/gp/gp_algebra.rst", "flare/bffs/gp/predict.rst", "flare/bffs/mgp/formulas.ipynb", "flare/bffs/mgp/mgp.rst", "flare/bffs/mgp/splines_methods.rst", "flare/bffs/sgp/calculator.rst", "flare/bffs/sgp/sgp.rst", "flare/descriptors/descriptors.rst", "flare/descriptors/env.rst", "flare/flare.rst", "flare/io/io.rst", "flare/io/otf_parser.rst", "flare/io/output.rst", "flare/kernels/cutoffs.rst", "flare/kernels/helper.rst", "flare/kernels/kernels.rst", "flare/kernels/mc_sephyps.rst", "flare/kernels/mc_simple.rst", "flare/kernels/sc.rst", "flare/learners/gp_from_aimd.rst", "flare/learners/learners.rst", "flare/learners/lmpotf.rst", "flare/learners/otf.rst", "flare/learners/utils.rst", "flare/md/fake.rst", "flare/md/lammps.rst", "flare/md/md.rst", "flare/md/nosehoover.rst", "flare/utils/env_getarray.rst", "flare/utils/mask_helper.rst", "flare/utils/utils.rst", "flare_pp/bffs.rst", "flare_pp/descriptors.rst", "flare_pp/flare_pp.rst", "flare_pp/kernels.rst", "flare_pp/structure.rst", "index.rst", "installation/install.rst", "installation/installation.rst", "installation/lammps.rst", "related.rst", "tutorials/after_training.ipynb", "tutorials/colabs.rst", "tutorials/gpfa.rst", "tutorials/tutorials.rst"], "titles": ["How to Cite", "How To Contribute", "Code Standards", "Git Workflow", "Frequently Asked Questions", "Bayesian Force Fields", "FLARE ASE Calculator", "Gaussian Process Force Fields", "Helper functions for GP", "Predict", "Formulation of Mapped Gaussian Process", "Mapped Gaussian Process", "Splines Methods", "ASE Calculator of Sparse GP", "Sparse Gaussian Process Force Fields", "Descriptors", "Atomic Environments", "Python Code Documentation", "File Input and Output", "OTF Parser", "Output", "Cutoff Functions", "Helper Functions", "Kernels", "Multi-element Kernels (Separate Parameters)", "Multi-element Kernels (simple)", "Single-element Kernels", "GP From AIMD", "Bayesian Active Learning", "On-the-Fly Training in LAMMPS", "On-the-Fly Training", "Conditions to add training data", "Fake MD", "LAMMPS Calculator and MD", "ASE MD Engine", "NoseHoover (NVT Ensemble)", "Construct Atomic Environment", "Advanced Hyperparameters Set Up", "Utility", "Bayesian force fields", "Descriptors", "C++ Code Documentation", "Kernels", "Structures", "FLARE: Fast Learning of Atomistic Rare Events", "Installation of FLARE", "Installation", "Compile LAMMPS with FLARE", "Applications/Gallery", "Build 2+3-body Mapped GP", "FLARE: Active Learning Bayesian Force Fields", "Training a 2+3-body Gaussian Process from an AIMD Run", "Tutorials"], "terms": {"If": [0, 3, 4, 7, 8, 11, 12, 16, 19, 20, 24, 27, 30, 31, 37, 45, 47, 48, 51], "you": [0, 2, 3, 4, 6, 7, 24, 27, 37, 45, 47, 48, 49, 50, 51], "us": [0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 24, 27, 30, 31, 32, 33, 35, 37, 38, 43, 44, 45, 47, 48, 49, 50, 51], "flare": [0, 2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 46, 48, 49, 51, 52], "includ": [0, 4, 6, 11, 13, 16, 24, 27, 33, 34, 45, 49, 50, 51], "b2": [0, 40, 47], "descriptor": [0, 4, 11, 16, 17, 22, 25, 36, 37, 41, 43, 44, 47, 50], "normalizeddotproduct": [0, 42, 47], "kernel": [0, 7, 8, 10, 14, 16, 17, 19, 21, 22, 27, 37, 39, 41, 44, 47, 49, 50, 51], "spars": [0, 4, 5, 17, 44, 46, 50], "gp": [0, 4, 5, 6, 7, 9, 10, 11, 14, 17, 19, 20, 21, 24, 28, 30, 31, 32, 37, 44, 45, 50, 51, 52], "pleas": [0, 2, 3, 4, 23, 37, 45, 48, 49], "follow": [0, 2, 3, 4, 7, 11, 24, 30, 37, 45, 47, 49, 51], "paper": [0, 22], "1": [0, 4, 7, 8, 9, 10, 11, 12, 16, 21, 24, 25, 26, 30, 31, 33, 37, 39, 43, 44, 45, 47, 48, 49, 52], "vandermaus": [0, 10, 11, 23, 48], "j": [0, 10, 22, 24, 36, 40, 45, 47, 48], "xie": [0, 10, 11, 48], "y": [0, 4, 7, 10, 25, 26, 33, 39, 45], "lim": [0, 48], "": [0, 2, 4, 6, 7, 8, 9, 24, 34, 43, 44, 46, 47, 51], "owen": [0, 48], "c": [0, 14, 16, 22, 24, 37, 44, 45], "kozinski": [0, 48], "b": [0, 3, 7, 10, 12, 22, 45, 48], "2021": [0, 48], "activ": [0, 10, 17, 20, 32, 33, 44, 45, 48, 52], "learn": [0, 7, 10, 17, 20, 32, 33, 48, 52], "reactiv": [0, 48], "bayesian": [0, 10, 17, 30, 33, 41, 44, 48, 52], "forc": [0, 3, 4, 6, 8, 9, 10, 11, 13, 17, 19, 20, 22, 24, 25, 26, 27, 30, 31, 32, 33, 41, 43, 44, 48, 51, 52], "field": [0, 10, 17, 30, 41, 44, 48, 52], "applic": [0, 7, 44], "heterogen": [0, 48], "hydrogen": [0, 48], "platinum": [0, 48], "catalysi": [0, 48], "dynam": [0, 6, 27, 30, 35, 48, 50, 51], "natur": [0, 51], "commun": [0, 48], "13": 0, "2022": [0, 48], "5183": 0, "http": [0, 3, 12, 33, 35, 38, 45, 47, 51], "www": 0, "com": [0, 3, 12, 38, 45, 47], "articl": 0, "s41467": 0, "022": 0, "32294": 0, "0": [0, 4, 7, 9, 11, 14, 16, 19, 20, 24, 30, 31, 32, 33, 35, 37, 39, 40, 42, 43, 45, 51], "workflow": [0, 1, 44], "full": [0, 11, 24, 44, 46, 47, 51], "gaussian": [0, 5, 6, 9, 17, 21, 30, 33, 44, 46, 50, 52], "process": [0, 5, 6, 8, 9, 17, 30, 44, 46, 47, 50, 52], "2": [0, 4, 7, 8, 9, 10, 11, 12, 16, 23, 24, 25, 26, 27, 30, 31, 33, 36, 37, 44, 45, 47, 50, 52], "bodi": [0, 10, 11, 12, 16, 22, 23, 24, 25, 26, 27, 36, 44, 47, 48, 50, 52], "3": [0, 3, 4, 7, 9, 10, 11, 12, 16, 23, 24, 25, 26, 27, 30, 31, 32, 36, 37, 44, 45, 47, 50, 52], "your": [0, 2, 3, 4, 6, 7, 44, 45, 47, 48, 49, 50, 52], "research": [0, 48], "torrisi": [0, 48, 51], "batzner": [0, 35, 48], "sun": [0, 48], "l": [0, 7, 10, 22, 24, 25, 26, 37], "kolpak": [0, 48], "A": [0, 7, 19, 21, 22, 24, 31, 33, 37, 47, 48, 50, 51], "m": [0, 10, 25, 26, 36, 48], "On": [0, 10, 17, 28, 44, 48], "fly": [0, 10, 17, 20, 28, 44, 48, 49, 50], "interpret": [0, 10, 48], "atomist": [0, 10, 48], "rare": [0, 10, 48], "event": [0, 10, 48], "npj": [0, 10, 48], "comput": [0, 7, 8, 10, 12, 14, 19, 20, 22, 27, 30, 31, 33, 36, 37, 45, 48, 49, 50], "mater": 0, "6": [0, 10, 32, 48, 49], "20": [0, 4, 7, 49], "2020": [0, 10, 48], "doi": 0, "org": [0, 47], "10": [0, 4, 7, 10, 11, 14, 48], "1038": 0, "s41524": 0, "020": 0, "0283": 0, "z": [0, 7, 25, 26, 33], "lammp": [0, 4, 11, 17, 28, 34, 44, 46, 50, 51, 52], "pair": [0, 11, 16, 22, 24, 33, 36, 37, 40, 44, 47, 50, 52], "style": [0, 2, 11, 44, 47, 50, 52], "mgp": [0, 6, 9, 10, 11, 12, 20, 44, 52], "map": [0, 5, 6, 12, 17, 24, 27, 36, 44, 47, 52], "et": [0, 10, 11, 23], "al": [0, 10, 11, 23], "from": [0, 1, 4, 7, 8, 10, 11, 12, 16, 17, 19, 20, 24, 25, 26, 28, 30, 31, 32, 33, 36, 37, 38, 44, 45, 47, 48, 50, 52], "simul": [0, 20, 44, 47, 48, 49], "inter": [0, 4, 10, 48], "dimension": [0, 10, 11, 25, 26, 36, 48], "transform": [0, 10, 48], "stanen": [0, 10, 48], "7": [0, 7, 48, 51], "40": 0, "021": 0, "00510": 0, "pylammp": [0, 4], "train": [0, 4, 6, 7, 8, 10, 11, 17, 19, 20, 24, 27, 28, 32, 34, 37, 44, 45, 49, 50, 52], "4": [0, 7, 10, 30, 36, 37, 47, 49], "ramak": [0, 48], "protik": [0, 48], "n": [0, 9, 10, 12, 25, 26, 31, 35, 36, 37, 43], "h": [0, 16, 24, 31, 33, 37, 45, 48], "johansson": [0, 47, 48], "uncertainti": [0, 4, 6, 7, 9, 11, 13, 19, 27, 30, 31, 33, 48, 50, 51], "awar": [0, 48, 50], "molecular": [0, 6, 30, 35, 48, 50, 51], "phase": [0, 48], "thermal": [0, 48, 50], "transport": [0, 48, 50], "sic": [0, 48], "9": [0, 37, 45], "36": 0, "2023": [0, 48], "kokko": [0, 44, 46], "gpu": [0, 44, 46], "acceler": [0, 24, 25, 26, 36, 44, 46, 49], "5": [0, 3, 7, 11, 24, 33, 35, 37, 49, 51], "soo": [0, 48], "micron": [0, 48], "scale": [0, 10, 24, 25, 26, 37, 48, 51], "first": [0, 4, 11, 22, 24, 25, 26, 27, 30, 32, 36, 37, 43, 45, 48, 49, 51], "principl": [0, 10, 48], "arxiv": [0, 10, 48], "preprint": [0, 10, 48], "2204": 0, "12573": 0, "thank": [0, 38], "git": [1, 44, 45, 47], "gener": [1, 2, 4, 6, 7, 11, 22, 24, 37, 44, 47], "master": [1, 44], "develop": [1, 2, 7, 27, 44, 46], "topic": [1, 44], "branch": [1, 2, 44], "push": [1, 2, 44], "chang": [1, 2, 8, 30, 32, 44, 47], "mir": [1, 44, 45], "repo": [1, 44, 45], "directli": [1, 9, 10, 44, 49], "fork": [1, 12, 44], "code": [1, 3, 19, 35, 44, 45, 50, 51], "standard": [1, 44], "pep": [1, 44], "8": [1, 44, 45, 49], "docstr": [1, 44], "test": [1, 3, 4, 7, 8, 16, 37, 44, 46, 49, 50, 51], "befor": [2, 3, 4, 45, 51], "make": [2, 3, 4, 7, 14, 16, 24, 45, 47], "sure": [2, 3, 4, 24, 45], "respect": [2, 9, 14, 24, 25, 26, 51], "run": [2, 4, 7, 19, 20, 27, 30, 32, 33, 35, 37, 44, 45, 46, 50, 52], "through": [2, 7, 27, 37, 45, 51], "pylint": 2, "check": [2, 3, 4, 7, 31, 33, 45, 50], "re": [2, 3, 4, 7, 11, 47], "complianc": 2, "file": [2, 4, 7, 11, 14, 16, 17, 19, 20, 27, 30, 32, 33, 44, 45, 47, 50, 51, 52], "name": [2, 3, 7, 8, 11, 14, 19, 20, 30, 32, 37, 45, 47, 51], "all": [2, 4, 7, 9, 10, 11, 12, 19, 20, 21, 22, 24, 25, 27, 30, 31, 33, 37, 47, 50, 51], "new": [2, 3, 7, 19, 30, 37, 45], "modul": [2, 4, 6, 20, 21, 24, 30, 32, 45, 49, 51], "class": [2, 6, 7, 9, 11, 12, 13, 14, 16, 19, 20, 24, 25, 27, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 45, 51], "method": [2, 4, 5, 7, 8, 11, 14, 16, 17, 20, 27, 30, 33, 36, 44, 50, 51], "should": [2, 3, 4, 7, 12, 16, 20, 24, 32, 37, 45, 47], "have": [2, 3, 4, 9, 10, 24, 27, 30, 31, 37, 45, 47, 49, 50, 51], "sphinx": 2, "describ": [2, 3, 11, 16, 24, 27, 31, 36, 37, 51], "what": [2, 3, 4, 7, 9, 10, 32, 37, 51], "doe": [2, 4, 8, 27, 45], "its": [2, 7, 8, 10, 11, 21, 24, 25, 26, 37, 51], "input": [2, 4, 7, 11, 16, 17, 19, 20, 27, 30, 31, 33, 37, 44, 47, 49, 51], "ar": [2, 3, 4, 7, 8, 9, 10, 11, 14, 16, 20, 24, 25, 26, 27, 30, 31, 33, 35, 36, 37, 43, 45, 47, 49, 51], "These": [2, 9, 51], "automat": [2, 9, 11, 47, 49], "document": [2, 3, 44, 47], "so": [2, 4, 7, 27, 37, 45, 49, 51], "thei": [2, 4, 7, 20, 32, 37], "clear": 2, "descript": [2, 3, 11, 37], "featur": [2, 3], "must": [2, 12, 30, 43, 47, 51], "accompani": 2, "unit": [2, 3, 4, 20, 30, 33, 35, 51], "integr": [2, 4], "written": [2, 35, 49], "pytest": 2, "thi": [2, 3, 4, 7, 9, 10, 11, 16, 20, 24, 30, 31, 32, 33, 35, 36, 37, 38, 45, 47, 49, 51], "help": [2, 3, 4, 7, 27, 37, 51], "ensur": [2, 4, 7], "work": [2, 3, 4, 9, 47], "properli": 2, "whole": [2, 32], "easier": [2, 7], "maintain": 2, "To": [3, 10, 24, 37, 44, 49], "contribut": [3, 22, 36, 38, 44], "sourc": 3, "guidelin": 3, "section": [3, 49], "ani": [3, 6, 10, 20, 30, 31, 32, 33, 35, 37, 51], "command": [3, 7, 33, 45, 49, 51], "unfamiliar": 3, "out": [3, 4, 49, 50, 51], "chapter": [3, 4], "pro": 3, "book": 3, "pattern": 3, "creat": [3, 7, 11, 12, 31, 32, 33, 45, 49], "an": [3, 4, 6, 7, 9, 10, 14, 16, 19, 20, 27, 30, 31, 34, 37, 44, 45, 47, 49, 52], "issu": [3, 4, 45], "github": [3, 12, 45, 47], "want": [3, 7, 10, 16, 24, 27, 30, 32, 37, 45, 47, 51], "address": 3, "see": [3, 4, 7, 10, 11, 22, 37, 47, 49, 51], "below": [3, 4, 11, 24, 51], "how": [3, 4, 37, 44, 47, 48, 50, 51], "repositori": [3, 4, 12, 47, 49], "merg": [3, 37], "when": [3, 4, 7, 9, 30, 31, 33, 37, 43, 45, 47, 49, 51], "finish": [3, 33], "close": [3, 4, 8, 20], "The": [3, 4, 7, 8, 10, 11, 16, 19, 20, 21, 24, 26, 27, 30, 31, 32, 33, 35, 36, 37, 43, 45, 47, 48, 49, 50, 51], "ha": [3, 4, 7, 8, 10, 24, 27, 30, 32, 37, 43, 45, 47, 51], "three": [3, 7, 11, 12, 16, 24, 26, 37, 49, 51], "tier": 3, "structur": [3, 4, 6, 7, 8, 9, 16, 19, 20, 27, 30, 31, 36, 39, 40, 41, 42, 44, 48, 49, 51], "i": [3, 4, 6, 7, 8, 9, 10, 11, 12, 16, 19, 20, 22, 24, 25, 26, 30, 31, 32, 36, 37, 39, 40, 43, 45, 47, 49, 50, 51], "which": [3, 4, 6, 7, 8, 9, 10, 11, 16, 19, 20, 24, 27, 30, 31, 32, 33, 37, 45, 47, 51], "onli": [3, 4, 6, 7, 8, 9, 10, 11, 24, 30, 33, 37, 44, 45, 46, 51], "battl": 3, "both": [3, 4, 10, 20, 25, 26, 36, 37, 49, 51], "focu": 3, "specif": [3, 4, 7, 32, 47], "delet": [3, 7], "onc": [3, 4, 37, 49, 51], "can": [3, 4, 6, 7, 8, 10, 11, 13, 16, 19, 20, 24, 27, 30, 31, 32, 33, 37, 45, 47, 49, 50, 51], "local": [3, 4, 6, 7, 8, 9, 10, 11, 13, 16, 20, 22, 24, 25, 26, 30, 31, 33, 36, 45], "copi": [3, 30, 45, 47], "remot": 3, "checkout": 3, "origin": [3, 24, 35, 36, 37], "write": [3, 7, 9, 11, 14, 20, 30, 49], "access": [3, 7, 45], "version": [3, 4, 7, 8, 45, 47, 48, 49], "edit": 3, "here": [3, 7, 36, 37, 48, 49, 50, 51], "step": [3, 4, 7, 19, 20, 30, 32, 33, 35, 37, 44, 45, 47, 49, 52], "go": [3, 7, 24, 27, 49], "up": [3, 6, 7, 8, 10, 11, 17, 20, 21, 24, 30, 33, 38, 44, 45, 49, 52], "commit": 3, "period": [3, 37, 43], "done": [3, 4, 45, 49, 51], "upstream": 3, "u": [3, 10, 45, 48], "pull": 3, "request": 3, "give": [3, 21, 33, 45, 47, 51], "ve": 3, "now": [3, 11, 49, 51], "set": [3, 4, 6, 7, 8, 10, 11, 12, 16, 17, 19, 20, 24, 27, 30, 31, 32, 33, 38, 44, 45, 47, 48, 49, 52], "add": [3, 7, 17, 19, 24, 28, 37, 44, 45], "group": [3, 8, 16, 24, 33, 37, 45], "off": [3, 45, 47, 49], "date": [3, 7, 30], "fetch": 3, "some": [3, 4, 7, 24, 51], "reason": [3, 4, 27], "were": [3, 7], "made": [3, 4, 31], "alwai": [3, 7, 20, 30, 31, 37], "reset": [3, 19, 49], "hard": [3, 21], "while": [3, 4, 10, 37, 45, 47], "final": [3, 4, 19, 24, 45, 51], "time": [3, 4, 7, 20, 30, 32, 35, 37, 49, 50, 51], "ll": [3, 51], "option": [3, 7, 8, 9, 11, 12, 14, 16, 20, 21, 27, 30, 31, 37, 44, 45, 52], "open": [3, 7, 20, 37, 51], "just": 3, "page": 4, "design": [4, 14, 20, 51], "user": [4, 6, 7, 11, 16, 24, 30, 37, 38, 45, 49], "troubleshoot": 4, "commonli": 4, "encount": [4, 45], "perform": [4, 7, 30, 35, 37, 45, 47], "task": [4, 31, 38, 47], "framework": 4, "do": [4, 7, 20, 24, 31, 32, 34, 37, 47, 48, 49, 50, 51], "mkl": [4, 44, 46], "error": [4, 20, 27, 31, 37, 45, 51], "load": [4, 7, 11, 16, 38, 45, 49, 51], "conda": [4, 45], "mkl_fft": [4, 45], "Then": [4, 10, 11, 19, 45, 47, 51], "pip": [4, 45], "list": [4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 19, 20, 24, 27, 30, 31, 32, 33, 35, 37, 43, 45, 47, 48, 51], "two": [4, 8, 10, 11, 12, 16, 22, 24, 25, 26, 31, 36, 37, 47, 49, 51], "numpi": [4, 7, 8, 9, 12, 19, 20, 31, 36, 38, 45, 49], "try": [4, 7, 45, 47], "uninstal": [4, 45], "otherwis": [4, 47], "revert": 4, "18": [4, 10], "might": [4, 7, 47], "also": [4, 9, 12, 20, 24, 27, 30, 35, 45, 47, 51], "fix": [4, 10, 24, 33, 37], "enjoi": 4, "long": [4, 16, 24], "histori": 4, "studi": [4, 10, 27, 48], "mani": [4, 10, 12, 16, 22, 24, 25, 26, 27, 36, 37, 48], "excel": 4, "resourc": 4, "we": [4, 8, 10, 16, 24, 32, 33, 34, 36, 37, 45, 48, 49, 50, 51], "recommend": [4, 30, 37, 45], "One": [4, 7, 24, 25, 26, 36, 37, 49], "author": 4, "consult": 4, "quit": 4, "textbook": 4, "machin": [4, 7, 10, 45, 48], "rasmussen": [4, 7], "william": [4, 7], "particular": 4, "being": [4, 37, 51], "great": 4, "choos": [4, 26, 51], "my": 4, "cutoff": [4, 7, 8, 10, 11, 14, 16, 17, 22, 23, 24, 25, 26, 31, 36, 37, 40, 43, 44, 51], "right": [4, 10], "depend": [4, 45, 51], "system": [4, 27, 30, 37, 43, 47, 48, 49, 51], "ionic": 4, "often": 4, "better": [4, 10, 11, 27], "larger": [4, 7, 11, 45, 47], "dens": 4, "like": [4, 7, 12, 16, 20, 24, 32, 45, 47, 51], "diamond": 4, "emploi": 4, "smaller": [4, 11, 51], "refer": [4, 6, 11, 23, 30], "radial": 4, "distribut": 4, "function": [4, 5, 7, 9, 10, 12, 17, 19, 20, 23, 24, 25, 26, 27, 31, 36, 37, 38, 39, 40, 42, 43, 44, 51], "atom": [4, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 20, 22, 24, 25, 26, 27, 30, 31, 32, 33, 35, 37, 38, 39, 43, 44, 47, 49, 51], "rang": [4, 30, 49], "valu": [4, 7, 8, 9, 11, 12, 16, 19, 21, 22, 24, 25, 26, 30, 31, 36, 37, 40, 51], "examin": 4, "model": [4, 7, 9, 10, 11, 14, 19, 27, 30, 31, 44, 46, 47, 48, 50, 51, 52], "optim": [4, 7, 14, 19, 24, 30, 37, 51], "hyperparamet": [4, 7, 10, 14, 16, 17, 19, 20, 22, 24, 25, 26, 30, 31, 36, 38, 39, 44, 49, 51], "likelihood": [4, 7, 8, 14, 20, 51], "keep": [4, 24, 33], "mind": 4, "intim": 4, "coupl": [4, 34, 37], "angular": 4, "base": [4, 7, 9, 11, 20, 21, 22, 24, 27, 30, 33, 35, 36, 37, 48, 51], "vari": [4, 8, 24, 30], "n_max": 4, "l_max": 4, "ac": [4, 35, 48, 50], "requir": [4, 30, 44, 46, 51], "For": [4, 6, 7, 11, 12, 16, 23, 24, 37, 47, 51], "multi": [4, 7, 8, 17, 23, 37, 44, 51], "compon": [4, 7, 8, 10, 22, 24, 25, 26, 30, 36, 37, 51], "cutoff_matrix": 4, "explicit": 4, "each": [4, 7, 9, 12, 19, 25, 26, 27, 30, 37, 40, 43, 47, 51], "speci": [4, 11, 16, 19, 22, 24, 25, 27, 31, 36, 37, 40, 43, 49, 51], "interact": [4, 7, 16, 24, 37, 48], "e": [4, 8, 9, 10, 11, 12, 20, 30, 31, 32, 36, 45, 47], "g": [4, 9, 11, 12, 20, 30, 31, 45, 47, 51], "cutoff_11": 4, "cutoff_12": 4, "cutoff_21": 4, "cutoff_22": 4, "matrix": [4, 7, 8, 10, 12, 25, 26, 40], "popul": [4, 27, 51], "maximum": [4, 7, 31], "good": [4, 27], "strategi": [4, 31], "import": [4, 24, 27, 33, 45, 49, 51], "obtain": [4, 7, 8, 9, 49], "case": [4, 45, 47, 51], "bad": 4, "choic": 4, "prior": [4, 19], "howev": [4, 7], "get": [4, 8, 19, 30, 31, 32, 45, 49], "slower": [4, 24], "more": [4, 7, 27, 33, 37, 47, 49, 51], "data": [4, 7, 8, 10, 17, 19, 20, 27, 28, 44, 45, 48, 49, 50, 51], "collect": [4, 22, 49], "trick": 4, "mai": [4, 7, 9, 24, 27, 31, 37, 47, 51], "need": [4, 8, 10, 11, 14, 16, 19, 24, 30, 32, 33, 37, 47, 49, 51], "provid": [4, 7, 32, 34, 49, 51], "minim": [4, 11, 33, 49], "There": [4, 27, 37, 47], "few": [4, 19, 21, 27, 50, 51], "paramet": [4, 6, 7, 8, 9, 11, 12, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 43, 44, 49, 51], "notic": [4, 10, 33], "maxit": [4, 7], "maxim": [4, 7, 33, 51], "number": [4, 7, 8, 9, 10, 11, 12, 13, 16, 20, 22, 24, 25, 26, 27, 30, 31, 32, 33, 36, 37, 43, 45, 47, 49, 51], "iter": [4, 7, 27, 51], "usual": [4, 47], "prevent": 4, "too": [4, 10, 36], "unstabl": 4, "rais": 4, "converg": 4, "within": [4, 7, 10, 25, 26, 35, 36, 45], "train_hyp": [4, 30], "dft": [4, 19, 20, 27, 30, 31, 32, 33], "call": [4, 7, 20, 30, 31, 32, 33, 37, 45, 51], "whererin": 4, "initi": [4, 7, 14, 19, 20, 24, 30, 43, 45, 51], "10th": 4, "sinc": [4, 8, 10, 32, 49, 51], "observ": [4, 10], "stabl": 4, "oppos": 4, "std_tolerance_factor": [4, 30], "predict": [4, 5, 6, 7, 10, 11, 17, 20, 30, 31, 33, 43, 44, 45, 51], "abov": [4, 10, 24, 31, 33, 45, 47, 49, 51], "threshold": [4, 30, 31, 33], "defin": [4, 10, 16, 24, 31, 36, 37, 51], "rel": [4, 31, 36, 51], "mean": [4, 7, 11, 24, 30, 43, 51], "default": [4, 6, 7, 9, 11, 19, 30, 32, 33, 38, 40, 42, 43, 47, 51], "In": [4, 9, 10, 24, 31, 32, 33, 37, 45, 47, 51], "01": [4, 7, 51], "05": [4, 7, 24, 37], "etc": [4, 7, 11, 24, 30, 33, 37, 45, 47, 49], "desir": [4, 31, 51], "lower": [4, 7, 11, 12, 31, 49, 51], "update_threshold": [4, 30, 31], "ad": [4, 7, 19, 20, 27, 30, 31, 51], "surpass": 4, "found": [4, 16, 45, 47], "decent": 4, "environ": [4, 7, 8, 9, 10, 11, 15, 17, 22, 24, 25, 26, 27, 30, 31, 38, 40, 44, 45, 47, 49, 51], "addit": [4, 30, 33], "sever": [4, 30], "everi": [4, 8, 47, 49, 51], "closer": [4, 11], "where": [4, 7, 10, 11, 12, 27, 40, 43, 45, 47], "ineffici": 4, "complex": [4, 48], "why": [4, 27], "small": [4, 10, 51], "perturb": 4, "start": [4, 20], "perfect": 4, "lattic": [4, 31, 36, 43, 50], "random": [4, 27, 31, 37], "posit": [4, 12, 13, 19, 20, 27, 30, 31, 32, 33, 36, 43, 49], "symmetri": [4, 24], "crystal": 4, "broken": 4, "accomplish": 4, "jitter": 4, "flag": [4, 27, 37, 47], "yaml": [4, 50, 51], "script": [4, 45, 47, 50], "angstrom": [4, 21, 51], "highli": [4, 7, 31, 37], "symmetr": 4, "thu": [4, 49], "zero": [4, 21, 25, 26, 32], "look": [4, 47], "same": [4, 8, 11, 16, 20, 22, 24, 33, 37], "similar": [4, 16, 24, 47, 51], "numer": 4, "stabil": 4, "temperatur": [4, 20, 30, 35], "unreason": 4, "high": [4, 12, 27, 45, 51], "signal": [4, 24, 25, 26, 37, 51], "energi": [4, 6, 7, 8, 9, 11, 13, 19, 20, 24, 25, 26, 30, 31, 32, 33, 43, 48, 49, 50], "configur": [4, 20, 31, 37, 50, 51], "relax": [4, 11], "trajectori": [4, 19, 20, 24, 25, 27, 30, 32, 33, 49, 51], "minima": 4, "yield": 4, "lead": [4, 45], "instabl": 4, "veloc": [4, 19, 20, 30, 33], "light": 4, "reduc": [4, 33, 47], "timestep": [4, 20, 30, 32, 33, 35], "enhanc": 4, "know": [4, 7, 48], "It": [4, 20, 24, 30, 33, 35, 37], "analysi": [4, 10], "complet": [4, 24, 49, 51], "ey": 4, "pressur": 4, "marker": 4, "sens": 4, "stop": 4, "ceas": 4, "becom": 4, "mae": [4, 51], "stress": [4, 6, 7, 8, 9, 11, 13, 20, 25, 30, 32, 33, 43, 49], "indic": [4, 7, 24, 25, 26, 31, 32, 36, 51], "approach": 4, "given": [4, 7, 11, 16, 22, 27, 30, 31, 32], "accuraci": [4, 11], "remain": [4, 36, 37], "low": [4, 10, 11, 51], "throughout": 4, "entir": [4, 7], "alter": 4, "condit": [4, 17, 28, 44], "under": [4, 37, 45], "decreas": 4, "happen": 4, "assertionerror": 4, "assert": 4, "np": [4, 7, 8, 9, 11, 16, 19, 22, 24, 25, 26, 30, 31, 32, 36, 45, 47, 49], "allclos": 4, "lmp_energi": 4, "gp_energi": 4, "appear": 4, "saniti": 4, "disagr": 4, "enough": 4, "result": [4, 7, 9, 12, 20, 30, 32, 33, 51], "unphys": 4, "explos": 4, "increas": 4, "bound": [4, 7, 11, 12, 14, 31, 49], "select": [4, 24, 31, 51], "typic": [4, 47], "fine": [4, 27, 51], "calcul": [4, 5, 7, 8, 14, 17, 20, 30, 31, 32, 34, 44, 45, 49, 50], "frame": [4, 17, 19, 20, 28, 30, 31, 32, 44, 52], "track": 4, "order": [4, 7, 9, 12, 31, 37, 43, 47, 51], "appropri": 4, "evalu": [4, 12], "success": 4, "most": [4, 31, 47], "immedi": [4, 11], "assess": 4, "avail": [4, 7, 45, 47, 50, 51], "physic": [4, 10, 48], "nois": [4, 8, 24, 30, 31, 37, 49, 51], "actual": [4, 45], "labl": 4, "depth": [4, 47], "analys": 4, "pariti": 4, "plot": 4, "engin": [4, 17, 27, 30, 44], "compat": [4, 6, 14, 31, 37], "our": [4, 6, 23, 49, 51], "ASE": [4, 5, 7, 14, 17, 19, 30, 32, 33, 35, 44, 49, 51], "well": [4, 24, 27, 51], "without": [4, 7, 9, 19, 30, 33, 37], "dive": 4, "benchmark": [4, 48], "quantif": 4, "capabl": 4, "determin": [4, 7, 16, 24, 30, 37, 43], "whether": [4, 8, 20, 24, 37, 45], "oper": 4, "domain": [4, 10], "exampl": [4, 7, 10, 11, 16, 24, 26, 32, 33, 35, 37, 49, 51], "uncertianti": 4, "elsewher": [4, 19], "misbehav": 4, "influenc": 4, "after": [4, 7, 10, 30, 33, 37, 45, 49, 51], "build": [4, 6, 10, 11, 12, 19, 33, 44, 45, 47, 52], "match": [4, 33], "present": [4, 11, 24, 25, 51], "coeffici": [4, 11, 12, 44, 52], "mass": [4, 33, 49], "assign": [4, 9, 16, 21, 24, 31, 40], "non": [4, 33, 37, 47], "either": [4, 30, 31, 37], "visual": [4, 7, 27], "inspect": [4, 7], "via": [4, 31, 48, 51], "implement": [4, 7, 24, 30, 32, 36, 37], "aggress": 4, "prompt": 4, "toggl": 4, "thermostat": [4, 19, 30, 35], "damp": 4, "factor": 4, "relat": [4, 7, 27], "next": [4, 30, 32, 49, 51], "point": [4, 7, 10, 11, 12, 24, 49], "upon": 4, "built": 4, "conjug": 4, "gradient": [4, 7, 8, 14, 20, 22, 24, 25, 26], "descent": 4, "drastic": 4, "helper": [5, 7, 9, 17, 19, 23, 37, 44], "spline": [5, 10, 11, 17, 44], "formul": [5, 11, 17, 44], "flare_calcul": [6, 30, 34, 49], "get_forc": [6, 33, 49], "get_potential_energi": [6, 49], "otf": [6, 14, 17, 18, 20, 27, 30, 32, 34, 44, 45, 52], "usag": [6, 35, 44, 46], "tutori": [6, 21, 44, 49, 50, 51], "bff": [6, 7, 8, 9, 11, 12, 13, 14, 24, 45, 51], "arg": [6, 8, 19, 30, 32, 33, 35], "kwarg": [6, 7, 19, 30, 32, 33, 35], "gp_model": [6, 7, 24, 26, 37, 42, 45, 49], "gaussianprocess": [6, 7, 9, 11, 19, 24, 26, 34, 37, 45, 49, 51], "object": [6, 7, 8, 9, 11, 14, 16, 19, 20, 30, 44, 52], "mgp_model": [6, 49], "mappedgaussianprocess": [6, 9, 11, 24, 34, 37, 49], "none": [6, 7, 8, 9, 11, 12, 13, 14, 16, 19, 20, 30, 31, 32, 33, 37, 38, 49], "use_map": [6, 13], "true": [6, 7, 9, 11, 14, 19, 20, 24, 27, 30, 31, 33, 37, 38, 45, 49], "par": [6, 7, 45], "bool": [6, 7, 8, 9, 11, 16, 19, 20, 24, 27, 30, 31, 37, 39], "parallel": [6, 7, 8, 9, 11, 24, 45, 47, 49], "fals": [6, 7, 9, 11, 12, 13, 14, 16, 19, 20, 24, 27, 30, 31, 33, 37, 38, 39, 45, 49], "properti": [6, 7, 12, 13, 14, 30, 32, 33], "system_chang": [6, 13, 32, 33], "ase": [6, 7, 33, 49, 51], "all_chang": 6, "flare_atom": [6, 7, 9, 16, 20, 27, 31, 51], "implemented_properti": [6, 13, 32], "str": [6, 7, 8, 11, 13, 14, 16, 19, 20, 27, 30, 31, 32, 37], "std": [6, 9, 13, 20, 31, 39, 40, 42, 43], "handl": [6, 13, 32, 51], "mc": [7, 37, 51], "hyp": [7, 8, 16, 19, 20, 24, 25, 26, 37, 39, 42, 51], "ndarrai": [7, 8, 9, 11, 16, 19, 22, 24, 25, 26, 30, 31, 36], "dict": [7, 11, 14, 16, 19, 20, 27, 30, 31, 32, 33, 37], "hyps_mask": [7, 8, 16, 20, 24, 37], "hyp_label": [7, 20, 24, 49, 51], "opt_algorithm": 7, "bfg": [7, 14], "int": [7, 8, 9, 11, 12, 16, 19, 20, 22, 24, 25, 26, 30, 31, 33, 36, 39, 40, 42, 43], "per_atom_par": [7, 24, 45], "n_cpu": [7, 8, 9, 11, 24, 45, 47, 49], "n_sampl": [7, 8, 11], "100": [7, 8, 33], "output": [7, 8, 9, 16, 17, 19, 27, 30, 37, 44, 50, 51], "default_gp": 7, "energy_nois": [7, 39], "float": [7, 8, 9, 11, 12, 14, 20, 21, 22, 24, 25, 26, 30, 31, 32, 33, 35, 36, 37], "algorithm": 7, "pg": 7, "19": 7, "allow": [7, 8, 9, 11, 16, 24, 33, 36], "atomicenviron": [7, 11, 16, 24, 25, 26, 36, 37, 51], "env": [7, 11, 16, 24, 25, 42, 45], "py": [7, 12, 16, 37, 45, 49], "type": [7, 8, 9, 11, 16, 19, 21, 22, 24, 25, 26, 30, 31, 33, 36, 37, 38], "twbodi": 7, "threebodi": [7, 11, 24, 37, 40, 49, 51], "mb": 7, "twboodi": 7, "singl": [7, 17, 23, 24, 25, 30, 33, 37, 44], "sc": [7, 26], "simpl": [7, 11, 17, 23, 24, 27, 37, 44, 50, 51], "hyper": [7, 8, 20, 24, 37], "setup": 7, "format": [7, 11, 16, 30, 31, 32, 33, 37, 49, 51], "twobodi": [7, 11, 24, 37, 40, 49, 51], "label": [7, 8, 10, 20, 33, 43, 49, 51], "covari": [7, 8, 11], "k": [7, 10, 35, 37, 47], "cpu": [7, 8, 45, 47], "serial": [7, 16, 38], "size": [7, 8, 10, 11, 12, 37, 47], "submatrix": 7, "dump": [7, 8, 30, 33, 38, 44, 52], "dure": [7, 11, 27, 30, 45], "detail": [7, 23, 37, 45, 50], "mc_sephyp": [7, 24, 37], "instanc": [7, 8, 16, 24, 37, 51], "dictat": 7, "global": [7, 30], "memori": [7, 10, 11, 47], "add_one_env": 7, "central": [7, 22, 24, 25, 26, 36, 40], "form": [7, 10], "arrai": [7, 8, 9, 11, 12, 16, 19, 20, 24, 25, 26, 31, 36, 37, 43], "contain": [7, 11, 12, 16, 19, 20, 24, 25, 26, 27, 36, 37, 51], "x": [7, 8, 9, 12, 25, 26, 33, 47], "adjust_cutoff": 7, "new_cutoff": 7, "union": [7, 9, 16, 20, 27, 30], "tupl": [7, 9, 27, 30, 36], "reset_l_alpha": 7, "new_hyps_mask": 7, "loop": [7, 24, 37], "store": [7, 9, 11, 16, 24, 31, 51], "gaug": 7, "impact": 7, "certain": [7, 10, 37], "unless": 7, "exactli": [7, 16], "purpos": [7, 16], "suggest": 7, "set_l_alpha": 7, "afterward": 7, "wai": [7, 20, 45, 49], "updat": [7, 19, 20, 30, 31, 47], "extant": 7, "pm": [7, 24, 37], "as_dict": [7, 11, 16, 24, 37], "update_kernel": [7, 37], "return": [7, 8, 9, 11, 12, 16, 19, 20, 21, 22, 24, 25, 26, 27, 31, 36, 37, 51], "dictionari": [7, 8, 11, 16, 20, 24, 27, 30, 31, 32, 37], "represent": [7, 11, 20, 27, 37], "static": [7, 11, 14, 16, 24, 37, 39, 43, 45], "backward_argu": 7, "new_arg": 7, "argument": [7, 9, 24, 26, 30, 31, 32, 33, 37, 44, 52], "renam": 7, "backward_attribut": 7, "attribut": [7, 9, 31, 32, 43], "old": [7, 47, 49], "check_l_alpha": 7, "alpha": [7, 8, 10, 39], "vector": [7, 8, 10, 31, 36, 39, 40, 42, 43], "update_l_alpha": 7, "check_instanti": 7, "seri": [7, 16, 27], "suppli": 7, "contradictori": 7, "undefin": 7, "behavior": 7, "multipl": [7, 16, 30, 33, 37, 45, 47, 51], "compute_matric": 7, "known": 7, "reconstruct": [7, 49], "other": [7, 9, 12, 20, 26, 37, 45, 47, 51], "matric": 7, "larg": [7, 10, 31, 36, 45, 47, 51], "from_dict": [7, 11, 14, 16, 37, 51], "from_fil": [7, 16, 49], "filenam": [7, 19, 20, 27, 32], "line": [7, 19, 20, 51], "conveni": 7, "write_fil": 7, "path": [7, 11, 45, 47, 51], "json": [7, 11, 14, 38, 40, 42, 49, 51], "pickl": [7, 49], "backward": 7, "compabl": 7, "x_t": 7, "d": [7, 8, 12, 21, 22, 51], "epistem": [7, 30], "varianc": [7, 9, 10, 11, 12, 24, 25, 26, 31, 37, 43, 51], "predict_ef": 7, "partial": [7, 8, 9, 24, 25], "predict_force_xyz": 7, "wrapper": [7, 8, 14], "one": [7, 11, 16, 24, 27, 31, 37, 45, 47, 51], "param": [7, 8, 9, 11, 16, 19, 31, 49], "predict_local_energi": 7, "predict_local_energy_and_var": 7, "remove_force_data": 7, "index": [7, 9, 16, 19, 31, 32, 36, 37], "update_matric": 7, "remov": [7, 10], "individu": [7, 9, 27, 51], "intend": 7, "consum": 7, "extrem": 7, "caution": 7, "wa": [7, 16, 35, 43], "akin": 7, "pop": [7, 24], "lowest": 7, "highest": [7, 31], "pass": [7, 9, 16, 24, 27, 30, 31, 51], "essenti": 7, "except": 7, "nich": 7, "invert": 7, "triangular": 7, "t": [7, 10, 22, 24, 25, 26, 35, 47, 51], "sig_n": [7, 25, 26, 51], "invers": [7, 10, 27], "multipli": [7, 10, 31], "later": [7, 16, 24, 30, 37, 51], "logger_nam": [7, 8], "custom_bound": 7, "grad_tol": 7, "0001": [7, 14], "x_tol": 7, "1e": 7, "line_step": 7, "print_progress": 7, "tune": 7, "logger": [7, 8, 20, 33], "log": [7, 8, 14, 19, 20, 44, 52], "specifi": [7, 8, 11, 27, 30, 31, 33, 37, 47], "progress": [7, 27], "custom": [7, 11, 19, 33, 35, 50], "toler": [7, 31], "termin": 7, "decid": 7, "nelder": 7, "mead": 7, "training_statist": [7, 49], "statist": 7, "about": [7, 16, 19, 27, 51], "current": [7, 20, 30, 31, 33, 37, 45, 49], "quickli": 7, "summar": 7, "info": [7, 20, 37], "recalcul": 7, "update_db": 7, "struc": [7, 42, 49], "custom_rang": 7, "whose": [7, 10, 25, 26, 30, 36, 43], "tensor": [7, 33], "xx": 7, "xy": 7, "xz": 7, "yy": 7, "yz": 7, "zz": 7, "write_model": [7, 11, 14, 30, 49], "split_matrix_size_cutoff": 7, "5000": 7, "varieti": [7, 51], "across": 7, "differ": [7, 16, 20, 21, 24, 37, 51], "them": [7, 37, 45], "take": [7, 10, 20, 27, 30, 50], "longer": 7, "faster": [7, 47], "read": [7, 24, 27, 32, 33, 37, 51], "less": [7, 27, 45], "than": [7, 31, 45, 47, 49], "save": [7, 11, 19, 49], "seper": 7, "gp_algebra": [8, 20], "efs_energy_vector": 8, "efs_energy_kernel": 8, "between": [8, 11, 20, 21, 22, 24, 25, 26, 30, 36, 43], "eneregi": 8, "total": [8, 11, 20, 30, 31, 43, 47], "efs_force_vector": 8, "efs_force_kernel": 8, "energy_energy_vector": 8, "energy_energy_vector_unit": 8, "d_1": 8, "part": [8, 27, 35], "energy_force_vector": 8, "energy_force_vector_unit": 8, "force_energy_vector": 8, "force_energy_vector_unit": 8, "force_force_vector": 8, "force_force_vector_unit": 8, "get_distance_mat_pack": 8, "s1": 8, "e1": 8, "s2": 8, "e2": 8, "element": [8, 9, 16, 17, 23, 30, 31, 37, 40, 44], "set1": 8, "set2": 8, "row": [8, 25, 26, 31, 36, 43], "column": [8, 36], "hyperparmet": [8, 24, 37], "get_force_block": 8, "get_ky_mat": 8, "get_force_block_pack": 8, "get_ky_and_hyp": 8, "kernel_grad": 8, "block": [8, 19], "hyp_mat": 8, "ky_mat": 8, "get_ky_and_hyp_pack": 8, "ky": 8, "deriv": [8, 10, 21, 22], "much": [8, 11, 47], "posibl": 8, "get_like_from_mat": 8, "l_mat": 8, "get_like_grad_from_mat": 8, "dky": 8, "get_neg_lik": 8, "force_kernel": 8, "get_neg_like_grad": [8, 20], "kernel_distance_mat": 8, "obtain_noise_len": 8, "mask": [8, 16, 24, 37], "partition_force_energy_block": 8, "size1": 8, "size2": 8, "special": [8, 27, 37, 38], "partit": 8, "becaus": [8, 10, 31, 45], "split": 8, "length": [8, 9, 16, 24, 25, 26, 37, 43, 51], "note": [8, 19, 20, 33, 35, 36, 37, 44, 46, 49], "envion": 8, "per": [8, 31, 37, 47, 51], "processor": 8, "partition_matrix": 8, "mp": 8, "thread": [8, 45, 47], "partition_matrix_custom": 8, "start1": 8, "end1": 8, "start2": 8, "end2": 8, "portion": 8, "partition_vector": 8, "queue_wrapp": 8, "result_queu": 8, "wid": 8, "func": 8, "multiprocess": [8, 44, 46], "queue": 8, "correspond": [9, 11, 19, 20, 24, 31, 37, 40, 51], "cast": [9, 16], "predict_on_atom": 9, "dev": 9, "associ": [9, 16, 24, 25, 26, 31, 37, 51], "necessarili": 9, "chemic": [9, 16, 43, 48, 49], "integ": [9, 11, 12, 16, 24, 25, 26, 36, 43], "predict_on_atom_ef": 9, "predict_on_atom_en": 9, "predict_on_atom_en_std": 9, "predict_on_structur": 9, "write_to_structur": 9, "selective_atom": 9, "skipped_atom_valu": 9, "those": [9, 24, 31, 51], "skip": [9, 30, 47], "could": 9, "nan": [9, 20], "Will": 9, "NOT": 9, "foce": 9, "nx3": [9, 43], "predict_on_structure_en": 9, "dummi": [9, 24, 32], "flexibl": [9, 20, 24, 33], "callabl": [9, 22, 24, 25, 26, 36], "predict_on_structure_mgp": 9, "output_nam": [9, 30], "predict_on_structure_par": 9, "core": [9, 11, 47], "over": [9, 10, 24, 37, 51], "predict_on_structure_par_en": 9, "simplic": [10, 51], "explan": [10, 49], "denot": [10, 43, 51], "rho_i": 10, "consist": [10, 16, 19, 30], "center": [10, 11, 36], "neighbor": [10, 11, 33, 36, 43, 47], "regress": 10, "begin": [10, 33, 47, 51], "align": 10, "sum_": 10, "p": [10, 21], "q": [10, 35], "rho_j": 10, "tild": 10, "alpha_j": 10, "epsilon": 10, "end": [10, 16, 30, 36, 37], "bond": [10, 16, 24, 25, 26, 36], "sigma_2": 10, "exp": 10, "l_2": 10, "boldsymbol": 10, "mathbf": 10, "sigma": [10, 37, 39, 42], "equat": [10, 35, 50], "decompos": 10, "summat": 10, "therefor": [10, 51], "cubic": [10, 12, 21, 33], "interpol": [10, 11, 12], "tripl": [10, 16], "w": [10, 22, 24, 25, 26], "r": [10, 21, 22, 24, 25, 26, 48, 51], "cost": 10, "linearli": 10, "due": 10, "independ": 10, "rho": 10, "v": [10, 30, 33, 35, 37], "_": 10, "ij": 10, "twice": 10, "compar": [10, 11, 51], "expens": [10, 30], "grid": [10, 11, 12, 49], "solv": 10, "problem": 10, "2nd": [10, 16, 24, 26, 49], "term": [10, 11, 16, 24, 33, 37, 51], "express": 10, "top": 10, "left": [10, 33, 37], "psi": 10, "choleski": 10, "decomposit": [10, 11, 12], "3n_": 10, "sim": 10, "o": [10, 16, 20, 24, 37, 48, 49], "find": [10, 11, 37, 45, 51], "phi": 10, "min_": 10, "quad": 10, "foral": 10, "estim": [10, 27, 47], "instead": [10, 32, 37, 45], "pca": [10, 11, 12], "pick": 10, "rank": [10, 11, 12], "higher": [10, 37, 51], "yu": [10, 48], "fast": [10, 48, 49], "2008": 10, "11796": 10, "glielmo": [10, 11, 23], "aldo": 10, "claudio": [10, 48], "zeni": [10, 48], "alessandro": 10, "de": [10, 48], "vita": 10, "effici": 10, "nonparametr": 10, "review": 10, "97": 10, "2018": 10, "184307": 10, "meet": [10, 31], "quantum": [10, 21], "springer": 10, "cham": 10, "67": 10, "98": 10, "jonathan": [10, 35, 48], "materi": [10, 48], "11": [10, 48], "interpolationfunct": 11, "littl": 11, "loss": 11, "grid_param": [11, 49], "unique_speci": 11, "var_map": [11, 49], "container_onli": 11, "lmp_file_nam": [11, 49], "lmp": [11, 47, 49], "itself": 11, "fit": 11, "As": 11, "uniqu": [11, 16, 20, 24, 37], "xxbodi": 11, "svd_rank": [11, 12], "diagon": [11, 33], "upper": [11, 12], "mode": [11, 30, 37], "heavier": 11, "attempt": 11, "construct": [11, 12, 17, 30, 37, 38, 40, 43, 44, 52], "batch": [11, 37, 47], "Not": [11, 37], "grid_num": [11, 12, 49], "64": [11, 49], "kei": [11, 20, 24, 27, 37], "load_grid": 11, "directori": [11, 30, 32, 45, 47, 51], "previous": [11, 37, 51], "grid_": 11, "npy": 11, "scratch": 11, "lower_bound_relax": 11, "lower_bound": 11, "auto": [11, 47], "approxim": [11, 21], "search": 11, "interatom": [11, 21, 48], "distanc": [11, 16, 21, 22, 25, 26, 36, 49], "r_min": 11, "own": [11, 45, 47, 50], "shape": 11, "upper_bound": 11, "full_rank": 11, "min": [11, 12, 48], "prod": 11, "n_train": 11, "atom_env": 11, "3d": 11, "6d": 11, "virial": [11, 33], "write_lmp_fil": 11, "lammps_nam": 11, "write_var": 11, "everyth": [11, 47], "necessari": [11, 47, 51], "model_nam": 11, "splines_method": 12, "cubicsplin": 12, "econforg": 12, "level": [12, 20, 37], "api": [12, 37, 50], "repres": [12, 24, 27, 36, 51], "regular": 12, "cartesian": [12, 21, 36], "node": [12, 45, 47], "along": [12, 22, 37], "dimens": 12, "n1": 12, "nd": 12, "enumer": 12, "with_deriv": 12, "inplac": 12, "set_valu": 12, "pcasplin": 12, "l_bound": 12, "u_bound": 12, "mainli": 12, "equal": [12, 16, 24, 43, 45, 47], "train_siz": 12, "grid_num_in_cub": 12, "vec_eval_cubic_splin": 12, "coef": [12, 49], "filter": 12, "sgp": [13, 14, 33, 45, 50], "sgp_calcul": 13, "sgp_model": 13, "cell": [13, 19, 20, 31, 32, 33, 36, 43, 49, 51], "pbc": [13, 32], "initial_charg": [13, 32], "initial_magmom": [13, 32], "sparse_gp": 14, "sgp_wrapper": 14, "descriptor_calcul": [14, 43], "sigma_": 14, "sigma_f": 14, "species_map": 14, "variance_typ": 14, "sor": 14, "single_atom_energi": 14, "energy_train": 14, "force_train": 14, "stress_train": 14, "max_iter": 14, "opt_method": 14, "mirror": 14, "in_dict": 14, "compute_negative_likelihood": 14, "print_val": 14, "neg": [14, 31], "compute_negative_likelihood_grad": 14, "compute_negative_likelihood_grad_st": 14, "precomput": [14, 39], "optimize_hyperparamet": 14, "display_result": 14, "gradient_toler": 14, "inform": [16, 19, 24], "cutoffs_mask": 16, "triplet": [16, 22, 24, 36, 37], "radii": [16, 31], "guassianprocess": 16, "species_mask": [16, 36], "118": [16, 24], "descirb": [16, 24], "belong": [16, 24, 37], "he": [16, 24, 31], "li": [16, 24], "Be": [16, 24], "0th": [16, 24], "regist": [16, 24], "ignor": [16, 24, 31, 32, 37], "nspeci": [16, 36], "ntwobodi": 16, "twobody_mask": [16, 36], "pare": [16, 24], "cutoff0": 16, "would": [16, 24, 27, 47, 51], "twobody_cutoff_list": 16, "ncut3b": [16, 24], "pari": [16, 24], "cut3b_mask": [16, 24, 36], "ch": [16, 24], "co": [16, 24], "oh": [16, 24], "former": [16, 24, 37], "1st": [16, 24, 26, 49], "threebody_cutoff_list": 16, "nmanybodi": 16, "coordin": [16, 21, 24, 26, 36, 37, 43], "manybody_mask": [16, 36], "manybody_cutoff_list": [16, 36], "test_env": 16, "include_structur": 16, "avoid": [16, 31], "redund": 16, "as_str": 16, "string": [16, 19, 20, 31, 37, 39, 40, 42, 43], "to_dict": 16, "file_nam": [16, 39, 43, 49], "aimd": [17, 20, 28, 32, 44, 52], "seed": [17, 28, 44, 51], "md": [17, 19, 20, 27, 30, 35, 44], "fake": [17, 34, 44], "nosehoov": [17, 30, 34, 44], "nvt": [17, 33, 34, 44], "ensembl": [17, 34, 44], "separ": [17, 23, 37, 38, 44], "parser": [17, 18, 44], "util": [17, 24, 31, 36, 37, 44, 49], "advanc": [17, 38, 44], "io": [19, 20, 32, 51], "otf_pars": [19, 49], "otfanalysi": [19, 49], "calculate_energi": 19, "pars": [19, 44, 51, 52], "potenti": [19, 21, 31, 32, 33, 47, 50], "make_gp": [19, 49], "call_no": 19, "init_gp": 19, "hyp_no": [19, 49], "3x3": [19, 31, 36, 43], "restart": 19, "th": [19, 24], "output_md_structur": 19, "parse_pos_otf": 19, "exclus": 19, "to_xyz": 19, "xyz_fil": 19, "convert": [19, 37, 51], "xyz": [19, 20, 33, 51], "append_atom_list": 19, "species_list": [19, 36], "position_list": [19, 49], "force_list": [19, 49], "uncertainty_list": 19, "velocity_list": 19, "noa": [19, 43], "dft_call": 19, "noh": 19, "snapshot": 19, "extract_gp_info": 19, "mae_list": 19, "maf_list": 19, "atoms_list": 19, "hyps_list": 19, "parse_frame_lin": 19, "frame_lin": 19, "rtype": 19, "parse_header_inform": 19, "header": [19, 20, 45, 47, 49, 51], "outfil": 19, "parse_snapshot": 19, "strip_and_split": 19, "variou": [20, 27, 31, 38], "print": [20, 37, 45, 47, 51], "basenam": 20, "otf_run": [20, 30], "verbos": [20, 37], "print_as_xyz": 20, "always_flush": 20, "host": 20, "get_neg_likelihood": 20, "intermedi": [20, 22], "prefix": 20, "suffix": 20, "kind": [20, 37], "critic": 20, "warn": [20, 37, 45, 49], "debug": [20, 37], "notset": 20, "instantli": 20, "conclude_run": 20, "extra_str": 20, "destruct": 20, "open_new_log": 20, "filetyp": 20, "exist": [20, 37, 51], "back": [20, 24, 30, 33], "bak": 20, "write_gp_dft_comparison": 20, "curr_step": 20, "start_tim": 20, "dft_forc": [20, 27], "dft_energi": [20, 30], "local_energi": 20, "ke": 20, "comparison": [20, 24, 51], "logfil": 20, "profil": 20, "kinet": [20, 33, 48], "act": 20, "write_head": 20, "gp_str": 20, "dt": [20, 30, 33, 35], "nstep": 20, "std_toler": [20, 31, 33], "TO": 20, "replac": [20, 47], "gpfa": [20, 27, 51], "trainer": [20, 51], "tolar": 20, "write_hyp": 20, "like_grad": 20, "write_md_config": 20, "dft_step": 20, "timestemp": 20, "write_to_log": 20, "logstr": 20, "flush": [20, 33], "write_xyz_config": 20, "predict_energi": 20, "target_atom": [20, 30], "comment": 20, "uncertanti": 20, "second": [20, 22, 24, 25, 26, 30, 37, 45], "add_fil": 20, "handler": 20, "add_stream": 20, "screen": 20, "sctream": 20, "set_logg": 20, "stream": 20, "fileout_nam": 20, "smoothli": 21, "send": 21, "boundari": [21, 33], "sphere": 21, "cosine_cutoff": 21, "r_cut": [21, 22, 24, 25, 26, 36], "ri": 21, "ci": 21, "cosin": 21, "envelop": 21, "eq": 21, "24": 21, "albert": [21, 48], "bart\u00f3k": 21, "g\u00e1bor": 21, "cs\u00e1nyi": 21, "brief": 21, "introduct": 21, "intern": [21, 37], "journal": [21, 48], "chemistri": [21, 48], "115": 21, "16": 21, "2015": 21, "1051": 21, "1057": 21, "divid": [21, 36, 47], "cubic_cutoff": 21, "goe": [21, 33], "hard_cutoff": 21, "quadratic_cutoff": 21, "quadrat": 21, "quadratic_cutoff_bound": 21, "coordination_numb": 22, "rij": 22, "cij": 22, "cutoff_func": [22, 24, 25, 26, 36], "pairwis": [22, 36], "versor": 22, "direct": [22, 30], "displac": 22, "force_help": 22, "fi": 22, "fj": 22, "fdi": 22, "fdj": 22, "ls1": [22, 25, 26], "ls2": [22, 24, 25, 26, 49], "ls3": [22, 24, 25, 26, 49], "sig2": [22, 24, 25, 26, 42, 49], "tabl": [22, 37], "iv": 22, "si": [22, 47], "definit": [22, 37], "quantiti": 22, "k_sq_exp_dev": 22, "q1": 22, "q2": 22, "sig": [22, 24, 25, 26, 37], "squar": [22, 50], "exponenti": [22, 50], "amplitud": 22, "lenghtscal": 22, "k_sq_exp_double_dev": 22, "doubl": [22, 39, 40, 42, 43], "mb_grad_helper_l": 22, "qi": 22, "qj": 22, "mb_grad_helper_ls_": 22, "qdiffsq": 22, "q_valu": 22, "q_func": [22, 36], "numba": [22, 24, 25, 26, 36], "njit": [22, 24, 25, 26, 36], "descrptor": [22, 36], "q_value_mc": 22, "ref_speci": [22, 36], "consid": [22, 36], "neighbour": [22, 25, 26, 36], "multicompon": 24, "restrict": [24, 25], "shown": [24, 32, 51], "parameter_help": [24, 37], "parameterhelp": [24, 37], "twobody0": [24, 37], "twobody1": [24, 37], "triplet0": 24, "triplet1": 24, "cutoff_twobodi": [24, 37], "cutoff_threebodi": [24, 37], "constraint": [24, 37], "pm1": 24, "multihyp": 24, "hm": [24, 37], "spec_mask": [24, 36], "nspec": [24, 36], "nbond": 24, "bond_mask": 24, "ntriplet": 24, "triplet_mask": 24, "rest": [24, 37], "permut": 24, "cutoff_2b": 24, "cutoff_3b": 24, "nmb": 24, "mb_mask": 24, "cutoff_mb": 24, "train_nois": 24, "identifi": 24, "parmet": 24, "ls21": 24, "ls22": 24, "sig21": 24, "sig22": 24, "sg3": 24, "suppos": 24, "21": 24, "leav": [24, 45, 47], "guess": [24, 51], "variabl": [24, 45, 47, 49], "many_body_mc": [24, 25], "env1": [24, 25, 26], "env2": [24, 25, 26], "d1": [24, 25, 26], "d2": [24, 25, 26], "sig3": [24, 25, 26, 49], "sigm": [24, 26], "lsm": [24, 26], "manybodi": [24, 25, 37], "many_body_mc_en": [24, 25], "many_body_mc_force_en": [24, 25], "many_body_mc_grad": [24, 25], "three_body_mc": [24, 25], "three_body_mc_en": [24, 25], "three_body_mc_force_en": [24, 25], "three_body_mc_force_en_jit": [24, 25], "bond_array_1": [24, 25, 26], "c1": [24, 25], "etypes1": [24, 25], "bond_array_2": [24, 25, 26, 36], "c2": [24, 25], "etypes2": [24, 25], "cross_bond_inds_1": [24, 25, 26], "cross_bond_inds_2": [24, 25, 26], "cross_bond_dists_1": [24, 25, 26], "cross_bond_dists_2": [24, 25, 26], "triplets_1": [24, 25, 26], "triplets_2": [24, 25, 26], "three_body_mc_grad": [24, 25], "three_body_mc_grad_jit": [24, 25], "two_body_mc": [24, 25], "two_body_mc_en": [24, 25], "two_body_mc_en_jit": [24, 25], "decor": [24, 31, 51], "two_body_mc_force_en": [24, 25], "two_body_mc_force_en_jit": [24, 25], "two_body_mc_grad": [24, 25], "two_body_mc_grad_jit": [24, 25], "two_body_mc_jit": [24, 25], "two_plus_three_body_mc": [24, 25, 51], "two_plus_three_body_mc_grad": [24, 25], "two_plus_three_mc_en": [24, 25], "two_plus_three_mc_force_en": [24, 25], "two_three_many_body_mc": 24, "two_three_many_body_mc_grad": 24, "two_three_many_mc_en": 24, "two_three_many_mc_force_en": 24, "slightli": [24, 47], "mc_3b_sepcut": 24, "three_body_mc_force_en_sepcut_jit": 24, "three_body_mc_grad_sepcut_jit": 24, "mc_mb_sepcut": 24, "many_body_mc_en_sepcut_jit": 24, "q_array_1": [24, 25, 26], "q_array_2": [24, 25, 26], "species1": [24, 25], "species2": [24, 25], "radiu": [24, 25, 26, 36], "many_body_mc_force_en_sepcut_jit": 24, "q_neigh_array_1": [24, 25, 26], "q_neigh_grads_1": [24, 25, 26], "many_body_mc_grad_sepcut_jit": 24, "q_neigh_array_2": [24, 25, 26], "q_neigh_grads_2": [24, 25, 26], "many_body_mc_sepcut_jit": 24, "mc_simpl": 25, "many_body_mc_en_jit": 25, "many_body_mc_force_en_jit": 25, "many_body_mc_grad_jit": 25, "neigh_dists_1": 25, "pad": [25, 26], "neigh_dists_2": 25, "num_neigh_1": 25, "num_neigh_2": 25, "etypes_neigh_1": 25, "neighbourhood": 25, "etypes_neigh_2": 25, "many_body_mc_jit": 25, "three_body_mc_en_jit": 25, "entri": [25, 26, 36, 43], "three_body_mc_jit": 25, "three_body_se_jit": 25, "three_body_sf_jit": 25, "three_body_ss_jit": 25, "two_body_mc_stress_en_jit": 25, "two_body_mc_stress_force_jit": 25, "d3": 25, "two_body_mc_stress_stress_jit": 25, "d4": 25, "two_plus_many_body_mc": 25, "sig2b": [25, 26], "ls2b": [25, 26], "sigmb": [25, 26], "lsmb": [25, 26], "two_plus_many_body_mc_en": 25, "two_plus_many_body_mc_force_en": 25, "sig1": [25, 26], "two_plus_many_body_mc_grad": 25, "two_plus_three_plus_many_body_mc": 25, "two_plus_three_plus_many_body_mc_en": 25, "two_plus_three_plus_many_body_mc_force_en": 25, "two_plus_three_plus_many_body_mc_grad": 25, "two_bodi": 26, "two_body_en": 26, "two_body_grad": 26, "two_body_force_en": 26, "three_bodi": 26, "three_body_grad": 26, "three_body_en": 26, "three_body_force_en": 26, "plu": [26, 51], "two_plus_three_bodi": 26, "two_plus_three_body_grad": 26, "two_plus_three_en": 26, "two_plus_three_force_en": 26, "two_plus_many_bodi": 26, "two_plus_many_body_grad": 26, "two_plus_many_body_en": 26, "two_plus_many_body_force_en": 26, "two_plus_three_plus_many_bodi": 26, "two_plus_three_plus_many_body_grad": 26, "two_plus_three_plus_many_body_en": 26, "two_plus_three_plus_many_body_force_en": 26, "kernel_nam": [26, 42], "2b": 26, "many_bodi": 26, "many_body_en": 26, "many_body_en_jit": 26, "many_body_force_en": 26, "many_body_force_en_jit": 26, "q_neigh_grad": 26, "neighbouring_dists_array_1": 26, "num_neighbours_1": 26, "nsdarrai": 26, "many_body_grad": 26, "many_body_grad_jit": 26, "neighbouring_dists_array_2": 26, "num_neighbours_2": 26, "many_body_jit": 26, "three_body_en_jit": 26, "three_body_force_en_jit": 26, "three_body_grad_jit": 26, "three_body_jit": 26, "two_body_en_jit": 26, "two_body_force_en_jit": 26, "two_body_grad_jit": 26, "two_body_jit": 26, "tool": [27, 51], "enabl": [27, 37], "customiz": 27, "control": [27, 47, 51], "transfer": 27, "trajectorytrain": [27, 51], "yet": [27, 37, 51], "driven": [27, 48], "somewhat": 27, "behave": 27, "pai": 27, "attent": 27, "particularli": 27, "possibl": [27, 37], "By": [27, 51], "pre_train_atoms_per_el": 27, "limit": [27, 31, 47], "learner": [27, 30, 31, 51], "gp_from_aimd": [27, 51], "parse_trajectory_trainer_output": 27, "return_gp_data": 27, "compute_error": 27, "growth": 27, "extra": 27, "deviat": 27, "gp_forc": 27, "gp_std": 27, "added_atom": 27, "maes_by_speci": 27, "gp_data": 27, "structures_from_gpfa_output": 27, "frame_dictionari": 27, "turn": [27, 45], "onto": 27, "adjointli": 30, "number_of_step": 30, "dft_calc": 30, "md_engin": 30, "md_kwarg": 30, "flare_calc": 30, "prev_pos_init": 30, "rescale_step": 30, "rescale_temp": 30, "force_onli": 30, "init_atom": 30, "max_atoms_ad": [30, 31], "min_steps_with_model": 30, "update_styl": [30, 31], "add_n": [30, 31], "dft_kwarg": 30, "store_dft_output": 30, "build_mod": 30, "wandb_log": 30, "get_uncertainti": 30, "pico": 30, "support": [30, 32, 33, 45, 51], "espresso": 30, "vasp": [30, 51], "velocityverlet": 30, "nvtberendsen": 30, "nptberendsen": 30, "npt": [30, 33], "langevin": [30, 35], "experi": 30, "previou": [30, 37, 44, 52], "rescal": 30, "never": 30, "exce": [30, 31], "frozen": 30, "minimum": 30, "keyword": 30, "program": 30, "kept": 30, "prepend": 30, "year": 30, "month": 30, "dai": 30, "hour": 30, "minut": [30, 50], "fakemd": [30, 32], "fakedft": [30, 32], "compute_properti": 30, "calcuat": 30, "md_step": 30, "rescale_temperatur": 30, "new_po": 30, "run_dft": 30, "train_gp": 30, "update_gp": 30, "train_atom": 30, "dft_frc": 30, "dft_stress": 30, "update_temperatur": 30, "instantan": 30, "get_max_cutoff": 31, "3x3x3": 31, "supercel": 31, "constructor": [31, 43], "max_cutoff": 31, "arbitrarili": 31, "bravai": [31, 36, 43], "is_force_in_bound_per_speci": 31, "abs_force_toler": 31, "predicted_forc": 31, "label_forc": 31, "inf": 31, "max_by_speci": 31, "max_force_error": 31, "against": 31, "absolut": 31, "target": [31, 35], "overrul": 31, "max": [31, 33], "far": 31, "outsid": [31, 36], "surfac": [31, 48, 51], "count": [31, 43], "unlik": [31, 37], "exceed": 31, "did": 31, "sort": [31, 33, 36, 37], "is_std_in_bound": 31, "agnost": 31, "greater": 31, "least": 31, "been": [31, 47, 51], "is_std_in_bound_per_speci": 31, "rel_std_toler": [31, 51], "abs_std_toler": [31, 51], "subset_of_frame_by_el": 31, "predict_atoms_per_el": 31, "symbol": [31, 49], "subset": [31, 51], "predict_atoms_by_speci": 31, "interfac": [32, 34, 37, 45, 49], "offlin": [32, 44, 50, 51], "ab": [32, 51], "initio": [32, 51], "real": 32, "feed": 32, "And": [32, 37], "ground": 32, "truth": 32, "combin": [32, 37], "dipol": 32, "charg": 32, "magmom": 32, "last": [32, 49], "six": 32, "subclass": [32, 40, 42], "insert": 32, "self": [32, 49], "len": [32, 49], "miss": 32, "io_kwarg": 32, "lammps_md": 33, "moleculardynam": 33, "lammps_mod": 33, "backup": 33, "curr_trj": 33, "thermo": 33, "txt": [33, 47], "n_step": 33, "until": 33, "interrupt": 33, "neither": 33, "nor": 33, "exit": 33, "beyond": 33, "modifi": 33, "lammpsrun": [33, 49], "region": 33, "databas": [33, 51], "fysik": [33, 51], "dtu": [33, 51], "dk": [33, 51], "html": [33, 47, 51], "bulk": 33, "ni": 33, "nih": 33, "param_dict": 33, "pair_styl": [33, 47, 49], "lj": 33, "cut": 33, "pair_coeff": [33, 47, 49], "dist": 33, "c_1": 33, "300": [33, 35], "12345": 33, "rot": 33, "ye": [33, 47, 49], "mom": 33, "temp": 33, "dump_period": 33, "001": 33, "keep_al": 33, "lmp_calc": [33, 49], "lammps_execut": [33, 49], "my_lammp": 33, "keep_tmp_fil": [33, 49], "tmp_dir": [33, 49], "tmp": [33, 49], "calc": [33, 49], "set_atom": 33, "packag": [33, 44, 45, 47, 49], "atom_styl": 33, "bond_styl": 33, "angle_styl": 33, "dihedral_styl": 33, "improper_styl": 33, "kspace_styl": 33, "metal": [33, 48, 51], "newton": [33, 44, 46, 49], "kim_interact": 33, "model_init": 33, "model_post": 33, "atom_modifi": 33, "read_data": 33, "fix_nv": 33, "nve": 33, "dump_al": 33, "trj_file": 33, "id": [33, 43], "vx": 33, "vy": 33, "vz": 33, "fx": 33, "fy": 33, "fz": 33, "thermo_styl": 33, "thermo_arg": 33, "thermo_modifi": 33, "23": 33, "16g": 33, "specord": [33, 49], "check_sgp_match": 33, "sgp_calc": 33, "get_kinetic_stress": 33, "sum": 33, "m_k": 33, "v_ki": 33, "v_kj": 33, "subtract": 33, "kinetic_atom": 33, "wrap": 34, "nose": 35, "hoover": 35, "mailoa": 35, "www2": 35, "ph": 35, "ed": 35, "uk": 35, "dmarendu": 35, "mvp": 35, "mvp03": 35, "pdf": 35, "adapt": 35, "simon": [35, 48], "overal": 35, "outlin": 35, "constant": [35, 50], "kb": 35, "nvt_q": 35, "nvt_dyn": 35, "f": [35, 49, 51], "334": 35, "env_getarrai": 36, "get_2_body_arrai": 36, "cutoff_2": 36, "sweep": [36, 43], "bond_positions_2": 36, "etyp": 36, "bond_indic": 36, "get_3_body_arrai": 36, "ctype": 36, "cutoff_3": 36, "bond_array_3": 36, "cross_bond_ind": 36, "cross_bond_dist": 36, "triplet_count": 36, "get_m2_body_arrai": 36, "get_m3_body_arrai": 36, "assum": 36, "cell_siz": 36, "q3_value_mc": 36, "space": 37, "complic": 37, "optimis": 37, "differenti": 37, "break": 37, "down": 37, "appli": 37, "seen": [37, 51], "human": 37, "readabl": 37, "threebody0": 37, "threebody1": 37, "four": [37, 51], "involv": [37, 51], "But": 37, "eight": 37, "matter": 37, "overrid": 37, "ealier": 37, "similarli": 37, "ones": 37, "hyperpamet": 37, "come": 37, "univers": 37, "lengthscal": 37, "define_group": 37, "oo": 37, "oall": 37, "set_paramet": 37, "test_paramet": 37, "alreadi": [37, 45, 51], "cutoff_group": 37, "allsepar": 37, "coorespond": 37, "list_group": 37, "list_paramet": 37, "all_separate_group": 37, "group_typ": 37, "cut3b": 37, "element_list": 37, "atomic_str": 37, "3b": 37, "anyth": [37, 47], "effect": 37, "conflict": 37, "prioriti": 37, "group1": 37, "group2": 37, "water": 37, "salt": 37, "cl": [37, 38], "na": 37, "equival": [37, 45], "hgroup": 37, "fill_in_paramet": 37, "fill": 37, "pre": [37, 44, 52], "definition_list": 37, "find_group": 37, "init_spec": 37, "manual": [37, 45], "execut": [37, 49], "nth": 37, "especi": 37, "guarante": 37, "parameter_dict": 37, "group_nam": 37, "asid": 37, "cutoff_manybodi": 37, "reserv": 37, "parmat": 37, "third": [37, 45, 49], "set_constraint": 37, "opt": [37, 49], "patermet": 37, "summarize_group": 37, "varialb": 37, "nprandom": 37, "half": 37, "interv": 37, "alia": 37, "random_sampl": 37, "eas": 37, "forward": 37, "port": 37, "numpyencod": 38, "skipkei": 38, "ensure_ascii": 38, "check_circular": 38, "allow_nan": 38, "sort_kei": 38, "indent": 38, "encod": 38, "stackoverflow": 38, "karlb": 38, "fnunnari": 38, "who": 38, "47626762": 38, "sparsegp": [39, 42], "public": [39, 40, 42, 43], "force_nois": 39, "stress_nois": 39, "void": [39, 40, 42, 43], "initialize_sparse_descriptor": 39, "const": [39, 40, 42, 43], "add_all_environ": 39, "add_specific_environ": 39, "add_random_environ": 39, "n_ad": 39, "add_uncertain_environ": 39, "eigen": [39, 40, 42, 43, 47], "vectorxd": [39, 40, 42, 43], "compute_cluster_uncertainti": 39, "sort_clusters_by_uncertainti": 39, "add_training_structur": 39, "atom_indic": [39, 40], "rel_e_nois": 39, "rel_f_nois": 39, "rel_s_nois": 39, "update_kuu": 39, "clusterdescriptor": [39, 40, 42], "cluster_descriptor": 39, "update_kuf": 39, "stack_kuu": 39, "stack_kuf": 39, "update_matrices_qr": 39, "predict_mean": 39, "predict_sor": 39, "predict_dtc": 39, "predict_local_uncertainti": 39, "compute_likelihood_st": 39, "compute_likelihood_gradient_st": 39, "precomputed_knk": 39, "precompute_knk": 39, "compute_knk": 39, "matrixxd": [39, 40, 42, 43], "compute_dknk": 39, "compute_likelihood": 39, "compute_likelihood_gradi": 39, "set_hyperparamet": [39, 42], "write_mapping_coeffici": 39, "contributor": 39, "kernel_index": [39, 42], "write_varmap_coeffici": 39, "write_sparse_descriptor": 39, "write_l_invers": 39, "member": [39, 40, 42, 43], "kuu_kernel": 39, "kuf_kernel": 39, "kuu": [39, 42], "kuf": [39, 42], "kuf_e_noise_kfu": 39, "kuf_f_noise_kfu": 39, "kuf_s_noise_kfu": 39, "knk_e": 39, "knk_f": 39, "knk_": 39, "n_kernel": 39, "kuu_jitt": 39, "kuu_invers": 39, "r_inv": 39, "l_inv": 39, "r_inv_diag": 39, "l_diag": 39, "sparse_descriptor": 39, "training_structur": 39, "sparse_indic": 39, "training_atom_indic": 39, "noise_vector": 39, "label_count": 39, "e_noise_on": 39, "f_noise_on": 39, "s_noise_on": 39, "inv_e_noise_on": 39, "inv_f_noise_on": 39, "inv_s_noise_on": 39, "n_energy_label": 39, "n_force_label": 39, "n_stress_label": 39, "n_spars": 39, "n_label": 39, "n_struc": 39, "log_marginal_likelihood": 39, "data_fit": 39, "complexity_penalti": 39, "trace_term": 39, "constant_term": 39, "likelihood_gradi": 39, "varmap_coeff": 39, "nlohmann_define_type_intrus": [39, 43], "to_json": [39, 43], "from_json": [39, 43], "b2_simpl": 40, "b3": 40, "fourbodi": 40, "threebodywid": 40, "virtual": [40, 42], "descriptorvalu": [40, 42, 43], "compute_struc": 40, "write_to_fil": 40, "ofstream": [40, 42], "coeff_fil": [40, 42], "coeff_siz": 40, "nlohmann": [40, 42], "return_json": [40, 42], "descriptor_nam": 40, "n_descriptor": 40, "n_type": 40, "n_atom": 40, "volum": [40, 43], "descriptor_force_derv": 40, "neighbor_coordin": 40, "descriptor_norm": 40, "descriptor_force_dot": 40, "cutoff_valu": 40, "cutoff_derv": 40, "vectorxi": [40, 43], "neighbor_count": [40, 43], "cumulative_neighbor_count": [40, 43], "neighbor_indic": 40, "n_cluster": 40, "n_clusters_by_typ": 40, "cumulative_type_count": 40, "n_neighbors_by_typ": 40, "cluster": [40, 47], "initialize_clust": 40, "add_clusters_by_typ": 40, "add_clust": 40, "add_all_clust": 40, "b2_norm": 40, "radial_basi": 40, "cutoff_funct": 40, "radial_hyp": 40, "cutoff_hyp": 40, "descriptor_set": 40, "distinct": 40, "radial_point": 40, "cutoff_point": 40, "dotproduct": 42, "normalizeddotproduct_icm": 42, "squaredexponenti": 42, "kernel_hyperparamet": 42, "envs_env": 42, "envs1": 42, "envs2": 42, "envs_envs_grad": 42, "envs_struc": 42, "envs_struc_grad": 42, "self_kernel_struc": 42, "struc_struc": 42, "struc1": 42, "struc2": 42, "compute_mapping_coeffici": 42, "compute_varmap_coeffici": 42, "write_info": 42, "kuu_grad": 42, "kuf_grad": 42, "power": 42, "new_hyp": 42, "compute_map_coeff_pow1": 42, "compute_map_coeff_pow2": 42, "cumul": 43, "neighbor_speci": 43, "structure_indic": 43, "box": 43, "cell_transpos": 43, "cell_transpose_invers": 43, "cell_dot": 43, "cell_dot_invers": 43, "wrapped_posit": 43, "relative_posit": 43, "mean_ef": 43, "variance_ef": 43, "mean_contribut": 43, "local_uncertainti": 43, "basic": [43, 44, 46], "hold": 43, "lie": 43, "inclus": 43, "wrap_posit": 43, "get_single_sweep_cutoff": 43, "compute_neighbor": 43, "compute_descriptor": 43, "single_sweep_cutoff": 43, "n_neighbor": 43, "instal": [44, 47, 49, 50], "guid": [44, 46], "troubl": [44, 46], "shoot": [44, 46], "compil": [44, 45, 46, 49, 50], "cmake": [44, 45, 46], "relev": [44, 46], "roadmap": [44, 52], "figur": [44, 52], "extract": [44, 52], "python": [44, 45, 50], "frequent": 44, "ask": 44, "question": 44, "product": 44, "ml": 44, "ff": 44, "galleri": 44, "cite": 44, "17": 45, "gcc": 45, "intel": 45, "2017": 45, "174": 45, "gxx": 45, "devel": 45, "servic": 45, "openmp": 45, "forg": 45, "openbla": 45, "lapack": 45, "liblapack": 45, "download": [45, 47, 49], "clone": [45, 47], "cd": [45, 47], "mkdir": [45, 47], "librari": [45, 47], "folder": [45, 47], "cp": 45, "_c_flare": 45, "pythonpath": 45, "export": 45, "current_dir": 45, "altern": [45, 47], "sy": 45, "append": 45, "consol": 45, "__file__": 45, "xxx": 45, "lib": [45, 49], "python3": [45, 49], "site": [45, 49], "__init__": 45, "link": 45, "ldd": 45, "expect": [45, 50, 51], "show": [45, 50, 51], "libmkl": 45, "libopenbla": 45, "libgomp": 45, "fail": 45, "cxx": 45, "sometim": 45, "correct": 45, "still": 45, "redo": 45, "mkl_includ": 45, "manag": 45, "bin": 45, "fatal": 45, "linkag": 45, "environment": 45, "ld_preload": 45, "conda_prefix": 45, "libmkl_cor": 45, "libmkl_intel_thread": 45, "libiomp5": 45, "instruct": [45, 47, 49], "discuss": [45, 50], "omp_num_thread": 45, "signific": 45, "numpy_": 45, "__config__": 45, "reinstal": 45, "parallelizatit": 45, "otf_inst": 45, "overload": 45, "nest": 45, "mpi": [45, 47], "unusu": 45, "slow": 45, "ander": [47, 48], "lammps_plugin": 47, "sh": 47, "makefil": 47, "gitlab": 47, "libeigen": 47, "workaround": 47, "mv": 47, "src": 47, "easili": 47, "17feb22": 47, "dpkg_machdyn": 47, "ddownload_eigen3": 47, "eigen3": 47, "doc": 47, "build_extra": 47, "dpkg_kokko": 47, "ON": 47, "dkokkos_enable_cuda": 47, "dkokkos_arch_volta70": 47, "detect": 47, "realli": 47, "abl": 47, "kokkos_arch": 47, "accord": 47, "volta70": 47, "v100": 47, "pascal60": 47, "p100": 47, "speed_kokko": 47, "sf": 47, "kk": 47, "pk": 47, "neigh": 47, "maxmem": 47, "gb": 47, "minu": 47, "12": [47, 48], "affect": 47, "verifi": 47, "correctli": 47, "mpirun": 47, "launch": 47, "hyperthread": 47, "sampl": 47, "slurm": 47, "job": 47, "48": 47, "someth": 47, "sbatch": 47, "ntask": 47, "slurm_ntask": 47, "lmp_kokkos_omp": 47, "slurm_cpus_per_task": 47, "knight": 47, "land": 47, "heavili": 47, "lmp_kokkos_cuda_mpi": 47, "slurm_gpus_per_nod": 47, "kick": 47, "don": [47, 51], "risk": 47, "safest": 47, "probabl": 47, "roughli": 47, "let": 48, "steven": [48, 51], "lixin": 48, "alexi": 48, "bori": 48, "publish": 48, "transit": 48, "agi": [48, 49], "jin": 48, "matthij": 48, "van": 48, "spronsen": 48, "musaelian": 48, "christoph": 48, "connor": 48, "tobia": 48, "egl": 48, "nicola": 48, "molinari": 48, "jacob": 48, "florian": 48, "kain": 48, "duanmu": 48, "robert": 48, "madix": 48, "philipp": 48, "sautet": 48, "cynthia": 48, "friend": 48, "evolut": 48, "metast": 48, "bimetal": 48, "microscopi": 48, "american": 48, "societi": 48, "chemrxiv": 48, "pd": 48, "ag": [48, 49], "andrea": 48, "cepellotti": 48, "cameron": 48, "2106": 48, "01949": 48, "reaction": 48, "h2": 48, "pt": 48, "kevin": 48, "rossi": 48, "theodor": 48, "pavloudi": 48, "joseph": 48, "kioseogl": 48, "stefano": 48, "gironcoli": 48, "richard": 48, "palmer": 48, "francesca": 48, "baletto": 48, "character": 48, "gold": 48, "nanoparticl": 48, "melt": 48, "nat": 48, "6056": 48, "au": 48, "kai": 48, "xu": 48, "lei": 48, "yan": 48, "bingran": 48, "111": 48, "strong": 48, "harri": 48, "halim": 48, "yoshitada": 48, "morikawa": 48, "elucid": 48, "cu": 48, "zn": 48, "alloi": 48, "997": 48, "phy": 48, "chem": 48, "senja": 48, "nakib": 48, "2203": 48, "03824": 48, "zhou": 48, "chen": 48, "hio": 48, "tong": 48, "ngan": 48, "zubin": 48, "darbari": 48, "adrian": 48, "lewandowski": 48, "dario": 48, "stacchiola": 48, "jorg": 48, "anib": 48, "boscoboinik": 48, "adsorb": [48, 51], "induc": 48, "restructur": 48, "catalyst": 48, "pdau": 48, "144": 48, "33": 48, "15132": 48, "15142": 48, "hong": 48, "sung": 48, "jun": 48, "hoje": 48, "chun": 48, "jehyun": 48, "lee": 48, "byung": 48, "hyun": 48, "kim": 48, "ho": 48, "seo": 48, "joonhe": 48, "kang": 48, "byungchan": 48, "han": 48, "crystallin": 48, "polym": 48, "der": 48, "waal": 48, "letter": 48, "25": 48, "6000": 48, "6006": 48, "duschatko": 48, "blake": 48, "coars": 48, "grain": 48, "free": 48, "2210": 48, "16364": 48, "jennif": 48, "coulter": 48, "tm23": 48, "2302": 48, "12993": 48, "mike": 48, "pol": 48, "victor": 48, "brouwer": 48, "sof\u00eda": 48, "calero": 48, "shuxia": 48, "tao": 48, "defect": 48, "migrat": 48, "halid": 48, "perovskit": 48, "insight": 48, "59": 48, "31": 48, "4660": 48, "4663": 48, "plai": [49, 50], "thing": 49, "logdir": 49, "test_fil": [49, 51], "agi_snippet": 49, "otf_object": 49, "binari": 49, "map_forc": 49, "lammps_loc": 49, "agi_molten": 49, "build_map": 49, "yuxi": 49, "anaconda3": 49, "mapxb": 49, "519": 49, "userwarn": 49, "129780094032889": 49, "With": 49, "lmp_execut": 49, "chemical_symbol": 49, "togeth": 49, "anoth": 49, "element_cod": 49, "_z_to_mass": 49, "_element_to_z": 49, "gp_species_list": 49, "otf_cel": 49, "specie_symbol_list": 49, "join": 49, "tmp_agi": 49, "get_stress": 49, "191": 49, "syntax": 49, "39": 49, "legacy_warn_str": 49, "34": 49, "lammps_calcul": 49, "atom_typ": 49, "atom_mass": 49, "108": 49, "127": 49, "atom_speci": 49, "27": 49, "data_file_nam": 49, "data_text": 49, "lammps_dat": 49, "write_text": 49, "style_str": 49, "coeff_str": 49, "dump_file_nam": 49, "input_file_nam": 49, "output_file_nam": 49, "input_text": 49, "generic_lammps_input": 49, "run_lammp": 49, "lammps_forc": 49, "lammps_pars": 49, "googl": 50, "colab": [50, 51], "demo": 50, "md17": 50, "dataset": [50, 51], "onlin": 50, "aluminum": 50, "video": 50, "walkthrough": 50, "conduct": 50, "boltzmann": 50, "phono3pi": 50, "phoeb": 50, "attach": 50, "normal": 50, "desktop": 50, "laptop": 50, "exclud": 50, "harvard": 51, "edu": 51, "decemb": 51, "2019": 51, "demonstr": 51, "veri": 51, "short": 51, "molecul": 51, "focus": 51, "methanol": 51, "vibrat": 51, "equilibrium": 51, "ran": 51, "walk": 51, "goal": 51, "instanti": 51, "sake": 51, "3mc": 51, "At": 51, "parameter": 51, "fed": 51, "fifth": 51, "suffic": 51, "qe": 51, "simpli": 51, "traj": 51, "from_ase_atom": 51, "vasprun": 51, "methanol_fram": 51, "loaded_dict": 51, "readlin": 51, "readi": 51, "dedic": 51, "degre": 51, "ultim": 51, "best": 51, "explain": 51, "heurist": 51, "amount": 51, "cannot": 51, "significantli": 51, "criteria": 51, "convent": 51, "stringent": 51, "invari": 51, "rise": 51, "divers": 51, "furthermor": 51, "baselin": 51, "commenc": 51, "accept": 51, "pre_train_on_skip": 51, "slice": 51, "tt": 51, "diagnos": 51, "problemat": 51, "organ": 51}, "objects": {"": [[40, 0, 1, "_CPPv42B2", "B2"], [40, 1, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2"], [40, 1, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2"], [40, 1, 1, "_CPPv4N2B22B2Ev", "B2::B2"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::cutoff_function"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoff_function"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::cutoff_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoff_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::cutoffs"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::descriptor_settings"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::descriptor_settings"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::radial_basis"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::radial_basis"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEE", "B2::B2::radial_hyps"], [40, 2, 1, "_CPPv4N2B22B2ERKNSt6stringERKNSt6stringERKNSt6vectorIdEERKNSt6vectorIdEERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "B2::B2::radial_hyps"], [40, 1, 1, "_CPPv4N2B213compute_strucER9Structure", "B2::compute_struc"], [40, 2, 1, "_CPPv4N2B213compute_strucER9Structure", "B2::compute_struc::structure"], [40, 3, 1, "_CPPv4N2B215cutoff_functionE", "B2::cutoff_function"], [40, 3, 1, "_CPPv4N2B211cutoff_hypsE", "B2::cutoff_hyps"], [40, 3, 1, "_CPPv4N2B214cutoff_pointerE", "B2::cutoff_pointer"], [40, 3, 1, "_CPPv4N2B27cutoffsE", "B2::cutoffs"], [40, 3, 1, "_CPPv4N2B215descriptor_nameE", "B2::descriptor_name"], [40, 3, 1, "_CPPv4N2B219descriptor_settingsE", "B2::descriptor_settings"], [40, 3, 1, "_CPPv4N2B212radial_basisE", "B2::radial_basis"], [40, 3, 1, "_CPPv4N2B211radial_hypsE", "B2::radial_hyps"], [40, 3, 1, "_CPPv4N2B214radial_pointerE", "B2::radial_pointer"], [40, 1, 1, "_CPPv4N2B211return_jsonEv", "B2::return_json"], [40, 1, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file"], [40, 2, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file::coeff_file"], [40, 2, 1, "_CPPv4N2B213write_to_fileERNSt8ofstreamEi", "B2::write_to_file::coeff_size"], [40, 0, 1, "_CPPv417ClusterDescriptor", "ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValues", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor"], [40, 1, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorEv", "ClusterDescriptor::ClusterDescriptor"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValues", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 2, 1, "_CPPv4N17ClusterDescriptor17ClusterDescriptorERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::ClusterDescriptor::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor16add_all_clustersERK16DescriptorValues", "ClusterDescriptor::add_all_clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor16add_all_clustersERK16DescriptorValues", "ClusterDescriptor::add_all_clusters::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor12add_clustersERK16DescriptorValuesRKNSt6vectorIiEE", "ClusterDescriptor::add_clusters::structure"], [40, 1, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type"], [40, 2, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type::clusters"], [40, 2, 1, "_CPPv4N17ClusterDescriptor20add_clusters_by_typeERK16DescriptorValuesRKNSt6vectorINSt6vectorIiEEEE", "ClusterDescriptor::add_clusters_by_type::structure"], [40, 3, 1, "_CPPv4N17ClusterDescriptor21cumulative_type_countE", "ClusterDescriptor::cumulative_type_count"], [40, 3, 1, "_CPPv4N17ClusterDescriptor13cutoff_valuesE", "ClusterDescriptor::cutoff_values"], [40, 3, 1, "_CPPv4N17ClusterDescriptor16descriptor_normsE", "ClusterDescriptor::descriptor_norms"], [40, 3, 1, "_CPPv4N17ClusterDescriptor11descriptorsE", "ClusterDescriptor::descriptors"], [40, 1, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster"], [40, 2, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster::n_descriptors"], [40, 2, 1, "_CPPv4N17ClusterDescriptor18initialize_clusterEii", "ClusterDescriptor::initialize_cluster::n_types"], [40, 3, 1, "_CPPv4N17ClusterDescriptor10n_clustersE", "ClusterDescriptor::n_clusters"], [40, 3, 1, "_CPPv4N17ClusterDescriptor18n_clusters_by_typeE", "ClusterDescriptor::n_clusters_by_type"], [40, 3, 1, "_CPPv4N17ClusterDescriptor13n_descriptorsE", "ClusterDescriptor::n_descriptors"], [40, 3, 1, "_CPPv4N17ClusterDescriptor7n_typesE", "ClusterDescriptor::n_types"], [40, 0, 1, "_CPPv410Descriptor", "Descriptor"], [40, 1, 1, "_CPPv4N10Descriptor10DescriptorEv", "Descriptor::Descriptor"], [40, 1, 1, "_CPPv4N10Descriptor13compute_strucER9Structure", "Descriptor::compute_struc"], [40, 2, 1, "_CPPv4N10Descriptor13compute_strucER9Structure", "Descriptor::compute_struc::structure"], [40, 3, 1, "_CPPv4N10Descriptor15descriptor_nameE", "Descriptor::descriptor_name"], [40, 1, 1, "_CPPv4N10Descriptor11return_jsonEv", "Descriptor::return_json"], [40, 1, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file"], [40, 2, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file::coeff_file"], [40, 2, 1, "_CPPv4N10Descriptor13write_to_fileERNSt8ofstreamEi", "Descriptor::write_to_file::coeff_size"], [40, 1, 1, "_CPPv4N10DescriptorD0Ev", "Descriptor::~Descriptor"], [40, 0, 1, "_CPPv416DescriptorValues", "DescriptorValues"], [40, 1, 1, "_CPPv4N16DescriptorValues16DescriptorValuesEv", "DescriptorValues::DescriptorValues"], [40, 3, 1, "_CPPv4N16DescriptorValues12atom_indicesE", "DescriptorValues::atom_indices"], [40, 3, 1, "_CPPv4N16DescriptorValues26cumulative_neighbor_countsE", "DescriptorValues::cumulative_neighbor_counts"], [40, 3, 1, "_CPPv4N16DescriptorValues21cumulative_type_countE", "DescriptorValues::cumulative_type_count"], [40, 3, 1, "_CPPv4N16DescriptorValues12cutoff_dervsE", "DescriptorValues::cutoff_dervs"], [40, 3, 1, "_CPPv4N16DescriptorValues13cutoff_valuesE", "DescriptorValues::cutoff_values"], [40, 3, 1, "_CPPv4N16DescriptorValues22descriptor_force_dervsE", "DescriptorValues::descriptor_force_dervs"], [40, 3, 1, "_CPPv4N16DescriptorValues21descriptor_force_dotsE", "DescriptorValues::descriptor_force_dots"], [40, 3, 1, "_CPPv4N16DescriptorValues16descriptor_normsE", "DescriptorValues::descriptor_norms"], [40, 3, 1, "_CPPv4N16DescriptorValues11descriptorsE", "DescriptorValues::descriptors"], [40, 3, 1, "_CPPv4N16DescriptorValues7n_atomsE", "DescriptorValues::n_atoms"], [40, 3, 1, "_CPPv4N16DescriptorValues10n_clustersE", "DescriptorValues::n_clusters"], [40, 3, 1, "_CPPv4N16DescriptorValues18n_clusters_by_typeE", "DescriptorValues::n_clusters_by_type"], [40, 3, 1, "_CPPv4N16DescriptorValues13n_descriptorsE", "DescriptorValues::n_descriptors"], [40, 3, 1, "_CPPv4N16DescriptorValues19n_neighbors_by_typeE", "DescriptorValues::n_neighbors_by_type"], [40, 3, 1, "_CPPv4N16DescriptorValues7n_typesE", "DescriptorValues::n_types"], [40, 3, 1, "_CPPv4N16DescriptorValues20neighbor_coordinatesE", "DescriptorValues::neighbor_coordinates"], [40, 3, 1, "_CPPv4N16DescriptorValues15neighbor_countsE", "DescriptorValues::neighbor_counts"], [40, 3, 1, "_CPPv4N16DescriptorValues16neighbor_indicesE", "DescriptorValues::neighbor_indices"], [40, 3, 1, "_CPPv4N16DescriptorValues6volumeE", "DescriptorValues::volume"], [42, 0, 1, "_CPPv46Kernel", "Kernel"], [42, 1, 1, "_CPPv4N6Kernel6KernelEN5Eigen8VectorXdE", "Kernel::Kernel"], [42, 1, 1, "_CPPv4N6Kernel6KernelEv", "Kernel::Kernel"], [42, 2, 1, "_CPPv4N6Kernel6KernelEN5Eigen8VectorXdE", "Kernel::Kernel::kernel_hyperparameters"], [42, 1, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::Kuf"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::hyps"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::kernel_index"], [42, 2, 1, "_CPPv4N6Kernel8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuf_grad::strucs"], [42, 1, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::Kuu"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "Kernel::Kuu_grad::hyps"], [42, 1, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients"], [42, 2, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients::gp_model"], [42, 2, 1, "_CPPv4N6Kernel28compute_mapping_coefficientsERK8SparseGPi", "Kernel::compute_mapping_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients"], [42, 2, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients::gp_model"], [42, 2, 1, "_CPPv4N6Kernel27compute_varmap_coefficientsERK8SparseGPi", "Kernel::compute_varmap_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::envs1"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::envs2"], [42, 2, 1, "_CPPv4N6Kernel9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs::hyps"], [42, 1, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::envs1"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::envs2"], [42, 2, 1, "_CPPv4N6Kernel14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "Kernel::envs_envs_grad::hyps"], [42, 1, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::envs"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc::struc"], [42, 1, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::envs"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::hyps"], [42, 2, 1, "_CPPv4N6Kernel15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::envs_struc_grad::struc"], [42, 3, 1, "_CPPv4N6Kernel22kernel_hyperparametersE", "Kernel::kernel_hyperparameters"], [42, 3, 1, "_CPPv4N6Kernel11kernel_nameE", "Kernel::kernel_name"], [42, 1, 1, "_CPPv4N6Kernel11return_jsonEv", "Kernel::return_json"], [42, 1, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc"], [42, 2, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::self_kernel_struc::struc"], [42, 1, 1, "_CPPv4N6Kernel19set_hyperparametersEN5Eigen8VectorXdE", "Kernel::set_hyperparameters"], [42, 2, 1, "_CPPv4N6Kernel19set_hyperparametersEN5Eigen8VectorXdE", "Kernel::set_hyperparameters::hyps"], [42, 1, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::hyps"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::struc1"], [42, 2, 1, "_CPPv4N6Kernel11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "Kernel::struc_struc::struc2"], [42, 1, 1, "_CPPv4N6Kernel10write_infoERNSt8ofstreamE", "Kernel::write_info"], [42, 2, 1, "_CPPv4N6Kernel10write_infoERNSt8ofstreamE", "Kernel::write_info::coeff_file"], [42, 1, 1, "_CPPv4N6KernelD0Ev", "Kernel::~Kernel"], [42, 0, 1, "_CPPv420NormalizedDotProduct", "NormalizedDotProduct"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::Kuf"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::kernel_index"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::new_hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuf_gradERK17ClusterDescriptorRKNSt6vectorI9StructureEEiRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuf_grad::strucs"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::Kuu"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct8Kuu_gradERK17ClusterDescriptorRKN5Eigen8MatrixXdERKN5Eigen8VectorXdE", "NormalizedDotProduct::Kuu_grad::new_hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEv", "NormalizedDotProduct::NormalizedDotProduct"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct::power"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct20NormalizedDotProductEdd", "NormalizedDotProduct::NormalizedDotProduct::sigma"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow1ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow1::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct22compute_map_coeff_pow2ERK8SparseGPi", "NormalizedDotProduct::compute_map_coeff_pow2::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct28compute_mapping_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_mapping_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients::gp_model"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct27compute_varmap_coefficientsERK8SparseGPi", "NormalizedDotProduct::compute_varmap_coefficients::kernel_index"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::envs1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::envs2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct9envs_envsERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs::hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::envs1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::envs2"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct14envs_envs_gradERK17ClusterDescriptorRK17ClusterDescriptorRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_envs_grad::hyps"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10envs_strucERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc::struc"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::envs"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct15envs_struc_gradERK17ClusterDescriptorRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::envs_struc_grad::struc"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct5powerE", "NormalizedDotProduct::power"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct17self_kernel_strucERK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::self_kernel_struc::struc"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct19set_hyperparametersEN5Eigen8VectorXdE", "NormalizedDotProduct::set_hyperparameters"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct19set_hyperparametersEN5Eigen8VectorXdE", "NormalizedDotProduct::set_hyperparameters::new_hyps"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct4sig2E", "NormalizedDotProduct::sig2"], [42, 3, 1, "_CPPv4N20NormalizedDotProduct5sigmaE", "NormalizedDotProduct::sigma"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::hyps"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::struc1"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct11struc_strucERK16DescriptorValuesRK16DescriptorValuesRKN5Eigen8VectorXdE", "NormalizedDotProduct::struc_struc::struc2"], [42, 1, 1, "_CPPv4N20NormalizedDotProduct10write_infoERNSt8ofstreamE", "NormalizedDotProduct::write_info"], [42, 2, 1, "_CPPv4N20NormalizedDotProduct10write_infoERNSt8ofstreamE", "NormalizedDotProduct::write_info::coeff_file"], [39, 0, 1, "_CPPv48SparseGP", "SparseGP"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_eE", "SparseGP::KnK_e"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_fE", "SparseGP::KnK_f"], [39, 3, 1, "_CPPv4N8SparseGP5KnK_sE", "SparseGP::KnK_s"], [39, 3, 1, "_CPPv4N8SparseGP3KufE", "SparseGP::Kuf"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_e_noise_KfuE", "SparseGP::Kuf_e_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_f_noise_KfuE", "SparseGP::Kuf_f_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP11Kuf_kernelsE", "SparseGP::Kuf_kernels"], [39, 3, 1, "_CPPv4N8SparseGP15Kuf_s_noise_KfuE", "SparseGP::Kuf_s_noise_Kfu"], [39, 3, 1, "_CPPv4N8SparseGP3KuuE", "SparseGP::Kuu"], [39, 3, 1, "_CPPv4N8SparseGP11Kuu_inverseE", "SparseGP::Kuu_inverse"], [39, 3, 1, "_CPPv4N8SparseGP10Kuu_jitterE", "SparseGP::Kuu_jitter"], [39, 3, 1, "_CPPv4N8SparseGP11Kuu_kernelsE", "SparseGP::Kuu_kernels"], [39, 3, 1, "_CPPv4N8SparseGP6L_diagE", "SparseGP::L_diag"], [39, 3, 1, "_CPPv4N8SparseGP5L_invE", "SparseGP::L_inv"], [39, 3, 1, "_CPPv4N8SparseGP5R_invE", "SparseGP::R_inv"], [39, 3, 1, "_CPPv4N8SparseGP10R_inv_diagE", "SparseGP::R_inv_diag"], [39, 3, 1, "_CPPv4N8SparseGP5SigmaE", "SparseGP::Sigma"], [39, 1, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP"], [39, 1, 1, "_CPPv4N8SparseGP8SparseGPEv", "SparseGP::SparseGP"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::energy_noise"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::force_noise"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::kernels"], [39, 2, 1, "_CPPv4N8SparseGP8SparseGPENSt6vectorIP6KernelEEddd", "SparseGP::SparseGP::stress_noise"], [39, 1, 1, "_CPPv4N8SparseGP20add_all_environmentsERK9Structure", "SparseGP::add_all_environments"], [39, 2, 1, "_CPPv4N8SparseGP20add_all_environmentsERK9Structure", "SparseGP::add_all_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments"], [39, 2, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments::n_added"], [39, 2, 1, "_CPPv4N8SparseGP23add_random_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_random_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments"], [39, 2, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments::atoms"], [39, 2, 1, "_CPPv4N8SparseGP25add_specific_environmentsERK9StructureKNSt6vectorIiEE", "SparseGP::add_specific_environments::structure"], [39, 1, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::atom_indices"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_e_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_f_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::rel_s_noise"], [39, 2, 1, "_CPPv4N8SparseGP22add_training_structureERK9StructureKNSt6vectorIiEEddd", "SparseGP::add_training_structure::structure"], [39, 1, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments"], [39, 2, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments::n_added"], [39, 2, 1, "_CPPv4N8SparseGP26add_uncertain_environmentsERK9StructureRKNSt6vectorIiEE", "SparseGP::add_uncertain_environments::structure"], [39, 3, 1, "_CPPv4N8SparseGP5alphaE", "SparseGP::alpha"], [39, 3, 1, "_CPPv4N8SparseGP18complexity_penaltyE", "SparseGP::complexity_penalty"], [39, 1, 1, "_CPPv4N8SparseGP11compute_KnKEb", "SparseGP::compute_KnK"], [39, 2, 1, "_CPPv4N8SparseGP11compute_KnKEb", "SparseGP::compute_KnK::precomputed"], [39, 1, 1, "_CPPv4N8SparseGP29compute_cluster_uncertaintiesERK9Structure", "SparseGP::compute_cluster_uncertainties"], [39, 2, 1, "_CPPv4N8SparseGP29compute_cluster_uncertaintiesERK9Structure", "SparseGP::compute_cluster_uncertainties::structure"], [39, 1, 1, "_CPPv4N8SparseGP12compute_dKnKEi", "SparseGP::compute_dKnK"], [39, 2, 1, "_CPPv4N8SparseGP12compute_dKnKEi", "SparseGP::compute_dKnK::i"], [39, 1, 1, "_CPPv4N8SparseGP18compute_likelihoodEv", "SparseGP::compute_likelihood"], [39, 1, 1, "_CPPv4N8SparseGP27compute_likelihood_gradientERKN5Eigen8VectorXdE", "SparseGP::compute_likelihood_gradient"], [39, 2, 1, "_CPPv4N8SparseGP27compute_likelihood_gradientERKN5Eigen8VectorXdE", "SparseGP::compute_likelihood_gradient::hyperparameters"], [39, 1, 1, "_CPPv4N8SparseGP34compute_likelihood_gradient_stableEb", "SparseGP::compute_likelihood_gradient_stable"], [39, 2, 1, "_CPPv4N8SparseGP34compute_likelihood_gradient_stableEb", "SparseGP::compute_likelihood_gradient_stable::precomputed_KnK"], [39, 1, 1, "_CPPv4N8SparseGP25compute_likelihood_stableEv", "SparseGP::compute_likelihood_stable"], [39, 3, 1, "_CPPv4N8SparseGP13constant_termE", "SparseGP::constant_term"], [39, 3, 1, "_CPPv4N8SparseGP8data_fitE", "SparseGP::data_fit"], [39, 3, 1, "_CPPv4N8SparseGP11e_noise_oneE", "SparseGP::e_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP12energy_noiseE", "SparseGP::energy_noise"], [39, 3, 1, "_CPPv4N8SparseGP11f_noise_oneE", "SparseGP::f_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP11force_noiseE", "SparseGP::force_noise"], [39, 3, 1, "_CPPv4N8SparseGP15hyperparametersE", "SparseGP::hyperparameters"], [39, 1, 1, "_CPPv4N8SparseGP29initialize_sparse_descriptorsERK9Structure", "SparseGP::initialize_sparse_descriptors"], [39, 2, 1, "_CPPv4N8SparseGP29initialize_sparse_descriptorsERK9Structure", "SparseGP::initialize_sparse_descriptors::structure"], [39, 3, 1, "_CPPv4N8SparseGP15inv_e_noise_oneE", "SparseGP::inv_e_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP15inv_f_noise_oneE", "SparseGP::inv_f_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP15inv_s_noise_oneE", "SparseGP::inv_s_noise_one"], [39, 3, 1, "_CPPv4N8SparseGP7kernelsE", "SparseGP::kernels"], [39, 3, 1, "_CPPv4N8SparseGP11label_countE", "SparseGP::label_count"], [39, 3, 1, "_CPPv4N8SparseGP19likelihood_gradientE", "SparseGP::likelihood_gradient"], [39, 3, 1, "_CPPv4N8SparseGP23log_marginal_likelihoodE", "SparseGP::log_marginal_likelihood"], [39, 3, 1, "_CPPv4N8SparseGP15n_energy_labelsE", "SparseGP::n_energy_labels"], [39, 3, 1, "_CPPv4N8SparseGP14n_force_labelsE", "SparseGP::n_force_labels"], [39, 3, 1, "_CPPv4N8SparseGP9n_kernelsE", "SparseGP::n_kernels"], [39, 3, 1, "_CPPv4N8SparseGP8n_labelsE", "SparseGP::n_labels"], [39, 3, 1, "_CPPv4N8SparseGP8n_sparseE", "SparseGP::n_sparse"], [39, 3, 1, "_CPPv4N8SparseGP15n_stress_labelsE", "SparseGP::n_stress_labels"], [39, 3, 1, "_CPPv4N8SparseGP8n_strucsE", "SparseGP::n_strucs"], [39, 3, 1, "_CPPv4N8SparseGP12noise_vectorE", "SparseGP::noise_vector"], [39, 1, 1, "_CPPv4N8SparseGP14precompute_KnKEv", "SparseGP::precompute_KnK"], [39, 1, 1, "_CPPv4N8SparseGP11predict_DTCER9Structure", "SparseGP::predict_DTC"], [39, 2, 1, "_CPPv4N8SparseGP11predict_DTCER9Structure", "SparseGP::predict_DTC::structure"], [39, 1, 1, "_CPPv4N8SparseGP11predict_SORER9Structure", "SparseGP::predict_SOR"], [39, 2, 1, "_CPPv4N8SparseGP11predict_SORER9Structure", "SparseGP::predict_SOR::structure"], [39, 1, 1, "_CPPv4N8SparseGP27predict_local_uncertaintiesER9Structure", "SparseGP::predict_local_uncertainties"], [39, 2, 1, "_CPPv4N8SparseGP27predict_local_uncertaintiesER9Structure", "SparseGP::predict_local_uncertainties::structure"], [39, 1, 1, "_CPPv4N8SparseGP12predict_meanER9Structure", "SparseGP::predict_mean"], [39, 2, 1, "_CPPv4N8SparseGP12predict_meanER9Structure", "SparseGP::predict_mean::structure"], [39, 3, 1, "_CPPv4N8SparseGP11s_noise_oneE", "SparseGP::s_noise_one"], [39, 1, 1, "_CPPv4N8SparseGP19set_hyperparametersEN5Eigen8VectorXdE", "SparseGP::set_hyperparameters"], [39, 2, 1, "_CPPv4N8SparseGP19set_hyperparametersEN5Eigen8VectorXdE", "SparseGP::set_hyperparameters::hyps"], [39, 1, 1, "_CPPv4N8SparseGP28sort_clusters_by_uncertaintyERK9Structure", "SparseGP::sort_clusters_by_uncertainty"], [39, 2, 1, "_CPPv4N8SparseGP28sort_clusters_by_uncertaintyERK9Structure", "SparseGP::sort_clusters_by_uncertainty::structure"], [39, 3, 1, "_CPPv4N8SparseGP18sparse_descriptorsE", "SparseGP::sparse_descriptors"], [39, 3, 1, "_CPPv4N8SparseGP14sparse_indicesE", "SparseGP::sparse_indices"], [39, 1, 1, "_CPPv4N8SparseGP9stack_KufEv", "SparseGP::stack_Kuf"], [39, 1, 1, "_CPPv4N8SparseGP9stack_KuuEv", "SparseGP::stack_Kuu"], [39, 3, 1, "_CPPv4N8SparseGP12stress_noiseE", "SparseGP::stress_noise"], [39, 3, 1, "_CPPv4N8SparseGP10trace_termE", "SparseGP::trace_term"], [39, 3, 1, "_CPPv4N8SparseGP21training_atom_indicesE", "SparseGP::training_atom_indices"], [39, 3, 1, "_CPPv4N8SparseGP19training_structuresE", "SparseGP::training_structures"], [39, 1, 1, "_CPPv4N8SparseGP10update_KufERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuf"], [39, 2, 1, "_CPPv4N8SparseGP10update_KufERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuf::cluster_descriptors"], [39, 1, 1, "_CPPv4N8SparseGP10update_KuuERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuu"], [39, 2, 1, "_CPPv4N8SparseGP10update_KuuERKNSt6vectorI17ClusterDescriptorEE", "SparseGP::update_Kuu::cluster_descriptors"], [39, 1, 1, "_CPPv4N8SparseGP18update_matrices_QREv", "SparseGP::update_matrices_QR"], [39, 3, 1, "_CPPv4N8SparseGP13varmap_coeffsE", "SparseGP::varmap_coeffs"], [39, 1, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse"], [39, 2, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse::contributor"], [39, 2, 1, "_CPPv4N8SparseGP15write_L_inverseENSt6stringENSt6stringE", "SparseGP::write_L_inverse::file_name"], [39, 1, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::contributor"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::file_name"], [39, 2, 1, "_CPPv4N8SparseGP26write_mapping_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_mapping_coefficients::kernel_index"], [39, 1, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors"], [39, 2, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors::contributor"], [39, 2, 1, "_CPPv4N8SparseGP24write_sparse_descriptorsENSt6stringENSt6stringE", "SparseGP::write_sparse_descriptors::file_name"], [39, 1, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::contributor"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::file_name"], [39, 2, 1, "_CPPv4N8SparseGP25write_varmap_coefficientsENSt6stringENSt6stringEi", "SparseGP::write_varmap_coefficients::kernel_index"], [39, 3, 1, "_CPPv4N8SparseGP1yE", "SparseGP::y"], [43, 0, 1, "_CPPv49Structure", "Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure"], [43, 1, 1, "_CPPv4N9Structure9StructureEv", "Structure::Structure"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::cell"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::cell"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::cutoff"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::descriptor_calculators"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::positions"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::positions"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdE", "Structure::Structure::species"], [43, 2, 1, "_CPPv4N9Structure9StructureERKN5Eigen8MatrixXdERKNSt6vectorIiEERKN5Eigen8MatrixXdEdNSt6vectorIP10DescriptorEE", "Structure::Structure::species"], [43, 3, 1, "_CPPv4N9Structure4cellE", "Structure::cell"], [43, 3, 1, "_CPPv4N9Structure8cell_dotE", "Structure::cell_dot"], [43, 3, 1, "_CPPv4N9Structure16cell_dot_inverseE", "Structure::cell_dot_inverse"], [43, 3, 1, "_CPPv4N9Structure14cell_transposeE", "Structure::cell_transpose"], [43, 3, 1, "_CPPv4N9Structure22cell_transpose_inverseE", "Structure::cell_transpose_inverse"], [43, 1, 1, "_CPPv4N9Structure19compute_descriptorsEv", "Structure::compute_descriptors"], [43, 1, 1, "_CPPv4N9Structure17compute_neighborsEv", "Structure::compute_neighbors"], [43, 3, 1, "_CPPv4N9Structure25cumulative_neighbor_countE", "Structure::cumulative_neighbor_count"], [43, 3, 1, "_CPPv4N9Structure6cutoffE", "Structure::cutoff"], [43, 3, 1, "_CPPv4N9Structure22descriptor_calculatorsE", "Structure::descriptor_calculators"], [43, 3, 1, "_CPPv4N9Structure11descriptorsE", "Structure::descriptors"], [43, 3, 1, "_CPPv4N9Structure6energyE", "Structure::energy"], [43, 3, 1, "_CPPv4N9Structure6forcesE", "Structure::forces"], [43, 1, 1, "_CPPv4N9Structure23get_single_sweep_cutoffEv", "Structure::get_single_sweep_cutoff"], [43, 3, 1, "_CPPv4N9Structure19local_uncertaintiesE", "Structure::local_uncertainties"], [43, 3, 1, "_CPPv4N9Structure18mean_contributionsE", "Structure::mean_contributions"], [43, 3, 1, "_CPPv4N9Structure8mean_efsE", "Structure::mean_efs"], [43, 3, 1, "_CPPv4N9Structure11n_neighborsE", "Structure::n_neighbors"], [43, 3, 1, "_CPPv4N9Structure14neighbor_countE", "Structure::neighbor_count"], [43, 3, 1, "_CPPv4N9Structure16neighbor_speciesE", "Structure::neighbor_species"], [43, 3, 1, "_CPPv4N9Structure3noaE", "Structure::noa"], [43, 3, 1, "_CPPv4N9Structure9positionsE", "Structure::positions"], [43, 3, 1, "_CPPv4N9Structure18relative_positionsE", "Structure::relative_positions"], [43, 3, 1, "_CPPv4N9Structure19single_sweep_cutoffE", "Structure::single_sweep_cutoff"], [43, 3, 1, "_CPPv4N9Structure7speciesE", "Structure::species"], [43, 3, 1, "_CPPv4N9Structure8stressesE", "Structure::stresses"], [43, 3, 1, "_CPPv4N9Structure17structure_indicesE", "Structure::structure_indices"], [43, 3, 1, "_CPPv4N9Structure5sweepE", "Structure::sweep"], [43, 3, 1, "_CPPv4N9Structure12variance_efsE", "Structure::variance_efs"], [43, 3, 1, "_CPPv4N9Structure6volumeE", "Structure::volume"], [43, 1, 1, "_CPPv4N9Structure14wrap_positionsEv", "Structure::wrap_positions"], [43, 3, 1, "_CPPv4N9Structure17wrapped_positionsE", "Structure::wrapped_positions"]], "flare.bffs.gp": [[6, 4, 0, "-", "calculator"], [7, 4, 0, "-", "gp"], [8, 4, 0, "-", "gp_algebra"], [9, 4, 0, "-", "predict"]], "flare.bffs.gp.calculator": [[6, 5, 1, "", "FLARE_Calculator"]], "flare.bffs.gp.calculator.FLARE_Calculator": [[6, 6, 1, "", "calculate"], [6, 7, 1, "", "implemented_properties"]], "flare.bffs.gp.gp": [[7, 5, 1, "", "GaussianProcess"]], "flare.bffs.gp.gp.GaussianProcess": [[7, 6, 1, "", "add_one_env"], [7, 6, 1, "", "adjust_cutoffs"], [7, 6, 1, "", "as_dict"], [7, 6, 1, "", "backward_arguments"], [7, 6, 1, "", "backward_attributes"], [7, 6, 1, "", "check_L_alpha"], [7, 6, 1, "", "check_instantiation"], [7, 6, 1, "", "compute_matrices"], [7, 6, 1, "", "from_dict"], [7, 6, 1, "", "from_file"], [7, 8, 1, "", "par"], [7, 6, 1, "", "predict"], [7, 6, 1, "", "predict_efs"], [7, 6, 1, "", "predict_force_xyz"], [7, 6, 1, "", "predict_local_energy"], [7, 6, 1, "", "predict_local_energy_and_var"], [7, 6, 1, "", "remove_force_data"], [7, 6, 1, "", "set_L_alpha"], [7, 6, 1, "", "train"], [7, 8, 1, "", "training_statistics"], [7, 6, 1, "", "update_L_alpha"], [7, 6, 1, "", "update_db"], [7, 6, 1, "", "write_model"]], "flare.bffs.gp.gp_algebra": [[8, 9, 1, "", "efs_energy_vector"], [8, 9, 1, "", "efs_force_vector"], [8, 9, 1, "", "energy_energy_vector"], [8, 9, 1, "", "energy_energy_vector_unit"], [8, 9, 1, "", "energy_force_vector"], [8, 9, 1, "", "energy_force_vector_unit"], [8, 9, 1, "", "force_energy_vector"], [8, 9, 1, "", "force_energy_vector_unit"], [8, 9, 1, "", "force_force_vector"], [8, 9, 1, "", "force_force_vector_unit"], [8, 9, 1, "", "get_distance_mat_pack"], [8, 9, 1, "", "get_force_block"], [8, 9, 1, "", "get_force_block_pack"], [8, 9, 1, "", "get_ky_and_hyp"], [8, 9, 1, "", "get_ky_and_hyp_pack"], [8, 9, 1, "", "get_like_from_mats"], [8, 9, 1, "", "get_like_grad_from_mats"], [8, 9, 1, "", "get_neg_like"], [8, 9, 1, "", "get_neg_like_grad"], [8, 9, 1, "", "kernel_distance_mat"], [8, 9, 1, "", "obtain_noise_len"], [8, 9, 1, "", "partition_force_energy_block"], [8, 9, 1, "", "partition_matrix"], [8, 9, 1, "", "partition_matrix_custom"], [8, 9, 1, "", "partition_vector"], [8, 9, 1, "", "queue_wrapper"]], "flare.bffs.gp.predict": [[9, 9, 1, "", "predict_on_atom"], [9, 9, 1, "", "predict_on_atom_efs"], [9, 9, 1, "", "predict_on_atom_en"], [9, 9, 1, "", "predict_on_atom_en_std"], [9, 9, 1, "", "predict_on_structure"], [9, 9, 1, "", "predict_on_structure_en"], [9, 9, 1, "", "predict_on_structure_mgp"], [9, 9, 1, "", "predict_on_structure_par"], [9, 9, 1, "", "predict_on_structure_par_en"]], "flare.bffs.mgp": [[11, 4, 0, "-", "mgp"], [12, 4, 0, "-", "splines_methods"]], "flare.bffs.mgp.mgp": [[11, 5, 1, "", "MappedGaussianProcess"]], "flare.bffs.mgp.mgp.MappedGaussianProcess": [[11, 6, 1, "", "as_dict"], [11, 6, 1, "", "from_dict"], [11, 6, 1, "", "predict"], [11, 6, 1, "", "write_lmp_file"], [11, 6, 1, "", "write_model"]], "flare.bffs.mgp.splines_methods": [[12, 5, 1, "", "CubicSpline"], [12, 5, 1, "", "PCASplines"], [12, 9, 1, "", "vec_eval_cubic_spline"]], "flare.bffs.mgp.splines_methods.CubicSpline": [[12, 8, 1, "", "grid"], [12, 6, 1, "", "interpolate"], [12, 6, 1, "", "set_values"]], "flare.bffs.sgp": [[13, 4, 0, "-", "calculator"], [14, 4, 0, "-", "sparse_gp"]], "flare.bffs.sgp.calculator": [[13, 5, 1, "", "SGP_Calculator"]], "flare.bffs.sgp.calculator.SGP_Calculator": [[13, 6, 1, "", "calculate"], [13, 7, 1, "", "implemented_properties"]], "flare.bffs.sgp.sparse_gp": [[14, 5, 1, "", "SGP_Wrapper"], [14, 9, 1, "", "compute_negative_likelihood"], [14, 9, 1, "", "compute_negative_likelihood_grad"], [14, 9, 1, "", "compute_negative_likelihood_grad_stable"], [14, 9, 1, "", "optimize_hyperparameters"]], "flare.bffs.sgp.sparse_gp.SGP_Wrapper": [[14, 6, 1, "", "from_dict"], [14, 6, 1, "", "write_model"]], "flare.descriptors": [[16, 4, 0, "-", "env"]], "flare.descriptors.env": [[16, 5, 1, "", "AtomicEnvironment"]], "flare.descriptors.env.AtomicEnvironment": [[16, 6, 1, "", "as_dict"], [16, 6, 1, "", "as_str"], [16, 6, 1, "", "from_dict"], [16, 6, 1, "", "from_file"]], "flare.io": [[19, 4, 0, "-", "otf_parser"], [20, 4, 0, "-", "output"]], "flare.io.otf_parser": [[19, 5, 1, "", "OtfAnalysis"], [19, 9, 1, "", "append_atom_lists"], [19, 9, 1, "", "extract_gp_info"], [19, 9, 1, "", "parse_frame_line"], [19, 9, 1, "", "parse_header_information"], [19, 9, 1, "", "parse_snapshot"], [19, 9, 1, "", "strip_and_split"]], "flare.io.otf_parser.OtfAnalysis": [[19, 6, 1, "", "make_gp"], [19, 6, 1, "", "output_md_structures"], [19, 6, 1, "", "parse_pos_otf"], [19, 6, 1, "", "to_xyz"]], "flare.io.output": [[20, 5, 1, "", "Output"], [20, 9, 1, "", "add_file"], [20, 9, 1, "", "add_stream"], [20, 9, 1, "", "set_logger"]], "flare.io.output.Output": [[20, 6, 1, "", "conclude_run"], [20, 6, 1, "", "open_new_log"], [20, 6, 1, "", "write_gp_dft_comparison"], [20, 6, 1, "", "write_header"], [20, 6, 1, "", "write_hyps"], [20, 6, 1, "", "write_md_config"], [20, 6, 1, "", "write_to_log"], [20, 6, 1, "", "write_xyz_config"]], "flare.kernels": [[21, 4, 0, "-", "cutoffs"], [22, 4, 0, "-", "kernels"], [24, 4, 0, "-", "mc_3b_sepcut"], [24, 4, 0, "-", "mc_mb_sepcut"], [24, 4, 0, "-", "mc_sephyps"], [25, 4, 0, "-", "mc_simple"], [26, 4, 0, "-", "sc"]], "flare.kernels.cutoffs": [[21, 9, 1, "", "cosine_cutoff"], [21, 9, 1, "", "cubic_cutoff"], [21, 9, 1, "", "hard_cutoff"], [21, 9, 1, "", "quadratic_cutoff"], [21, 9, 1, "", "quadratic_cutoff_bound"]], "flare.kernels.kernels": [[22, 9, 1, "", "coordination_number"], [22, 9, 1, "", "force_helper"], [22, 9, 1, "", "k_sq_exp_dev"], [22, 9, 1, "", "k_sq_exp_double_dev"], [22, 9, 1, "", "mb_grad_helper_ls"], [22, 9, 1, "", "mb_grad_helper_ls_"], [22, 9, 1, "", "q_value"], [22, 9, 1, "", "q_value_mc"]], "flare.kernels.mc_3b_sepcut": [[24, 9, 1, "", "three_body_mc_force_en_sepcut_jit"], [24, 9, 1, "", "three_body_mc_grad_sepcut_jit"]], "flare.kernels.mc_mb_sepcut": [[24, 9, 1, "", "many_body_mc_en_sepcut_jit"], [24, 9, 1, "", "many_body_mc_force_en_sepcut_jit"], [24, 9, 1, "", "many_body_mc_grad_sepcut_jit"], [24, 9, 1, "", "many_body_mc_sepcut_jit"]], "flare.kernels.mc_sephyps": [[24, 9, 1, "", "many_body_mc"], [24, 9, 1, "", "many_body_mc_en"], [24, 9, 1, "", "many_body_mc_force_en"], [24, 9, 1, "", "many_body_mc_grad"], [24, 9, 1, "", "three_body_mc"], [24, 9, 1, "", "three_body_mc_en"], [24, 9, 1, "", "three_body_mc_force_en"], [24, 9, 1, "", "three_body_mc_force_en_jit"], [24, 9, 1, "", "three_body_mc_grad"], [24, 9, 1, "", "three_body_mc_grad_jit"], [24, 9, 1, "", "two_body_mc"], [24, 9, 1, "", "two_body_mc_en"], [24, 9, 1, "", "two_body_mc_en_jit"], [24, 9, 1, "", "two_body_mc_force_en"], [24, 9, 1, "", "two_body_mc_force_en_jit"], [24, 9, 1, "", "two_body_mc_grad"], [24, 9, 1, "", "two_body_mc_grad_jit"], [24, 9, 1, "", "two_body_mc_jit"], [24, 9, 1, "", "two_plus_three_body_mc"], [24, 9, 1, "", "two_plus_three_body_mc_grad"], [24, 9, 1, "", "two_plus_three_mc_en"], [24, 9, 1, "", "two_plus_three_mc_force_en"], [24, 9, 1, "", "two_three_many_body_mc"], [24, 9, 1, "", "two_three_many_body_mc_grad"], [24, 9, 1, "", "two_three_many_mc_en"], [24, 9, 1, "", "two_three_many_mc_force_en"]], "flare.kernels.mc_simple": [[25, 9, 1, "", "many_body_mc"], [25, 9, 1, "", "many_body_mc_en"], [25, 9, 1, "", "many_body_mc_en_jit"], [25, 9, 1, "", "many_body_mc_force_en"], [25, 9, 1, "", "many_body_mc_force_en_jit"], [25, 9, 1, "", "many_body_mc_grad"], [25, 9, 1, "", "many_body_mc_grad_jit"], [25, 9, 1, "", "many_body_mc_jit"], [25, 9, 1, "", "three_body_mc"], [25, 9, 1, "", "three_body_mc_en"], [25, 9, 1, "", "three_body_mc_en_jit"], [25, 9, 1, "", "three_body_mc_force_en"], [25, 9, 1, "", "three_body_mc_force_en_jit"], [25, 9, 1, "", "three_body_mc_grad"], [25, 9, 1, "", "three_body_mc_grad_jit"], [25, 9, 1, "", "three_body_mc_jit"], [25, 9, 1, "", "three_body_se_jit"], [25, 9, 1, "", "three_body_sf_jit"], [25, 9, 1, "", "three_body_ss_jit"], [25, 9, 1, "", "two_body_mc"], [25, 9, 1, "", "two_body_mc_en"], [25, 9, 1, "", "two_body_mc_en_jit"], [25, 9, 1, "", "two_body_mc_force_en"], [25, 9, 1, "", "two_body_mc_force_en_jit"], [25, 9, 1, "", "two_body_mc_grad"], [25, 9, 1, "", "two_body_mc_grad_jit"], [25, 9, 1, "", "two_body_mc_jit"], [25, 9, 1, "", "two_body_mc_stress_en_jit"], [25, 9, 1, "", "two_body_mc_stress_force_jit"], [25, 9, 1, "", "two_body_mc_stress_stress_jit"], [25, 9, 1, "", "two_plus_many_body_mc"], [25, 9, 1, "", "two_plus_many_body_mc_en"], [25, 9, 1, "", "two_plus_many_body_mc_force_en"], [25, 9, 1, "", "two_plus_many_body_mc_grad"], [25, 9, 1, "", "two_plus_three_body_mc"], [25, 9, 1, "", "two_plus_three_body_mc_grad"], [25, 9, 1, "", "two_plus_three_mc_en"], [25, 9, 1, "", "two_plus_three_mc_force_en"], [25, 9, 1, "", "two_plus_three_plus_many_body_mc"], [25, 9, 1, "", "two_plus_three_plus_many_body_mc_en"], [25, 9, 1, "", "two_plus_three_plus_many_body_mc_force_en"], [25, 9, 1, "", "two_plus_three_plus_many_body_mc_grad"]], "flare.kernels.sc": [[26, 9, 1, "", "many_body"], [26, 9, 1, "", "many_body_en"], [26, 9, 1, "", "many_body_en_jit"], [26, 9, 1, "", "many_body_force_en"], [26, 9, 1, "", "many_body_force_en_jit"], [26, 9, 1, "", "many_body_grad"], [26, 9, 1, "", "many_body_grad_jit"], [26, 9, 1, "", "many_body_jit"], [26, 9, 1, "", "three_body"], [26, 9, 1, "", "three_body_en"], [26, 9, 1, "", "three_body_en_jit"], [26, 9, 1, "", "three_body_force_en"], [26, 9, 1, "", "three_body_force_en_jit"], [26, 9, 1, "", "three_body_grad"], [26, 9, 1, "", "three_body_grad_jit"], [26, 9, 1, "", "three_body_jit"], [26, 9, 1, "", "two_body"], [26, 9, 1, "", "two_body_en"], [26, 9, 1, "", "two_body_en_jit"], [26, 9, 1, "", "two_body_force_en"], [26, 9, 1, "", "two_body_force_en_jit"], [26, 9, 1, "", "two_body_grad"], [26, 9, 1, "", "two_body_grad_jit"], [26, 9, 1, "", "two_body_jit"], [26, 9, 1, "", "two_plus_many_body"], [26, 9, 1, "", "two_plus_many_body_en"], [26, 9, 1, "", "two_plus_many_body_force_en"], [26, 9, 1, "", "two_plus_many_body_grad"], [26, 9, 1, "", "two_plus_three_body"], [26, 9, 1, "", "two_plus_three_body_grad"], [26, 9, 1, "", "two_plus_three_en"], [26, 9, 1, "", "two_plus_three_force_en"], [26, 9, 1, "", "two_plus_three_plus_many_body"], [26, 9, 1, "", "two_plus_three_plus_many_body_en"], [26, 9, 1, "", "two_plus_three_plus_many_body_force_en"], [26, 9, 1, "", "two_plus_three_plus_many_body_grad"]], "flare.learners": [[27, 4, 0, "-", "gp_from_aimd"], [30, 4, 0, "-", "otf"], [31, 4, 0, "-", "utils"]], "flare.learners.gp_from_aimd": [[27, 9, 1, "", "parse_trajectory_trainer_output"], [27, 9, 1, "", "structures_from_gpfa_output"]], "flare.learners.otf": [[30, 5, 1, "", "OTF"]], "flare.learners.otf.OTF": [[30, 6, 1, "", "compute_properties"], [30, 6, 1, "", "md_step"], [30, 6, 1, "", "rescale_temperature"], [30, 6, 1, "", "run"], [30, 6, 1, "", "run_dft"], [30, 6, 1, "", "train_gp"], [30, 6, 1, "", "update_gp"], [30, 6, 1, "", "update_temperature"]], "flare.learners.utils": [[31, 9, 1, "", "get_max_cutoff"], [31, 9, 1, "", "is_force_in_bound_per_species"], [31, 9, 1, "", "is_std_in_bound"], [31, 9, 1, "", "is_std_in_bound_per_species"], [31, 9, 1, "", "subset_of_frame_by_element"]], "flare.md": [[32, 4, 0, "-", "fake"], [33, 4, 0, "-", "lammps"], [35, 4, 0, "-", "nosehoover"]], "flare.md.fake": [[32, 5, 1, "", "FakeDFT"], [32, 5, 1, "", "FakeMD"]], "flare.md.fake.FakeDFT": [[32, 6, 1, "", "calculate"], [32, 7, 1, "", "implemented_properties"]], "flare.md.lammps": [[33, 5, 1, "", "LAMMPS_MD"], [33, 5, 1, "", "LAMMPS_MOD"], [33, 9, 1, "", "check_sgp_match"], [33, 9, 1, "", "get_kinetic_stress"]], "flare.md.lammps.LAMMPS_MD": [[33, 6, 1, "", "backup"], [33, 6, 1, "", "step"]], "flare.md.lammps.LAMMPS_MOD": [[33, 6, 1, "", "calculate"]], "flare.md.nosehoover": [[35, 5, 1, "", "NoseHoover"]], "flare.md.nosehoover.NoseHoover": [[35, 6, 1, "", "step"]], "flare": [[38, 4, 0, "-", "utils"]], "flare.utils": [[38, 5, 1, "", "NumpyEncoder"], [36, 4, 0, "-", "env_getarray"], [37, 4, 0, "-", "parameter_helper"], [37, 4, 0, "-", "parameters"]], "flare.utils.env_getarray": [[36, 9, 1, "", "get_2_body_arrays"], [36, 9, 1, "", "get_3_body_arrays"], [36, 9, 1, "", "get_m2_body_arrays"], [36, 9, 1, "", "get_m3_body_arrays"], [36, 9, 1, "", "q3_value_mc"]], "flare.utils.parameter_helper": [[37, 5, 1, "", "ParameterHelper"], [37, 9, 1, "", "nprandom"]], "flare.utils.parameter_helper.ParameterHelper": [[37, 6, 1, "", "all_separate_groups"], [37, 6, 1, "", "as_dict"], [37, 6, 1, "", "define_group"], [37, 6, 1, "", "fill_in_parameters"], [37, 6, 1, "", "find_group"], [37, 6, 1, "", "from_dict"], [37, 6, 1, "", "list_groups"], [37, 6, 1, "", "list_parameters"], [37, 6, 1, "", "set_constraints"], [37, 6, 1, "", "set_parameters"], [37, 6, 1, "", "summarize_group"]]}, "objtypes": {"0": "cpp:class", "1": "cpp:function", "2": "cpp:functionParam", "3": "cpp:member", "4": "py:module", "5": "py:class", "6": "py:method", "7": "py:attribute", "8": "py:property", "9": "py:function"}, "objnames": {"0": ["cpp", "class", "C++ class"], "1": ["cpp", "function", "C++ function"], "2": ["cpp", "functionParam", "C++ function parameter"], "3": ["cpp", "member", "C++ member"], "4": ["py", "module", "Python module"], "5": ["py", "class", "Python class"], "6": ["py", "method", "Python method"], "7": ["py", "attribute", "Python attribute"], "8": ["py", "property", "Python property"], "9": ["py", "function", "Python function"]}, "titleterms": {"how": [0, 1], "cite": 0, "To": 1, "contribut": 1, "code": [2, 17, 41], "standard": 2, "pep": 2, "8": 2, "docstr": 2, "test": [2, 45], "git": 3, "workflow": 3, "gener": 3, "master": 3, "develop": [3, 45], "topic": 3, "branch": 3, "push": 3, "chang": 3, "mir": 3, "repo": 3, "directli": 3, "from": [3, 27, 49, 51], "fork": 3, "frequent": 4, "ask": 4, "question": 4, "instal": [4, 45, 46], "packag": 4, "gaussian": [4, 7, 10, 11, 14, 45, 51], "process": [4, 7, 10, 11, 14, 45, 51], "otf": [4, 19, 49], "On": [4, 29, 30], "fly": [4, 29, 30], "activ": [4, 28, 50], "learn": [4, 28, 44, 50], "offlin": 4, "product": 4, "md": [4, 32, 33, 34], "simul": 4, "us": 4, "flare": [4, 6, 44, 45, 47, 50], "ml": 4, "ff": 4, "bayesian": [5, 28, 39, 50], "forc": [5, 7, 14, 39, 49, 50], "field": [5, 7, 14, 39, 49, 50], "ASE": [6, 13, 34], "calcul": [6, 13, 33], "helper": [8, 22], "function": [8, 21, 22], "gp": [8, 13, 27, 49], "predict": 9, "formul": 10, "map": [10, 11, 49], "energi": 10, "uncertainti": 10, "dimens": 10, "reduct": 10, "refer": 10, "spline": 12, "method": 12, "spars": [13, 14, 45], "descriptor": [15, 40], "atom": [16, 36], "environ": [16, 36], "python": 17, "document": [17, 41], "file": [18, 49], "input": 18, "output": [18, 20], "parser": 19, "cutoff": 21, "kernel": [23, 24, 25, 26, 42], "multi": [24, 25], "element": [24, 25, 26], "separ": 24, "paramet": 24, "simpl": 25, "singl": 26, "aimd": [27, 51], "seed": 27, "frame": [27, 51], "train": [29, 30, 31, 51], "lammp": [29, 33, 47, 49], "condit": 31, "add": 31, "data": 31, "fake": 32, "engin": 34, "nosehoov": 35, "nvt": 35, "ensembl": 35, "construct": [36, 49], "advanc": 37, "hyperparamet": 37, "set": [37, 51], "up": [37, 51], "util": 38, "c": 41, "structur": 43, "fast": 44, "atomist": 44, "rare": 44, "event": 44, "content": 44, "requir": 45, "": 45, "guid": 45, "troubl": 45, "shoot": 45, "acceler": 45, "multiprocess": 45, "mkl": 45, "model": [45, 49], "full": 45, "compil": 47, "cmake": 47, "gpu": 47, "kokko": 47, "basic": 47, "usag": 47, "run": [47, 49, 51], "note": 47, "newton": 47, "onli": 47, "relev": 47, "applic": 48, "galleri": 48, "build": 49, "2": [49, 51], "3": [49, 51], "bodi": [49, 51], "pars": 49, "log": 49, "dump": 49, "coeffici": 49, "mgp": 49, "pair": 49, "style": 49, "an": 51, "roadmap": 51, "figur": 51, "step": 51, "1": 51, "object": 51, "option": 51, "extract": 51, "previou": 51, "your": 51, "pre": 51, "argument": 51, "tutori": 52}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 56}}) \ No newline at end of file