From cd28b53bac9dd9e20c516e57a59871a36d071efe Mon Sep 17 00:00:00 2001 From: Sasha Demin Date: Wed, 17 Sep 2025 19:06:45 +0200 Subject: [PATCH] Add rng seed to options --- src/core/analysis_utils.jl | 5 +++++ src/types/estimation_options.jl | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/core/analysis_utils.jl b/src/core/analysis_utils.jl index 0ed2fbf..167b9cb 100644 --- a/src/core/analysis_utils.jl +++ b/src/core/analysis_utils.jl @@ -334,6 +334,11 @@ end function analyze_parameter_estimation_problem(PEP::ParameterEstimationProblem, opts::EstimationOptions = EstimationOptions()) + if !opts.nooutput + println("RNG seed: ", opts.seed) + end + Random.seed!(opts.seed) + # Extract needed values from opts system_solver = get_solver_function(opts.system_solver) interpolator = get_interpolator_function(opts.interpolator, opts.custom_interpolator) diff --git a/src/types/estimation_options.jl b/src/types/estimation_options.jl index 6cecc38..90307ba 100644 --- a/src/types/estimation_options.jl +++ b/src/types/estimation_options.jl @@ -66,6 +66,10 @@ algorithm parameters, and debugging flags into a single, type-stable structure. # Fields +## Meta-options + +- `seed`: global RNG seed to be passed to `Random.seed!` (default: `42`). + ## Solver and Algorithm Selection - `system_solver::SystemSolverMethod`: Main polynomial system solver (default: `SolverRS`) - `ode_solver`: ODE solver for simulation (default: `AutoVern9(Rodas4P())`) @@ -177,6 +181,9 @@ opts = EstimationOptions( - When debugging, enable relevant debug flags and set `nooutput=false` """ Base.@kwdef struct EstimationOptions + # RNG seed + seed::Int = 42 + # Solver and Algorithm Selection system_solver::SystemSolverMethod = SolverHC ode_solver::Any = AutoVern9(Rodas4P()) # Any type due to ODE solver type complexity