SciML / SciMLBase.jl

The Base interface of the SciML ecosystem
https://docs.sciml.ai/SciMLBase/stable
MIT License
118 stars 91 forks source link

Cannot index nonlinear and steady state solutions with tuples #710

Open TorkelE opened 3 weeks ago

TorkelE commented 3 weeks ago

This works for other problem types though

using ModelingToolkit, OrdinaryDiffEq, SteadyStateDiffEq, NonlinearSolve
using ModelingToolkit: t_nounits as t, D_nounits as D

@parameters p d
@variables X(t) Y(t)
eqs = [
    D(X) ~ p - d*X,
    D(Y) ~ p - d*Y,
]
@mtkbuild osys = ODESystem(eqs, t)

u0 = [X => 1.0, Y => 1.0]
tspan = (0.0, 100.0)
ps = [p => 1.0, d => 1.0]

prob = SteadyStateProblem(osys, u0, ps)
sol = solve(prob, DynamicSS(Tsit5()))

# All yields `ERROR: Invalid indexing of solution`
sol[(X, Y)]
sol[(osys.X, osys.Y)]
sol[(:X, :Y)]

eqs = [
    0 ~ p - d*X,
    0 ~ p - d*Y,
]
@mtkbuild nsys = NonlinearSystem(eqs)

u0 = [X => 1.0, Y => 1.0]
ps = [p => 1.0, d => 1.0]

prob = NonlinearProblem(nsys, u0, ps)
sol = solve(prob)

# All yields `ERROR: Invalid indexing of solution`
sol[(X, Y)]
sol[(osys.X, osys.Y)]
sol[(:X, :Y)]