diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json
index 5d9fa6667..94597bd6f 100644
--- a/dev/.documenter-siteinfo.json
+++ b/dev/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-10-10T18:49:36","documenter_version":"1.1.0"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-10-13T20:19:20","documenter_version":"1.1.1"}}
\ No newline at end of file
diff --git a/dev/API/DataContainers/index.html b/dev/API/DataContainers/index.html
index 23fb3a6a7..4b21cd941 100644
--- a/dev/API/DataContainers/index.html
+++ b/dev/API/DataContainers/index.html
@@ -1,2 +1,2 @@
-
DataContainers · EnsembleKalmanProcesses.jl DataContainer{FT <: Real}
Container to store data samples as columns in an array.
source PairedDataContainer{FT <: Real}
Stores input - output pairs as data containers, there must be an equal number of inputs and outputs.
source size(c<:ConstraintType)
A constraint has size 1.
source size(dc::DataContainer, idx::IT) where {IT <: Integer}
Returns the size of the stored data. If idx
provided, it returns the size along dimension idx
.
source size(pdc::PairedDataContainer, idx::IT) where {IT <: Integer}
Returns the sizes of the inputs and ouputs along dimension idx
(if provided).
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 10 October 2023 . Using Julia version 1.9.3.
+DataContainers · EnsembleKalmanProcesses.jl DataContainer{FT <: Real}
Container to store data samples as columns in an array.
source PairedDataContainer{FT <: Real}
Stores input - output pairs as data containers, there must be an equal number of inputs and outputs.
source size(c<:ConstraintType)
A constraint has size 1.
source size(dc::DataContainer, idx::IT) where {IT <: Integer}
Returns the size of the stored data. If idx
provided, it returns the size along dimension idx
.
source size(pdc::PairedDataContainer, idx::IT) where {IT <: Integer}
Returns the sizes of the inputs and ouputs along dimension idx
(if provided).
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.1 on Friday 13 October 2023 . Using Julia version 1.9.3.
diff --git a/dev/API/EnsembleKalmanProcess/index.html b/dev/API/EnsembleKalmanProcess/index.html
index da7a7be04..7ec4eee7c 100644
--- a/dev/API/EnsembleKalmanProcess/index.html
+++ b/dev/API/EnsembleKalmanProcess/index.html
@@ -10,12 +10,12 @@
failure_handler_method::FM = IgnoreFailures(),
localization_method::LM = NoLocalization(),
verbose::Bool = false,
-) where {FT <: AbstractFloat, P <: Process, FM <: FailureHandlingMethod, LM <: LocalizationMethod}Inputs:
params
:: Initial parameter ensembleobs_mean
:: Vector of observationsobs_noise_cov
:: Noise covariance associated with the observations obs_mean
process
:: Algorithm used to evolve the ensemblescheduler
:: Adaptive timestep calculator Δt
:: Initial time step or learning raterng
:: Random number generatorfailure_handler_method
:: Method used to handle particle failureslocalization_method
:: Method used to localize sample covariancesverbose
:: Whether to print diagnostic informationOther constructors:
EnsembleKalmanProcess(u, obs_mean, obs_noise_cov, N_ens, g, err, scheduler, accelerator, Δt, process, rng, failure_handler, localizer, verbose)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl:117
.
EnsembleKalmanProcess(params, obs_mean, obs_noise_cov, process)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl:147
.
EnsembleKalmanProcess(obs_mean, obs_noise_cov, process)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:223
.
source FailureHandler{P <: Process, FM <: FailureHandlingMethod}
Structure defining the failure handler method used in the EnsembleKalmanProcess.
Fields
Constructors
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:10
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:22
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanSampler.jl:31
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleTransformKalmanInversion.jl:17
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleTransformKalmanInversion.jl:29
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:40
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:52
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:235
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:254
.
source " SampleSuccGauss <: FailureHandlingMethod
Failure handling method that substitutes failed ensemble members by new samples from the empirical Gaussian distribution defined by the updated successful ensemble.
source Failure handling method that ignores forward model failures
source get_u(ekp::EnsembleKalmanProcess, iteration::IT; return_array=true) where {IT <: Integer}
Returns the unconstrained parameters at the given iteration. Returns a DataContainer object unless return_array
is true.
source get_u(ekp::EnsembleKalmanProcess; return_array=true)
Returns the unconstrained parameters from all iterations. The outer dimension is given by the number of iterations, and the inner objects are DataContainer
objects unless return_array
is true.
source get_g(ekp::EnsembleKalmanProcess, iteration::IT; return_array=true) where {IT <: Integer}
Returns the forward model evaluations at the given iteration. Returns a DataContainer
object unless return_array
is true.
source get_g(ekp::EnsembleKalmanProcess; return_array=true)
Returns the forward model evaluations from all iterations. The outer dimension is given by the number of iterations, and the inner objects are DataContainer
objects unless return_array
is true.
source get_ϕ(prior::ParameterDistribution, ekp::EnsembleKalmanProcess, iteration::IT)
Returns the constrained parameters at the given iteration.
source get_ϕ(prior::ParameterDistribution, ekp::EnsembleKalmanProcess)
Returns the constrained parameters from all iterations. The outer dimension is given by the number of iterations.
source get_u_final(ekp::EnsembleKalmanProcess, return_array=true)
Get the unconstrained parameters at the last iteration, returning a DataContainer
Object if return_array
is false.
source get_g_final(ekp::EnsembleKalmanProcess, return_array=true)
Get forward model outputs at the last iteration, returns a DataContainer
Object if return_array
is false.
source get_ϕ_final(ekp::EnsembleKalmanProcess)
Get the constrained parameters at the last iteration.
source get_u_mean(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the mean unconstrained parameter at the given iteration.
source get_u_mean(uki::EnsembleKalmanProcess{FT, IT, Unscented}, iteration::IT)
Returns the mean unconstrained parameter at the requested iteration.
source get_u_cov(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the unconstrained parameter sample covariance at the given iteration.
source get_u_cov(uki::EnsembleKalmanProcess{FT, IT, Unscented}, iteration::IT)
Returns the unconstrained parameter covariance at the requested iteration.
source get_g_mean(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the mean forward map evaluation at the given iteration.
source get_ϕ_mean(prior::ParameterDistribution, ekp::EnsembleKalmanProcess, iteration::IT)
Returns the constrained transform of the mean unconstrained parameter at the given iteration.
source get_u_mean_final(ekp::EnsembleKalmanProcess)
Get the mean unconstrained parameter at the last iteration.
source get_u_cov_final(ekp::EnsembleKalmanProcess)
Get the mean unconstrained parameter covariance at the last iteration.
source get_g_mean_final(ekp::EnsembleKalmanProcess)
Get the mean forward model evaluation at the last iteration.
source get_ϕ_mean_final(prior::ParameterDistribution, ekp::EnsembleKalmanProcess)
Get the constrained transform of the mean unconstrained parameter at the last iteration.
source compute_error!(ekp::EnsembleKalmanProcess)
Computes the covariance-weighted error of the mean forward model output, (ḡ - y)'Γ_inv(ḡ - y)
. The error is stored within the EnsembleKalmanProcess
.
source get_error(ekp::EnsembleKalmanProcess)
Returns the mean forward model output error as a function of algorithmic time.
source get_N_iterations(ekp::EnsembleKalmanProcess)
Get number of times update has been called (equals size(g)
, or size(u)-1
).
source construct_initial_ensemble(
+) where {FT <: AbstractFloat, P <: Process, FM <: FailureHandlingMethod, LM <: LocalizationMethod}
Inputs:
params
:: Initial parameter ensembleobs_mean
:: Vector of observationsobs_noise_cov
:: Noise covariance associated with the observations obs_mean
process
:: Algorithm used to evolve the ensemblescheduler
:: Adaptive timestep calculator Δt
:: Initial time step or learning raterng
:: Random number generatorfailure_handler_method
:: Method used to handle particle failureslocalization_method
:: Method used to localize sample covariancesverbose
:: Whether to print diagnostic informationOther constructors:
EnsembleKalmanProcess(u, obs_mean, obs_noise_cov, N_ens, g, err, scheduler, accelerator, Δt, process, rng, failure_handler, localizer, verbose)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl:117
.
EnsembleKalmanProcess(params, obs_mean, obs_noise_cov, process)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl:147
.
EnsembleKalmanProcess(obs_mean, obs_noise_cov, process)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:223
.
source FailureHandler{P <: Process, FM <: FailureHandlingMethod}
Structure defining the failure handler method used in the EnsembleKalmanProcess.
Fields
Constructors
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:10
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:22
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanSampler.jl:31
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleTransformKalmanInversion.jl:17
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleTransformKalmanInversion.jl:29
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:40
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/SparseEnsembleKalmanInversion.jl:52
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:236
.
FailureHandler(process, method)
defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/UnscentedKalmanInversion.jl:255
.
source " SampleSuccGauss <: FailureHandlingMethod
Failure handling method that substitutes failed ensemble members by new samples from the empirical Gaussian distribution defined by the updated successful ensemble.
source Failure handling method that ignores forward model failures
source get_u(ekp::EnsembleKalmanProcess, iteration::IT; return_array=true) where {IT <: Integer}
Returns the unconstrained parameters at the given iteration. Returns a DataContainer object unless return_array
is true.
source get_u(ekp::EnsembleKalmanProcess; return_array=true)
Returns the unconstrained parameters from all iterations. The outer dimension is given by the number of iterations, and the inner objects are DataContainer
objects unless return_array
is true.
source get_g(ekp::EnsembleKalmanProcess, iteration::IT; return_array=true) where {IT <: Integer}
Returns the forward model evaluations at the given iteration. Returns a DataContainer
object unless return_array
is true.
source get_g(ekp::EnsembleKalmanProcess; return_array=true)
Returns the forward model evaluations from all iterations. The outer dimension is given by the number of iterations, and the inner objects are DataContainer
objects unless return_array
is true.
source get_ϕ(prior::ParameterDistribution, ekp::EnsembleKalmanProcess, iteration::IT)
Returns the constrained parameters at the given iteration.
source get_ϕ(prior::ParameterDistribution, ekp::EnsembleKalmanProcess)
Returns the constrained parameters from all iterations. The outer dimension is given by the number of iterations.
source get_u_final(ekp::EnsembleKalmanProcess, return_array=true)
Get the unconstrained parameters at the last iteration, returning a DataContainer
Object if return_array
is false.
source get_g_final(ekp::EnsembleKalmanProcess, return_array=true)
Get forward model outputs at the last iteration, returns a DataContainer
Object if return_array
is false.
source get_ϕ_final(ekp::EnsembleKalmanProcess)
Get the constrained parameters at the last iteration.
source get_u_mean(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the mean unconstrained parameter at the given iteration.
source get_u_mean(uki::EnsembleKalmanProcess{FT, IT, Unscented}, iteration::IT)
Returns the mean unconstrained parameter at the requested iteration.
source get_u_cov(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the unconstrained parameter sample covariance at the given iteration.
source get_u_cov(uki::EnsembleKalmanProcess{FT, IT, Unscented}, iteration::IT)
Returns the unconstrained parameter covariance at the requested iteration.
source get_g_mean(ekp::EnsembleKalmanProcess, iteration::IT) where {IT <: Integer}
Returns the mean forward map evaluation at the given iteration.
source get_ϕ_mean(prior::ParameterDistribution, ekp::EnsembleKalmanProcess, iteration::IT)
Returns the constrained transform of the mean unconstrained parameter at the given iteration.
source get_u_mean_final(ekp::EnsembleKalmanProcess)
Get the mean unconstrained parameter at the last iteration.
source get_u_cov_final(ekp::EnsembleKalmanProcess)
Get the mean unconstrained parameter covariance at the last iteration.
source get_g_mean_final(ekp::EnsembleKalmanProcess)
Get the mean forward model evaluation at the last iteration.
source get_ϕ_mean_final(prior::ParameterDistribution, ekp::EnsembleKalmanProcess)
Get the constrained transform of the mean unconstrained parameter at the last iteration.
source compute_error!(ekp::EnsembleKalmanProcess)
Computes the covariance-weighted error of the mean forward model output, (ḡ - y)'Γ_inv(ḡ - y)
. The error is stored within the EnsembleKalmanProcess
.
source get_error(ekp::EnsembleKalmanProcess)
Returns the mean forward model output error as a function of algorithmic time.
source get_N_iterations(ekp::EnsembleKalmanProcess)
Get number of times update has been called (equals size(g)
, or size(u)-1
).
source construct_initial_ensemble(
rng::AbstractRNG,
prior::ParameterDistribution,
N_ens::IT
) where {IT <: Int}
-construct_initial_ensemble(prior::ParameterDistribution, N_ens::IT) where {IT <: Int}
Construct the initial parameters, by sampling N_ens
samples from specified prior distribution. Returned with parameters as columns.
source update_ensemble!(
+construct_initial_ensemble(prior::ParameterDistribution, N_ens::IT) where {IT <: Int}
Construct the initial parameters, by sampling N_ens
samples from specified prior distribution. Returned with parameters as columns.
source update_ensemble!(
ekp::EnsembleKalmanProcess,
g::AbstractMatrix{FT};
multiplicative_inflation::Bool = false,
@@ -23,36 +23,36 @@
use_prior_cov::Bool = false,
s::FT = 0.0,
ekp_kwargs...,
-) where {FT, IT}
Updates the ensemble according to an Inversion process. Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). multiplicative_inflation :: Flag indicating whether to use multiplicative inflation. additive_inflation :: Flag indicating whether to use additive inflation. useprior cov :: Bool specifying whether to use prior covariance estimate for additive inflation. If false (default), parameter covariance from the current iteration is used. s :: Scaling factor for time step in inflation step. ekpkwargs :: Keyword arguments to pass to standard ekp update ensemble!. source update_ensemble!(
+) where {FT, IT}
Updates the ensemble according to an Inversion process. Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). multiplicative_inflation :: Flag indicating whether to use multiplicative inflation. additive_inflation :: Flag indicating whether to use additive inflation. useprior cov :: Bool specifying whether to use prior covariance estimate for additive inflation. If false (default), parameter covariance from the current iteration is used. s :: Scaling factor for time step in inflation step. ekpkwargs :: Keyword arguments to pass to standard ekp update ensemble!. source update_ensemble!(
ekp::EnsembleKalmanProcess{FT, IT, Inversion},
g::AbstractMatrix{FT},
process::Inversion;
deterministic_forward_map::Bool = true,
failed_ens = nothing,
-) where {FT, IT}
Updates the ensemble according to an Inversion process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. deterministicforward map :: Whether output g
comes from a deterministic model. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
+) where {FT, IT}
Updates the ensemble according to an Inversion process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. deterministicforward map :: Whether output g
comes from a deterministic model. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
ekp::EnsembleKalmanProcess{FT, IT, TransformInversion},
g::AbstractMatrix{FT},
process::TransformInversion;
failed_ens = nothing,
-) where {FT, IT}
Updates the ensemble according to a TransformInversion process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
+) where {FT, IT}
Updates the ensemble according to a TransformInversion process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
ekp::EnsembleKalmanProcess{FT, IT, SparseInversion{FT}},
g::AbstractMatrix{FT},
process::SparseInversion{FT};
deterministic_forward_map = true,
failed_ens = nothing,
-) where {FT, IT}
Updates the ensemble according to a SparseInversion process.
Inputs:
ekp
:: The EnsembleKalmanProcess to update.g
:: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms).process
:: Type of the EKP.deterministic_forward_map
:: Whether output g
comes from a deterministic model.failed_ens
:: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries.source update_ensemble!(
+) where {FT, IT}
Updates the ensemble according to a SparseInversion process.
Inputs:
ekp
:: The EnsembleKalmanProcess to update.g
:: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms).process
:: Type of the EKP.deterministic_forward_map
:: Whether output g
comes from a deterministic model.failed_ens
:: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries.source update_ensemble!(
ekp::EnsembleKalmanProcess{FT, IT, Sampler{FT}},
g::AbstractMatrix{FT},
process::Sampler{FT};
failed_ens = nothing,
-) where {FT, IT}
Updates the ensemble according to a Sampler process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
+) where {FT, IT}
Updates the ensemble according to a Sampler process.
Inputs:
ekp :: The EnsembleKalmanProcess to update. g :: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms). process :: Type of the EKP. failed_ens :: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries. source update_ensemble!(
uki::EnsembleKalmanProcess{FT, IT, Unscented},
g_in::AbstractMatrix{FT},
process::Unscented;
failed_ens = nothing,
-) where {FT <: AbstractFloat, IT <: Int}
Updates the ensemble according to an Unscented process.
Inputs:
uki
:: The EnsembleKalmanProcess to update.g_in
:: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms).process
:: Type of the EKP.failed_ens
:: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries.source sample_empirical_gaussian(
+) where {FT <: AbstractFloat, IT <: Int}
Updates the ensemble according to an Unscented process.
Inputs:
uki
:: The EnsembleKalmanProcess to update.g_in
:: Model outputs, they need to be stored as a N_obs × N_ens
array (i.e data are columms).process
:: Type of the EKP.failed_ens
:: Indices of failed particles. If nothing, failures are computed as columns of g
with NaN entries.source sample_empirical_gaussian(
u::AbstractMatrix{FT},
n::IT;
inflation::Union{FT, Nothing} = nothing,
-) where {FT <: Real, IT <: Int}
Returns n
samples from an empirical Gaussian based on point estimates u
, adding inflation if the covariance is singular.
source split_indices_by_success(g::AbstractMatrix{FT}) where {FT <: Real}
Returns the successful/failed particle indices given a matrix with output vectors stored as columns. Failures are defined for particles containing at least one NaN output element.
source struct DefaultScheduler{FT} <: EnsembleKalmanProcesses.LearningRateScheduler
Scheduler containing a default constant step size, users can override this temporarily within update_ensemble!
.
source struct MutableScheduler{FT} <: EnsembleKalmanProcesses.LearningRateScheduler
Scheduler containing a mutable constant step size, users can override this permanently within update_ensemble!
.
Δt_mutable::Vector
mutable step size
source struct EKSStableScheduler{FT} <: EnsembleKalmanProcesses.LearningRateScheduler
Scheduler known to be stable for EKS, In particular, $\Delta t = \frac{\alpha}{\|U\| + \varepsilon}$ where $U = (G(u) - \bar{G(u)})^T\Gamma^{-1}(G(u) - y)$ . Cannot be overriden.
source struct DataMisfitController{FT, M, S} <: EnsembleKalmanProcesses.LearningRateScheduler
Scheduler from Iglesias, Yang, 2021, Based on Bayesian Tempering. Terminates at T=1
by default, and at this time, ensemble spread provides a (more) meaningful approximation of posterior uncertainty In particular, for parameters $\theta_j$ at step $n$ , to calculate the next timestep $\Delta t_n = \min\left(\max\left(\frac{J}{2\Phi}, \sqrt{\frac{J}{2\langle \Phi, \Phi \rangle}}\right), 1-\sum^{n-1}_i t_i\right)$ where $\Phi_j = \|\Gamma^{-\frac{1}{2}}(G(\theta_j) - y)\|^2$ . Cannot be overriden by user provided timesteps. By default termination returns true
from update_ensemble!
and
if on_terminate == "stop"
, stops further iteration. if on_terminate == "continue_fixed"
, continues iteration with the final timestep fixed if on_terminate == "continue"
, continues the algorithm (though no longer compares to $1-\sum^{n-1}_i t_i$ ) The user may also change the T
with terminate_at
keyword.
iteration::Vector{Int64}
the current iteration
inv_sqrt_noise::Vector
the inverse square-root of the noise covariance is stored
terminate_at::Any
the algorithm time for termination, default: 1.0
on_terminate::Any
the action on termination, default: "stop",
source calculate_timestep!(ekp::EnsembleKalmanProcess, g::AbstractMatrix, Δt_new::Union{Nothing, AbstractFloat}) -> Any
-
Calculates next timestep by pushing to ekp.Δt, !isnothing(return_value)
implies termination condition has been met
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 10 October 2023 . Using Julia version 1.9.3.