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