I have created a MWE in which it seems the initial guess for array-valued variables set as irreducible is not passed to NonlinearProblem. Please advise if there is an alternative way to do this or if an issue should be posted. Thanks
using ModelingToolkit
using NonlinearSolve
states = @variables begin
a[1:10], [irreducible = true]
b[1:10]
c[1:10], [irreducible = true]
end
params = @parameters begin
d = 1.0
e = 2.0
end
eqs = Equation[]
eq_a = @. a ~ c + exp(d * b)
append!(eqs, Symbolics.scalarize(eq_a))
eq_b = @. b ~ - d
append!(eqs, Symbolics.scalarize(eq_b))
eq_c = @. c ~ exp(b - a)
append!(eqs, Symbolics.scalarize(eq_c))
@named sys = NonlinearSystem(eqs, [states...], params)
simp = structural_simplify(sys)
a_ic = 0.1:0.1:1.0
ic_dict = Dict(Symbolics.scalarize(a .=> a_ic))
c_guess = 0.1:0.1:1.0
guess_dict = Dict(Symbolics.scalarize(c .=> c_guess))
prob = NonlinearProblem(simp, ic_dict, guesses = guess_dict)
ERROR: Initial condition underdefined. Some are missing from the variable map.
Please provide a default (`u0`), initialization equation, or guess
for the following variables:
c[3], c[2], c[4], c[7], c[5], c[6], c[1], c[8], c[9], c[10]
Stacktrace:
[1] better_varmap_to_vars(varmap::Dict{…}, vars::Vector{…}; tofloat::Bool, container_type::Type, toterm::Function, promotetoconcrete::Nothing, check::Bool, allow_symbolic::Bool, is_initializeprob::Bool)
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/problem_utils.jl:372
[2] process_SciMLProblem(constructor::Type, sys::NonlinearSystem, u0map::Dict{…}, pmap::SciMLBase.NullParameters; build_initializeprob::Bool, implicit_dae::Bool, t::Nothing, guesses::Dict{…}, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, eval_expression::Bool, eval_module::Module, fully_determined::Nothing, check_initialization_units::Bool, tofloat::Bool, u0_constructor::typeof(identity), du0map::Nothing, check_length::Bool, symbolic_u0::Bool, warn_cyclic_dependency::Bool, circular_dependency_max_cycle_length::Int64, circular_dependency_max_cycles::Int64, substitution_limit::Int64, use_scc::Bool, force_initialization_time_independent::Bool, algebraic_only::Bool, allow_incomplete::Bool, is_initializeprob::Bool, kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/problem_utils.jl:860
[3] (NonlinearProblem{…})(sys::NonlinearSystem, u0map::Dict{…}, parammap::SciMLBase.NullParameters; check_length::Bool, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/nonlinear/nonlinearsystem.jl:556
[4] NonlinearProblem (repeats 2 times)
@ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/nonlinear/nonlinearsystem.jl:550 [inlined]
[5] #NonlinearProblem#924
@ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/nonlinear/nonlinearsystem.jl:547 [inlined]
[6] top-level scope
@ ~/.julia/dev/phase_separation_scripts/initial_guess_mwe.jl:35
Some type information was truncated. Use `show(err)` to see complete types.