Open
Description
fails, example below
using ModelingToolkit
@independent_variables t
@variables x(t)=big(0.0) y(t)=0 u(t)=0 r(t)=0 [input = true]
@parameters kp = 1
D = Differential(t)
eqs = [u ~ kp * (r - y)
D(x) ~ -x + u
y ~ x]
@named sys = System(eqs, t)
lsys, ssys, extras = linearize(sys, [r], [y])
julia> lsys, ssys, extras = linearize(sys, [r], [y])
┌ 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/dev/ModelingToolkit/src/linearization.jl:52
┌ Warning: Initialization system is overdetermined. 2 equations for 0 unknowns. Initialization will default to using least squares. `SCCNonlinearProblem` can only be used for initialization of fully determined systems and hence will not be used here. To suppress this warning pass warn_initialize_determined = false. To make this warning into an error, pass fully_determined = true
└ @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/problems/initializationproblem.jl:106
ERROR: UndefRefError: access to undefined reference
Stacktrace:
[1] getindex
@ ./essentials.jl:917 [inlined]
[2] _broadcast_getindex
@ ./broadcast.jl:644 [inlined]
[3] _getindex
@ ./broadcast.jl:674 [inlined]
[4] _broadcast_getindex
@ ./broadcast.jl:650 [inlined]
[5] getindex
@ ./broadcast.jl:610 [inlined]
[6] macro expansion
@ ./broadcast.jl:973 [inlined]
[7] macro expansion
@ ./simdloop.jl:77 [inlined]
[8] copyto!
@ ./broadcast.jl:972 [inlined]
[9] copyto!
@ ./broadcast.jl:925 [inlined]
[10] materialize!
@ ./broadcast.jl:883 [inlined]
[11] materialize!
@ ./broadcast.jl:880 [inlined]
[12] seed!(duals::Vector{ForwardDiff.Dual{…}}, x::Vector{BigFloat}, seed::ForwardDiff.Partials{1, BigFloat})
@ ForwardDiff ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:45
[13] seed!
@ ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:45 [inlined]
[14] vector_mode_dual_eval!
@ ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:30 [inlined]
[15] vector_mode_jacobian(f!::DifferentiationInterface.FixTail{…}, y::Vector{…}, x::Vector{…}, cfg::ForwardDiff.JacobianConfig{…})
@ ForwardDiff ~/.julia/packages/ForwardDiff/UBbGT/src/jacobian.jl:139
[16] jacobian
@ ~/.julia/packages/ForwardDiff/UBbGT/src/jacobian.jl:40 [inlined]
[17] jacobian
@ ~/.julia/packages/DifferentiationInterface/zJHX8/ext/DifferentiationInterfaceForwardDiffExt/twoarg.jl:470 [inlined]
[18] PreparedJacobian
@ ~/.julia/dev/ModelingToolkit/src/linearization.jl:189 [inlined]
[19] (::ModelingToolkit.LinearizationFunction{…})(u::Vector{…}, p::MTKParameters{…}, t::Float64)
@ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:307
[20] solve(prob::LinearizationProblem{ModelingToolkit.LinearizationFunction{…}, Float64}; allow_input_derivatives::Bool)
@ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:442
[21] solve
@ ~/.julia/dev/ModelingToolkit/src/linearization.jl:438 [inlined]
[22] linearize(sys::System, lin_fun::ModelingToolkit.LinearizationFunction{…}; t::Float64, op::Dict{…}, allow_input_derivatives::Bool, p::SciMLBase.NullParameters)
@ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:746
[23] linearize(sys::System, inputs::Vector{…}, outputs::Vector{…}; op::Dict{…}, t::Float64, allow_input_derivatives::Bool, zero_dummy_der::Bool, kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:759
[24] linearize(sys::System, inputs::Vector{Num}, outputs::Vector{Num})
@ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:749
[25] top-level scope
@ REPL[12]:1
Some type information was truncated. Use `show(err)` to see complete types.
@oscardssmith you happen to know what's up with this?