Skip to content

Commit b4c4666

Browse files
committed
Add helper functions to construct ensemble
1 parent 0cf6911 commit b4c4666

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/ekp_interface.jl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,48 @@ function save_eki_and_parameters(eki, output_dir, iteration, prior)
308308
JLD2.save_object(ekp_path(output_dir, iteration), eki)
309309
end
310310

311+
"""
312+
_construct_intial_unconstrained_ensemble(
313+
process::EKP.Process,
314+
prior::PD.ParameterDistribution;
315+
ensemble_size = 0,
316+
rng = MersenneTwister(1234),
317+
)
318+
319+
Construct the initial ensemble of unconstrained parameters given the `process` and
320+
`prior`.
321+
322+
For `EKP.Unscented` and `EKP.TransformUnscented`, the `ensemble_size` is
323+
determined by the `process` and `rng` is not used. These keyword arguments are
324+
needed when the `process` is not `EKP.Unscented` and `EKP.TransformUnscented`.
325+
"""
326+
function _construct_intial_unconstrained_ensemble(
327+
process::Union{EKP.Unscented, EKP.TransformUnscented},
328+
prior::PD.ParameterDistribution;
329+
ensemble_size = 0,
330+
rng = MersenneTwister(1234),
331+
)
332+
return EKP.construct_initial_ensemble(prior, process, constrained = false)
333+
end
334+
335+
function _construct_intial_unconstrained_ensemble(
336+
process,
337+
prior::PD.ParameterDistribution;
338+
ensemble_size = 0,
339+
rng = MersenneTwister(1234),
340+
)
341+
ensemble_size == 0 && error(
342+
"Ensemble size is 0. Pass a positive value for ensemble_size as a keyword argument",
343+
)
344+
return EKP.construct_initial_ensemble(
345+
rng,
346+
prior,
347+
N_ens,
348+
constrained = false,
349+
)
350+
351+
end
352+
311353
"""
312354
update_ensemble(output_dir::AbstractString, iteration, prior)
313355

0 commit comments

Comments
 (0)