Skip to content
Snippets Groups Projects
Commit a1b68fcf authored by Brian Groenke's avatar Brian Groenke
Browse files

Fix CFLStepLimiter using uninitialized values

parent a1e36751
No related branches found
No related tags found
1 merge request!41Use harmonic mean in thermal conductivities
......@@ -9,7 +9,7 @@ function (fn::CryoGridCallbackFunction{<:CFLHeatState{<:AbstractArray}})(u,p,t)
kc = getvar(:kc, fn.setup, u); # thermal cond. at grid centers
@. Δt = adstrip(Δx^2 * Ceff / kc)
Δt_min = minimum(Δt)
IfElse.ifelse(isfinite(Δt_min), Δt_min, fn.state.default_dt)
IfElse.ifelse(isfinite(Δt_min) && Δt_min > 0, Δt_min, fn.state.default_dt)
end
end
function (fn::CryoGridCallbackFunction{<:CFLHeatState{Nothing}})(u,p,t)
......@@ -18,11 +18,11 @@ function (fn::CryoGridCallbackFunction{<:CFLHeatState{Nothing}})(u,p,t)
kc = getvar(:kc, fn.setup, u); # thermal cond. at grid centers
Δt = adstrip(Δx^2 * Ceff / kc)
Δt_min = minimum(Δt)
IfElse.ifelse(isfinite(Δt_min), Δt_min, fn.state.default_dt)
IfElse.ifelse(isfinite(Δt_min) && Δt_min > 0, Δt_min, fn.state.default_dt)
end
end
function CFLStepLimiter(setup::HeatOnlySetup; courant_number=1//2, default_dt=60.0, iip=true)
state = iip ? CFLHeatState(similar(Δ(setup.grid)), default_dt) : CFLHeatState(nothing, default_dt)
state = iip ? CFLHeatState(zero(Δ(setup.grid)), default_dt) : CFLHeatState(nothing, default_dt)
fn = CryoGridCallbackFunction(setup, state)
StepsizeLimiter(fn; safety_factor=courant_number, max_step=true)
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment