I’m creating an `ODESystem`

using `ModelingToolkit.jl`

and was wondering if for `EnsembleProblems`

there is an easier way to specify the parameters in `remake`

.

Example, from the documentation of `ModelingToolkit`

:

```
using ModelingToolkit
using DifferentialEquations
@variables t x(t) RHS(t)
@parameters τ
D = Differential(t)
@named fol_separate = ODESystem([ RHS ~ (1 - x)/τ,
D(x) ~ RHS ])
tspan = (0.0, 10.0)
u0 = [x => 0.0]
p = [τ => 3.0]
prob = ODEProblem(structural_simplify(fol_separate), u0, tspan, p)
τs = range(0.1,10,length = 10)
```

For an `EnsembleProblem`

I create a function to modify the problem with `remake`

```
function prob_func(prob,i,repeat)
remake(prob, p = [τs[i]])
end
```

And then specify and solve the `EnsembleProblem`

```
ens_prob = EnsembleProblem(prob, prob_func = prob_func)
sim = solve(ens_prob, Tsit5(), EnsembleThreads(), trajectories = size(τs)[1])
```

This is fine for smaller problems, but for systems with more parameters I first have to check the order with `parameters(fol_separate)`

and then manually type it out in the correct order in `prob_func`

. This is rather cumbersome and prone to errors for systems with more parameters.

Is there some more convenient method to assign the changed parameters for `remake`

?

E.g. something like `remake(prob, p = [τ => 0.1])`

; which I know doesn’t work because `p`

can’t be a `vector{Pair}`

.

Summarizing:

I’m looking for a way to `remake`

an `ODEProblem`

created with an `ODESystem`

where in `remake`

I can specify which parameter to change, instead of typing out the `p = [...]`

array