diff --git a/src/Physics/Heat/analytic/stefan_analytic.jl b/src/Physics/Heat/analytic/stefan_analytic.jl index 94f5e43df3a3ffdf8b3096ee2fd5dafaf292ae48..3d28104a4b5a56392a14569b617a1249bd632fbd 100644 --- a/src/Physics/Heat/analytic/stefan_analytic.jl +++ b/src/Physics/Heat/analytic/stefan_analytic.jl @@ -104,10 +104,12 @@ function (sol::StefanSolution)(x, t) end end function SciMLBase.solve(prob::StefanProblem, alg=SimpleNonlinearSolve.SimpleNewtonRaphson(); p=prob.p, x0=prob.x0, t0=prob.t0) - prob = StefanProblem(ComponentVector(p), x0, t0) + pvec = ComponentVector(values(p)) + prob = StefanProblem(StefanParameters(;pvec...), x0, t0) f(u,p) = stefan_residual(u, p.T_m, p.T_l, p.T_s, p.k_l, p.c_l, p.k_s, p.c_s, p.Ï, p.θwi, p.Lf) - nlprob = SimpleNonlinearSolve.NonlinearProblem(f, ustrip(1/(p.Lf*p.θwi)), p) + λ₀ = 1/(pvec.Lf*pvec.θwi) + nlprob = SimpleNonlinearSolve.NonlinearProblem(f, ustrip(λ₀), ustrip.(pvec)) nlsol = SciMLBase.solve(nlprob, alg) - λ = nlsol.u + λ = nlsol.u*one(λ₀) return StefanSolution(prob, nlsol, λ) end