From ac2dbe4893fc4f0f5f56b6bb4ee98c5244f0218f Mon Sep 17 00:00:00 2001 From: Brian Groenke <brian.groenke@awi.de> Date: Fri, 21 Feb 2025 17:58:25 +0100 Subject: [PATCH] Fix parameter type issues with StefanProblem --- src/Physics/Heat/analytic/stefan_analytic.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Physics/Heat/analytic/stefan_analytic.jl b/src/Physics/Heat/analytic/stefan_analytic.jl index 94f5e43d..3d28104a 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 -- GitLab