Gregory L. Wagner
Gregory L. Wagner
Using a combination of KernelAbstractions and broadcasting should make the code GPU compatible and multithreaded without much additional effort. https://github.com/JuliaGPU/KernelAbstractions.jl KernelAbstractions can also help catch a few other performance gotchas,...
At least, this is not the current syntax for discrete diffusion function: https://github.com/CliMA/Oceananigans.jl/blob/2234f02afdb83815ffd1134033b25c09477ddeac/validation/near_global_lat_lon/near_global_quarter_degree.jl#L131 There are also some formatting irregularities here: https://github.com/CliMA/Oceananigans.jl/blob/2234f02afdb83815ffd1134033b25c09477ddeac/src/TurbulenceClosures/discrete_diffusion_function.jl#L57-L67
Right now if we do this, we get an obscure error from `calc_correct_velocity_u` (which is already a confusing name --- what's the "incorrect" velocity?) ```julia nested task error: BoundsError: attempt...
This PR associates the GPU architecture with a specific device. This helps make the device that a model / grid is located on more explicit, so we don't have to...
This PR makes several improvements to CATKE: 1. We add parameters to the TKE dissipation rate model, which is `ep = CD * e^(3/2) / L`. Previously `CD` was a...
This PR builds off #2536 and implements a distributed Poisson solver that users horizontal FFTs and a vertical tridiagonal solve, with more help from @jipolanco. When distributed in (x, y),...
This major PR changes the way difference operators work so that across boundaries (either the end of the domain in `Bounded` directions, or across immersed boundaries), differences always return 0...
The `precondition!` defined for `DiagonallyDominantPreconditioner` takes the arguments: ```julia P_r, ::DiagonallyDominantInversePreconditioner, r, ∫ᶻ_Axᶠᶜᶜ, ∫ᶻ_Ayᶜᶠᶜ, ... ``` https://github.com/CliMA/Oceananigans.jl/blob/2edd2b1fa321725ad4e7891d3442ca9dd0657d98/src/Models/HydrostaticFreeSurfaceModels/pcg_implicit_free_surface_solver.jl#L243 however, the _fourth_ argument to `precondition` is supposed to be the free surface...
We define `Reference`: https://github.com/CliMA/Oceananigans.jl/blob/c410bd54a99129ad6ef41fb74516fc990bda341c/src/Utils/multi_region_transformation.jl#L21-L23 though it would appear that `Base.RefValue` is similar. I'm not sure what the purpose of `Reference` is (it needs a docstring), but I think we should...