SciML / NeuralPDE.jl

Physics-Informed Neural Networks (PINN) Solvers of (Partial) Differential Equations for Scientific Machine Learning (SciML) accelerated simulation

Home Page:https://docs.sciml.ai/NeuralPDE/stable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't get the @named pde_system to work with a ode system

geriatricvibes opened this issue · comments

equations, bcs and domain, the parameters are some constants


eq = [u(t) ~ ocv - icell*rs - irst(t)*rst - irlt(t)*rlt,
    icell ~ irst(t) + Dt(rst*cst*irst(t)), 
    icell ~ irlt(t) + Dt(rlt*clt*irlt(t)), 
    mcp*Dt(temp(t)) ~ (temp(t) - tenv)/rth + icell*(u(t)-ocv)]

bcs = [u(0.0)~0.0, irst(0.0)~0.0, irlt(0.0)~0.0,temp(0.0)~25.0]
domains = [t ∈ Interval(0.0, 10.0)]
@named pde_system = PDESystem(eq, bcs, domains, [t], [u(t), temp(t), irst(t), irlt(t)])

prob = NeuralPDE.discretize(pde_system, discretization)

callback = function (p, l)
    println("loss: $l")
    return false
end
res = Optimization.solve(prob, BFGS(); callback = callback, maxiters = 100)
phi = discretization.phi

returns error

type NamedTuple has no field irlt

