- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 233
 
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
I want to solve an ODESystem for many values of a parameter P, where the initial value for an unknown x depends on P (here I write a nonlinear initialization equation to emphasize the general case where defaults do not suffice):
using Test
using ModelingToolkit
using ModelingToolkit: t_nounits as t, D_nounits as D
using DifferentialEquations
@variables x(t)
@parameters P
@named sys = ODESystem([D(x) ~ 0], t, [x], [P]; initialization_eqs = [x^2 ~ P], guesses = [x => +1.0])
ssys = structural_simplify(sys)
prob1 = ODEProblem(ssys, [], (0.0, 1.0), [P => 1.0])
prob2 = remake(prob1, p = [P => 4.0])
sol2 = solve(prob2)
@test sol2[x][begin] == 2.0This fails because remake (or the following solve) does not resolve the initialization problem. Currently, I am resorting to reconstructing the ODEProblem with new parameters every time, which is very slow.
I think there should be an efficient and well-supported way to remake and then (re)solve an ODEProblem, where the full initialization system is also solved before the ODE is integrated.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working