-
Notifications
You must be signed in to change notification settings - Fork 250
Open
Labels
bug 🐞Even a perfect program still has bugsEven a perfect program still has bugsturbulence closures 🎐
Description
Here's the line of issue:
Line 314 in a02649d
| return ϵκR₃₃(i, j, k, grid, κ, clock, sl, b, C) * ∂zᶜᶜᶠ(i, j, k, grid, c) |
Note that there is no
clock argument being passed into the explicit_R₃₃_∂z_c function.
Here's an MWE to go with:
using Oceananigans
using Oceananigans.Grids
using Oceananigans.Units
using Oceananigans.TurbulenceClosures
using CairoMakie
using Statistics
using JLD2
closure = Oceananigans.TurbulenceClosures.TriadIsopycnalSkewSymmetricDiffusivity(κ_skew=1e3, κ_symmetric=1e3)
grid = RectilinearGrid(CPU(),
size = (16, 16),
y = (0, 1),
z = (0, 1),
topology = (Flat, Bounded, Bounded),
halo = (5, 5))
free_surface = SplitExplicitFreeSurface(grid; cfl=0.8, fixed_Δt=105seconds)
model = HydrostaticFreeSurfaceModel(; grid = grid,
coriolis = BetaPlane(f₀ = -0.83e-4, β = 1.87e-11),
buoyancy = SeawaterBuoyancy(),
free_surface = free_surface,
timestepper = :SplitRungeKutta3,
tracers = (:T, :S),
closure = closure)
simulation = Simulation(model, Δt=100seconds, stop_iteration=5)
run!(simulation)with an output message of
Internal error: during type inference of
run!(Oceananigans.Simulations.Simulation{Oceananigans.Models.HydrostaticFreeSurfaceModels.HydrostaticFreeSurfaceModel{Oceananigans.TimeSteppers.SplitRungeKutta3TimeStepper{Float64, NamedTuple{(:u, :v, :U, :V, :T, :S), Tuple{Oceananigans.Fields.Field{Oceananigans.Grids.Face,
...[redacted]
Oceananigans.AbstractOutputWriter}, OrderedCollections.OrderedDict{Symbol, Oceananigans.Simulations.Callback{P, F, S, CS} where CS where S where F where P}, Float64, Bool})
Encountered stack overflow.
This might be caused by recursion over very long tuples or argument lists.
[ Info: Initializing simulation...
ERROR: TaskFailedException
nested task error: UndefVarError: `clock` not defined in `Oceananigans.TurbulenceClosures`
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] explicit_R₃₃_∂z_c
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\TurbulenceClosures\turbulence_closure_implementations\isopycnal_skew_symmetric_diffusivity_with_triads.jl:314 [inlined]
[2] diffusive_flux_z
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\TurbulenceClosures\turbulence_closure_implementations\isopycnal_skew_symmetric_diffusivity_with_triads.jl:285 [inlined]
[3] diffusive_flux_z
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\TurbulenceClosures\implicit_explicit_time_discretization.jl:41 [inlined]
[4] _diffusive_flux_z
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\TurbulenceClosures\closure_kernel_operators.jl:16 [inlined]
[5] Az_qᶜᶜᶠ
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Operators\products_between_fields_and_grid_metrics.jl:12 [inlined]
[6] δzᵃᵃᶜ
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Operators\difference_operators.jl:26 [inlined]
[7] ∇_dot_qᶜ
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\TurbulenceClosures\closure_kernel_operators.jl:45 [inlined]
[8] hydrostatic_free_surface_tracer_tendency
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\hydrostatic_free_surface_tendency_kernel_functions.jl:135 [inlined]
[9] cpu_compute_hydrostatic_free_surface_Gc!
@ C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\macros.jl:306 [inlined]
[10] cpu_compute_hydrostatic_free_surface_Gc!(__ctx__::KernelAbstractions.CompilerMetadata{…}, Gc::Field{…}, grid::RectilinearGrid{…}, args::Tuple{…})
@ Oceananigans.Models.HydrostaticFreeSurfaceModels .\none:0
[11] __thread_run(tid::Int64, len::Int64, rem::Int64, obj::KernelAbstractions.Kernel{…}, ndrange::Nothing, iterspace::KernelAbstractions.NDIteration.NDRange{…}, args::Tuple{…}, dynamic::KernelAbstractions.NDIteration.NoDynamicCheck)
@ KernelAbstractions C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\cpu.jl:145
[12] (::KernelAbstractions.var"#29#32"{…})()
@ KernelAbstractions C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\cpu.jl:120
...and 1 more exception.
Stacktrace:
[1] sync_end(c::Channel{Any})
@ Base .\task.jl:466
[2] macro expansion
@ .\task.jl:499 [inlined]
[3] __run(obj::KernelAbstractions.Kernel{…}, ndrange::Nothing, iterspace::KernelAbstractions.NDIteration.NDRange{…}, args::Tuple{…}, dynamic::KernelAbstractions.NDIteration.NoDynamicCheck, static_threads::Bool)
@ KernelAbstractions C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\cpu.jl:119
[4] (::KernelAbstractions.Kernel{…})(::Field{…}, ::Vararg{…}; ndrange::Nothing, workgroupsize::Nothing)
@ KernelAbstractions C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\cpu.jl:46
[5] (::KernelAbstractions.Kernel{…})(::Field{…}, ::Vararg{…})
@ KernelAbstractions C:\Users\xinle\.julia\packages\KernelAbstractions\lGrz7\src\cpu.jl:39
[6] _launch!(::CPU, ::RectilinearGrid{…}, ::Symbol, ::Function, ::Field{…}, ::RectilinearGrid{…}, ::Vararg{…}; exclude_periphery::Bool, reduced_dimensions::Tuple{}, active_cells_map::Nothing)
@ Oceananigans.Utils C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\kernel_launching.jl:376
[7] _launch!
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\kernel_launching.jl:363 [inlined]
[8] launch!
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\kernel_launching.jl:340 [inlined]
[9] compute_hydrostatic_free_surface_tendency_contributions!(model::HydrostaticFreeSurfaceModel{…}, kernel_parameters::Symbol; active_cells_map::Nothing)
@ Oceananigans.Models.HydrostaticFreeSurfaceModels C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\compute_hydrostatic_free_surface_tendencies.jl:86
[10] compute_hydrostatic_free_surface_tendency_contributions!
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\compute_hydrostatic_free_surface_tendencies.jl:57 [inlined]
[11] compute_tendencies!(model::HydrostaticFreeSurfaceModel{…}, callbacks::Vector{…})
@ Oceananigans.Models.HydrostaticFreeSurfaceModels C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\compute_hydrostatic_free_surface_tendencies.jl:33
[12] #apply_regionally!#76
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\multi_region_transformation.jl:135 [inlined]
[13] apply_regionally!
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\multi_region_transformation.jl:132 [inlined]
[14] macro expansion
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Utils\multi_region_transformation.jl:224 [inlined]
[15] update_state!(model::HydrostaticFreeSurfaceModel{…}, grid::RectilinearGrid{…}, callbacks::Vector{…}; compute_tendencies::Bool)
@ Oceananigans.Models.HydrostaticFreeSurfaceModels C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\update_hydrostatic_free_surface_model_state.jl:53
[16] update_state!
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\update_hydrostatic_free_surface_model_state.jl:32 [inlined]
[17] update_state! (repeats 2 times)
@ C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Models\HydrostaticFreeSurfaceModels\update_hydrostatic_free_surface_model_state.jl:29 [inlined]
[18] initialize!(sim::Simulation{…})
@ Oceananigans.Simulations C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Simulations\run.jl:210
[19] time_step!(sim::Simulation)
@ Oceananigans.Simulations C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Simulations\run.jl:136
[20] run!(sim::Any; pickup::Any)
@ Oceananigans.Simulations C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Simulations\run.jl:105
[21] run!(sim::Any)
@ Oceananigans.Simulations C:\Users\xinle\.julia\packages\Oceananigans\Xjsq1\src\Simulations\run.jl:92
[22] top-level scope
@ c:\Users\xinle\Dropbox\MIT\1deg_simulation\ClimaOcean.jl\isopycnal_skew_symmetric_triads_MWE.jl:29
Some type information was truncated. Use `show(err)` to see complete types.Metadata
Metadata
Assignees
Labels
bug 🐞Even a perfect program still has bugsEven a perfect program still has bugsturbulence closures 🎐