Skip to content

Variables not found even though they definitely exist #3612

@1-Bart-1

Description

@1-Bart-1

I am getting an error when running linearization_function. Using s.full_sys = complete(s.full_sys) doesn't help.

julia> [s.full_sys.set_values...]
3-element Vector{Num}:
 sys₊set_values[1]
 sys₊set_values[2]
 sys₊set_values[3]

julia> [s.full_sys.ω_b...]
3-element Vector{Num}:
 (sys₊ω_b(t))[1]
 (sys₊ω_b(t))[2]
 (sys₊ω_b(t))[3]

julia> lin_fun, simplified_sys = linearization_function(s.full_sys, [s.full_sys.set_values...], [s.full_sys.ω_b...])
┌ Warning: An empty operating point was passed to `linearization_function`. An operating point containing the variables that will be changed in `linearize` should be provided. Disable this warning by passing `warn_empty_op = false`.
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/linearization.jl:51
ERROR: Some specified inputs were not found in system. The following variables were not found Any[sys₊set_values[3], sys₊set_values[2], sys₊set_values[1]]
Stacktrace:
  [1] error
    @ ./error.jl:44
  [2] #markio!#824
    @ ~/.julia/packages/ModelingToolkit/oBkpS/src/linearization.jl:577
  [3] markio!
    @ ~/.julia/packages/ModelingToolkit/oBkpS/src/linearization.jl:548 [inlined]
  [4] _structural_simplify!(state::TearingState{…}, io::Tuple{…}; simplify::Bool, check_consistency::Bool, fully_determined::Bool, warn_initialize_determined::Bool, dummy_derivative::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systemstructure.jl:735
  [5] _structural_simplify!
    @ ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systemstructure.jl:723 [inlined]
  [6] structural_simplify!(state::TearingState{…}, io::Tuple{…}; simplify::Bool, check_consistency::Bool, fully_determined::Bool, warn_initialize_determined::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systemstructure.jl:681
  [7] __structural_simplify(sys::ODESystem, io::Tuple{…}; simplify::Bool, sort_eqs::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systems.jl:93
  [8] structural_simplify(sys::ODESystem, io::Tuple{…}; additional_passes::Vector{…}, simplify::Bool, split::Bool, allow_symbolic::Bool, allow_parameter::Bool, conservative::Bool, fully_determined::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systems.jl:34
  [9] structural_simplify
    @ ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/systems.jl:29 [inlined]
 [10] io_preprocessing(sys::ODESystem, inputs::Vector{Any}, outputs::Vector{Any}; simplify::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/abstractsystem.jl:2565
 [11] io_preprocessing
    @ ~/.julia/packages/ModelingToolkit/oBkpS/src/systems/abstractsystem.jl:2563 [inlined]
 [12] linearization_function(sys::ODESystem, inputs::Vector{…}, outputs::Vector{…}; simplify::Bool, initialize::Bool, initializealg::Nothing, initialization_abstol::Float64, initialization_reltol::Float64, op::Dict{…}, p::SciMLBase.NullParameters, zero_dummy_der::Bool, initialization_solver_alg::NonlinearSolveFirstOrder.GeneralizedFirstOrderAlgorithm{…}, autodiff::AutoForwardDiff{…}, eval_expression::Bool, eval_module::Module, warn_initialize_determined::Bool, guesses::Dict{…}, warn_empty_op::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/linearization.jl:61
 [13] linearization_function(sys::ODESystem, inputs::Vector{Num}, outputs::Vector{Num})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/oBkpS/src/linearization.jl:33
 [14] top-level scope
    @ REPL[32]:1
Some type information was truncated. Use `show(err)` to see complete types.

The system is created and assigned to a field in a struct like this:

    @time @named sys = ODESystem(eqs, t)
    s.full_sys = sys

Versioninfo:

  [961ee093] ModelingToolkit v9.77.0
  [2efcf032] SymbolicIndexingInterface v0.3.40
  [d1185830] SymbolicUtils v3.27.0

julia> versioninfo()
Julia Version 1.11.5
Commit 760b2e5b739 (2025-04-14 06:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, skylake)
Threads: 16 default, 0 interactive, 8 GC (on 16 virtual cores)
Environment:
  LD_LIBRARY_PATH = /usr/local/cuda-12.2/lib64

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions