@@ -308,6 +308,50 @@ function save_eki_and_parameters(eki, output_dir, iteration, prior)
308308 JLD2. save_object (ekp_path (output_dir, iteration), eki)
309309end
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+ ensemble_size > 0 &&
333+ @info " $process automatically choose the ensemble size. Ignoring the argument $ensemble_size for the ensemble size"
334+ return EKP. construct_initial_ensemble (prior, process, constrained = false )
335+ end
336+
337+ function _construct_intial_unconstrained_ensemble (
338+ process:: EKP.Process ,
339+ prior:: PD.ParameterDistribution ;
340+ ensemble_size = 0 ,
341+ rng = MersenneTwister (1234 ),
342+ )
343+ ensemble_size == 0 && error (
344+ " Ensemble size is 0. Pass a positive value for ensemble_size as a keyword argument" ,
345+ )
346+ return EKP. construct_initial_ensemble (
347+ rng,
348+ prior,
349+ N_ens,
350+ constrained = false ,
351+ )
352+
353+ end
354+
311355"""
312356 update_ensemble(output_dir::AbstractString, iteration, prior)
313357
0 commit comments