Stacktrace:
  [1] getproperty
    @ [.\Base.jl:37](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/Base.jl:37) [inlined]
  [2] getindex(::ComponentArrays.Axis{(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))}, s::Symbol)
    @ ComponentArrays [C:\Users\rnath\.julia\packages\ComponentArrays\nfnS3\src\axis.jl:158](file:///C:/Users/rnath/.julia/packages/ComponentArrays/nfnS3/src/axis.jl:158)
  [3] _broadcast_getindex_evalf
    @ [.\broadcast.jl:709](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/broadcast.jl:709) [inlined]
  [4] _broadcast_getindex
    @ [.\broadcast.jl:682](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/broadcast.jl:682) [inlined]
  [5] (::Base.Broadcast.var"#31#32"{Base.Broadcast.Broadcasted{Base.Broadcast.Style{Tuple}, Nothing, typeof(getindex), Tuple{Tuple{ComponentArrays.Axis{(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))}}, Base.Broadcast.Broadcasted{Base.Broadcast.Style{Tuple}, Nothing, typeof(ComponentArrays.getval), Tuple{Tuple{DataType}}}}}})(k::Int64)
    @ Base.Broadcast [.\broadcast.jl:1118](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/broadcast.jl:1118)
  [6] ntuple
    @ [.\ntuple.jl:48](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/ntuple.jl:48) [inlined]
  [7] copy
    @ [.\broadcast.jl:1118](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/broadcast.jl:1118) [inlined]
  [8] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.Style{Tuple}, Nothing, typeof(getindex), Tuple{Tuple{ComponentArrays.Axis{(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))}}, Base.Broadcast.Broadcasted{Base.Broadcast.Style{Tuple}, Nothing, typeof(ComponentArrays.getval), Tuple{Tuple{DataType}}}}})
    @ Base.Broadcast [.\broadcast.jl:903](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/broadcast.jl:903)
  [9] #s39#57
    @ [C:\Users\rnath\.julia\packages\ComponentArrays\nfnS3\src\array_interface.jl:120](file:///C:/Users/rnath/.julia/packages/ComponentArrays/nfnS3/src/array_interface.jl:120) [inlined]
 [10] var"#s39#57"(::Any, index_fun::Any, x::Any, idx::Any)
    @ ComponentArrays [.\none:0](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/none:0)
 [11] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
    @ Core [.\boot.jl:602](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/rnath/roboticai/git/RoboticAI/multiapp/jl_multiapp/boot.jl:602)
...
    @ OptimizationOptimJL [C:\Users\rnath\.julia\packages\OptimizationOptimJL\yMF3E\src\OptimizationOptimJL.jl:212](file:///C:/Users/rnath/.julia/packages/OptimizationOptimJL/yMF3E/src/OptimizationOptimJL.jl:212)
 [76] solve!(cache::OptimizationCache{OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, OptimizationZygoteExt.var"#38#56"{OptimizationZygoteExt.var"#37#55"{OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, Optimization.ReInitCache{ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters}}}, OptimizationZygoteExt.var"#41#59"{OptimizationZygoteExt.var"#37#55"{OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, Optimization.ReInitCache{ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters}}}, OptimizationZygoteExt.var"#45#63", Nothing, OptimizationZygoteExt.var"#49#67"{OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, Optimization.ReInitCache{ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters}}, OptimizationZygoteExt.var"#53#71"{OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, Optimization.ReInitCache{ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters}}, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, Optimization.ReInitCache{ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters}, Nothing, Nothing, Nothing, Nothing, Nothing, BFGS{InitialStatic{Float64}, HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Flat}, Base.Iterators.Cycle{Tuple{Optimization.NullData}}, Bool, var"#97#98"})
    @ SciMLBase [C:\Users\rnath\.julia\packages\SciMLBase\wVDwN\src\solve.jl:179](file:///C:/Users/rnath/.julia/packages/SciMLBase/wVDwN/src/solve.jl:179)
 [77] solve(::OptimizationProblem{true, OptimizationFunction{true, AutoZygote, NeuralPDE.var"#full_loss_function#344"{NeuralPDE.var"#null_nonadaptive_loss#147", Vector{NeuralPDE.var"#133#136"{loss_function, DataType} where loss_function}, Vector{NeuralPDE.var"#135#139"{loss_function, Vector{Float64}, Vector{Float64}, NeuralPDE.var"#134#137"{QuadratureTraining{Integrals.CubatureJLh, Float64}}, Float64} where loss_function}, NeuralPDE.PINNRepresentation, Bool, Vector{Int64}, Int64, Vector{NeuralPDE.Phi{Chain{@NamedTuple{layer_1::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_2::Dense{true, typeof(sigmoid_fast), typeof(glorot_uniform), typeof(zeros32)}, layer_3::Dense{true, typeof(identity), typeof(glorot_uniform), typeof(zeros32)}}, Nothing}, @NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, Nothing, Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, ComponentArrays.ComponentVector{Float64, Vector{Float64}, Tuple{ComponentArrays.Axis{(depvar = ViewAxis(1:858, Axis(u = ViewAxis(1:286, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), temp = ViewAxis(287:572, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))), irst = ViewAxis(573:858, Axis(layer_1 = ViewAxis(1:30, Axis(weight = ViewAxis(1:15, ShapedAxis((15, 1), NamedTuple())), bias = ViewAxis(16:30, ShapedAxis((15, 1), NamedTuple())))), layer_2 = ViewAxis(31:270, Axis(weight = ViewAxis(1:225, ShapedAxis((15, 15), NamedTuple())), bias = ViewAxis(226:240, ShapedAxis((15, 1), NamedTuple())))), layer_3 = ViewAxis(271:286, Axis(weight = ViewAxis(1:15, ShapedAxis((1, 15), NamedTuple())), bias = ViewAxis(16:16, ShapedAxis((1, 1), NamedTuple())))))))),)}}}, SciMLBase.NullParameters, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, @Kwargs{}}, ::BFGS{InitialStatic{Float64}, HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Flat}; kwargs::@Kwargs{callback::var"#97#98", maxiters::Int64})
    @ SciMLBase [C:\Users\rnath\.julia\packages\SciMLBase\wVDwN\src\solve.jl:96](file:///C:/Users/rnath/.julia/packages/SciMLBase/wVDwN/src/solve.jl:96)

Can you post the whole script including where you have defined discretization and defining all variables?

using NeuralPDE, Lux, ModelingToolkit, Optimization, OptimizationOptimJL,  DomainSets, LineSearches
import ModelingToolkit: Interval, infimum, supremum

#constants
soc0 = 100.0
t0, tfinal = 0.0, 100.0
mcp, rth, tenv = 0.1, 0.1, 273.0
icell = 1.0

@variables u(..), irst(..), irlt(..), temp(..)
@parameters t 
Dt = Differential(t)
ocv,rs, rst, cst, rlt, clt = 1, 1, 1, 1, 1 , 1
eq = [u(t) ~ ocv - icell*rs - irst(t)*rst - irlt(t)*rlt,
    icell ~ irst(t) + Dt(rst*cst*irst(t)), 
    icell ~ irlt(t) + Dt(rlt*clt*irlt(t)), 
    mcp*Dt(temp(t)) ~ (temp(t) - tenv)/rth + icell*(u(t)-ocv)]

bcs = [u(0.0)~0.0, irst(0.0)~0.0, irlt(0.0)~0.0,temp(0.0)~25.0]
domains = [t ∈ Interval(0.0, 10.0)]
input_ = length(domains)
n = 15
chain = [Lux.Chain(Dense(1, n, Lux.σ), Dense(n, n, Lux.σ), Dense(n, 1)) for _ in 1:3]
strategy = NeuralPDE.QuadratureTraining()
discretization = PhysicsInformedNN(chain, strategy, adaptive_loss  = NeuralPDE.GradientScaleAdaptiveLoss(10))

@named pde_system = PDESystem(eq, bcs, domains, [t], [u(t), temp(t), irst(t), irlt(t)])

prob = NeuralPDE.discretize(pde_system, discretization)

callback = function (p, l)
    println("loss: $l")
    return false
end
res = Optimization.solve(prob, BFGS(); callback = callback, maxiters = 100)
phi = discretization.phi

Here is the script

There are four states, so need four chains.

chain = [Lux.Chain(Dense(1, n, Lux.σ), Dense(n, n, Lux.σ), Dense(n, 1)) for _ in 1:4]

should fix it.

It works now, thank you!