# Indexing a residual of an InitializationProblem

**URL:** <https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356>\
**Category:** Modelling & Simulations\
**Created:** [December 2, 2024, 1:52pm UTC](https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356 "2024-12-02T13:52:53Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [December 2, 2024, 1:52pm UTC](https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356/1 "2024-12-02T13:52:53Z")

</div>

I want to check the residual of the solution of an initializationproblem as done in this example: [Initialization of ODESystems · ModelingToolkit.jl](https://docs.sciml.ai/ModelingToolkit/dev/tutorials/initialization/#Numerical-Isolation:-InitializationProblem)

However, my model is quite a bit more complex than the one in the example. So I would like to be able to index the residuals:

```julia
using ModelingToolkit, OrdinaryDiffEq
using ModelingToolkit: t_nounits as t, D_nounits as D

@parameters g
@variables x(t) y(t) [state_priority = 10] λ(t)
eqs = [D(D(x)) ~ λ * x
       D(D(y)) ~ λ * y - g
       x^2 + y^2 ~ 1]
@mtkbuild pend = ODESystem(eqs, t)

iprob = ModelingToolkit.InitializationProblem(pend, 0.0,
    [x => 1, y => 0.0, D(y) => 2.0, λ => 1], [g => 1], guesses = [λ => 1])
using NonlinearSolve
sol = solve(iprob)
sol.resid[x] # indexing the residual

```

But `sol.resid[x]` doesn’t work. Is this possible in any other way?

---

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [December 3, 2024, 11:03am UTC](https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356/2 "2024-12-03T11:03:42Z")

</div>

This should work, assuming the order of `sol.resid` is the same as the order of `equations(sol.prob.f.sys)`

```julia
for (u, e) in zip(sol.resid, equations(sol.prob.f.sys))
    println(u, "\t", e)
end

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 3, 2024, 6:26pm UTC](https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356/3 "2024-12-03T18:26:57Z")

</div>

Yeah open an issue. This would be a good debugging tool, we just haven’t setup fancy indexing on this yet.

---

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [December 4, 2024, 2:11pm UTC](https://discourse.julialang.org/t/indexing-a-residual-of-an-initializationproblem/123356/4 "2024-12-04T14:11:42Z")

</div>

Submitted an issue here: [Indexing a residual of an InitializationProblem · Issue #3260 · SciML/ModelingToolkit.jl · GitHub](https://github.com/SciML/ModelingToolkit.jl/issues/3260)
