From 954fe9acc25c60ef55ab909051ac03b8b3db3aa2 Mon Sep 17 00:00:00 2001 From: jonpvandermause Date: Fri, 20 Sep 2024 03:35:44 +0000 Subject: [PATCH] deploy: 6eaf9dcc77a9290e1f47e8106aac4381a908f90a --- flare/bffs/bffs.html | 1 - flare/bffs/gp/calculator.html | 1 - flare/bffs/gp/gp.html | 12 ++---------- flare/bffs/gp/gp_algebra.html | 17 ++++++++--------- flare/bffs/gp/predict.html | 3 +-- flare/flare.html | 2 -- flare/io/output.html | 2 +- flare/learners/utils.html | 2 +- flare/utils/env_getarray.html | 2 +- flare/utils/mask_helper.html | 10 +--------- genindex.html | 10 ++-------- index.html | 2 -- objects.inv | Bin 23207 -> 23162 bytes searchindex.js | 2 +- 14 files changed, 18 insertions(+), 48 deletions(-) diff --git a/flare/bffs/bffs.html b/flare/bffs/bffs.html index e7a7cc15a..86c583ac6 100644 --- a/flare/bffs/bffs.html +++ b/flare/bffs/bffs.html @@ -105,7 +105,6 @@

Bayesian Force FieldsHelper functions for GP
  • FLARE ASE Calculator
  • GaussianProcess
  • -
  • random()
  • Mapped Gaussian Process
  • Mapped Gaussian Process
  • diff --git a/flare/bffs/gp/gp.html b/flare/bffs/gp/gp.html index 0db9ec2d7..21e7fc1bb 100644 --- a/flare/bffs/gp/gp.html +++ b/flare/bffs/gp/gp.html @@ -56,7 +56,6 @@
  • Helper functions for GP
  • FLARE ASE Calculator
  • GaussianProcess
  • -
  • random()
  • Mapped Gaussian Process
  • @@ -200,7 +199,7 @@

    Gaussian Process Force Fields
    -add_one_env(env: AtomicEnvironment, force: Optional[ndarray] = None, train: bool = False, **kwargs)
    +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
    @@ -219,7 +218,7 @@

    Gaussian Process Force Fields
    -adjust_cutoffs(new_cutoffs: Optional[Union[list, tuple, ndarray]] = None, reset_L_alpha=True, train=True, new_hyps_mask=None)
    +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 @@ -516,13 +515,6 @@

    Gaussian Process Force Fields -
    -flare.bffs.gp.gp.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/bffs/gp/gp_algebra.html b/flare/bffs/gp/gp_algebra.html index afb29345c..08723a3ef 100644 --- a/flare/bffs/gp/gp_algebra.html +++ b/flare/bffs/gp/gp_algebra.html @@ -56,7 +56,6 @@
  • Helper functions for GP
  • FLARE ASE Calculator
  • GaussianProcess
  • -
  • random()
  • Mapped Gaussian Process
  • @@ -177,7 +176,7 @@
    -flare.bffs.gp.gp_algebra.get_distance_mat_pack(hyps: ndarray, name: str, s1: int, e1: int, s2: int, e2: int, same: bool, kernel, cutoffs, hyps_mask)
    +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. @@ -191,7 +190,7 @@

    -flare.bffs.gp.gp_algebra.get_force_block(hyps: ndarray, name: str, kernel, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
    +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. @@ -208,7 +207,7 @@

    -flare.bffs.gp.gp_algebra.get_force_block_pack(hyps: ndarray, name: str, s1: int, e1: int, s2: int, e2: int, same: bool, kernel, cutoffs, hyps_mask)
    +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. @@ -226,7 +225,7 @@

    -flare.bffs.gp.gp_algebra.get_ky_and_hyp(hyps: ndarray, name, kernel_grad, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
    +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
    @@ -248,7 +247,7 @@
    -flare.bffs.gp.gp_algebra.get_ky_and_hyp_pack(name, s1, e1, s2, e2, same: bool, hyps: ndarray, kernel_grad, cutoffs=None, hyps_mask=None)
    +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

    @@ -302,7 +301,7 @@
    -flare.bffs.gp.gp_algebra.get_neg_like(hyps: ndarray, name: str, force_kernel, logger_name=None, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
    +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 @@ -329,7 +328,7 @@

    -flare.bffs.gp.gp_algebra.get_neg_like_grad(hyps: ndarray, name: str, kernel_grad, logger_name: Optional[str] = None, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
    +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
    @@ -353,7 +352,7 @@
    -flare.bffs.gp.gp_algebra.kernel_distance_mat(hyps: ndarray, name: str, kernel, cutoffs=None, hyps_mask=None, n_cpus=1, n_sample=100)
    +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. diff --git a/flare/bffs/gp/predict.html b/flare/bffs/gp/predict.html index 6734d0fee..c64c46331 100644 --- a/flare/bffs/gp/predict.html +++ b/flare/bffs/gp/predict.html @@ -56,7 +56,6 @@

  • Helper functions for GP
  • FLARE ASE Calculator
  • GaussianProcess
  • -
  • random()
  • Mapped Gaussian Process
  • @@ -221,7 +220,7 @@
    -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[ndarray, ndarray, float], Tuple[ndarray, 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

    diff --git a/flare/flare.html b/flare/flare.html index bafd0a614..1094c647b 100644 --- a/flare/flare.html +++ b/flare/flare.html @@ -100,7 +100,6 @@

    Python Code DocumentationHelper functions for GP
  • FLARE ASE Calculator
  • GaussianProcess
  • -
  • random()
  • Mapped Gaussian Process
      @@ -336,7 +335,6 @@

      Python Code DocumentationAdvanced Hyperparameters Set Up
    • Construct Atomic Environment
        diff --git a/flare/io/output.html b/flare/io/output.html index 537e708cd..349176913 100644 --- a/flare/io/output.html +++ b/flare/io/output.html @@ -255,7 +255,7 @@
        -write_xyz_config(curr_step, structure, forces: Optional[array] = None, stds: Optional[array] = None, dft_forces: Optional[array] = None, dft_energy=0, predict_energy=nan, target_atoms=None)
        +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
        diff --git a/flare/learners/utils.html b/flare/learners/utils.html index a8a219669..918c17b6a 100644 --- a/flare/learners/utils.html +++ b/flare/learners/utils.html @@ -110,7 +110,7 @@

        Utility functions for various tasks.

        -flare.learners.utils.get_max_cutoff(cell: ndarray) float
        +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 diff --git a/flare/utils/env_getarray.html b/flare/utils/env_getarray.html index ba6b16c2c..8c7b06292 100644 --- a/flare/utils/env_getarray.html +++ b/flare/utils/env_getarray.html @@ -211,7 +211,7 @@

        -flare.utils.env_getarray.get_m2_body_arrays(positions, atom: int, cell, r_cut, manybody_cutoff_list, species, sweep: ndarray, nspec, spec_mask, manybody_mask, cutoff_func=numba.njit)
        +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
        -
        -
        -flare.utils.parameters.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/genindex.html b/genindex.html index af8b56ddd..017d20fb1 100644 --- a/genindex.html +++ b/genindex.html @@ -1030,18 +1030,12 @@

        Q

        R

        - +
      • Mapped Gaussian Process
          @@ -378,7 +377,6 @@

          ContentsAdvanced Hyperparameters Set Up
        • Construct Atomic Environment
            diff --git a/objects.inv b/objects.inv index ff2e787f852af8f3c23c22c3c2622e469d6e8cdf..9440857b0d71e130f50cd1605f40b4d46be78956 100644 GIT binary patch delta 8194 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 delta 8294 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