v0.80.0
Oceananigans v0.80.0
Closed issues:
- Running with Posits as well as AbstractFloat. (#39)
- Implement Vreman SGS closure (#440)
- Verification tests comparing performance of different LES closures (#441)
Field
should subtype an array type for named axis behaviors? (#457)- Each turbulence closure should probably have its own submodule (#521)
- Make sure Oceananigans is type stable (#552)
- Equatorial Rossby waves on a beta plane verification experiment (#640)
- Double gyre example (#678)
- 'Orlanski' open boundary condition (#833)
- Be careful of using
end
in forcing functions and boundary conditions (#838) - 'ContinuedFlow' boundary condition (#848)
- Should we add multithreading benchmarks to README? (#900)
- Improving tracer budget tests (#942)
- Docs have "Model setup" but not "Simulation" (#946)
- README example is excessively large + README needs updating for current julia REPL look (#961)
- Evaluating volume-averages of functions of x, y, z, t with higher than first-order accuracy (#1011)
- Do we still need so much
@hascuda
? (#1043) - "Computing tips" docs section for running on clusters with slurm, google cloud, etc... (#1045)
- Create a wiki with information / notes on how to setup buildkite for local testing? (#1046)
- Run Windows tests on GitHub Actions. (#1050)
- Upload coverage artifacts to Codecov from Buildkite. (#1052)
- Combine Diagnostics and OutputWriters docs page and add more AbstractOperations examples? (#1062)
- Benchmarking fully loaded simulations (#1089)
- 100% code coverage (#1100)
- Interactive/reactive examples with Pluto.jl (#1109)
- Interactive 3D visualization example with WGLMakie.jl (#1112)
- Check out where can we make use of Unitful.jl (#1116)
- Mixing data types and instantiated types in the user interface (#1119)
- State checker diagnostic (#1135)
- Example/tutorial on automating parameter exploration with Slurm? (#1137)
- More tutorials involving AbstractOperations + Output (#1143)
- Pedagogical improvements to the Langmuir turbulence example (#1146)
- Supporting non-zero or time-dependent wall-normal velocities (#1156)
- notebooks? (#1172)
- Positive preserving WENO scheme (#1173)
- Do TimeSteppers belong to Models, or to Simulations? (#1175)
- Stop assuming a default topology? (#1178)
- Print system info before running tests (#1180)
- Minor optimization: use
convert
rather than constructor to convert array type before output (#1182) - linear stability calculator? (#1191)
- Grid in JLD2 files produced by
JLD2OutputWriter
is not sliced (#1194) - Running Oceananigans with 2 threads allocates the most memory (#1218)
- Roadmap to version 1.0 (#1234)
- generalizing calculate_tendencies! ? (#1239)
- Change default advection scheme and halo size for grids, and add utilities for inferring needed halo sizes? (#1245)
- 4th order or higher for center differencing (#1265)
- Output writer schedules should be checkpointed (#1280)
- Error on invalid time interval + time window combinations for AveragedTimeInterval (#1288)
- Available Potential Energy (#1297)
- Extensive saving of model and simulation parameters in output metadata? (#1313)
- Create two new advection schemes:
UpwindBiasedFirstOrder
andCenterSixthOrder
(#1320) - Allow for computed fields diffusivities (#1327)
- implicit free-surface for
ShallowWaterModel
(#1378) - Is
convert_output
forNamedTuple
sufficiently general? (#1398) - Examples should plot without using any Oceananigans functions (#1405)
- Convergence tests pipeline takes several hours to finish (#1420)
- What time attribute should Oceananigans use for NetCDF? (#1421)
- Document the parameters that users can change and their default values (#1427)
- Get rid of vertical integrals for
IncompressibleModel
(#1443) - Modify
test_dynamics.jl
to includes tests forShallowWaterModel
(#1448) - Test non-equal MPI domain decompositions soon (#1450)
- Profiling MPI and benchmarking strong + weak scaling (#1451)
- Check "model consistency" for users during model construction? (#1453)
- Separate Poisson solvers from main code (#1553)
- Generating conformal cubed sphere grids (#1586)
- Best way to interpolate cubed sphere grid to a regular lat-lon grid? (#1587)
- Boundary conditions cannot be enforced with
closure = nothing
(#1630) - Keeping validation script up-to-date (#1634)
- "Dimension-aware" behavior of
set!
andinterior
withFlat
directions? (#1655) - benchmarks scripts cannot write CPU to GPU speedup table to html file due to ">" being in filename (#1672)
- Literate internal tide validation experiment? (#1694)
- Cannot construct GPU models on PowerPC architectures:
ERROR: cfunction: closures are not supported on this platform
(#1706) ShallowWaterModel.bathymetry
? (#1712)- Add a bathymetry test for
ShallowWaterModel
(#1716) - What API should we implement for specifying fluxes across
GridFittedImmersedBoundary
? (#1720) - New Benchmarks (#1722)
ShallowWaterModel
onFloat32
(#1724)- Direct 2D solves with FFT-based solver for rigid lid and implicit free surface (#1727)
- Aborting a simulation with NaNs without stacktraces (#1734)
- Test correctness / geometric consistency of
VerticallyStretchedRectilinearGrid
(#1756) - Energy/enstrophy conserving schemes for Coriolis (#1818)
- Oceananigans is much slower when using relaxation forcing functions (#1827)
- An example with a non-trivial thermal-wind balance (#1846)
- Should examples be written so that the "part 2" (load output and plot/process) is independent of "part 1" (setup and run)? (#1850)
- Documentation v2.0 (#1852)
- Threaded benchmarks (#1861)
- Making all examples GPU-compatible (#1863)
- Many of the shallow water advection operators appear to be wrong (#1866)
- Poisson solver tests use
CenterField
to represent fields at Faces (#1867) - Multi GPU scaling is very poor (#1882)
- Catching common performance / type inference issues with user functions (#1885)
- PTX compilation errors with GPU AbstractOperations (#1886)
- Enhance simulation
Callback
and modelStateModifier
utilities (#1895) - Need to remove
CUDA.allowscalar(true)
because it's been deprecated (#1901) - Refactoring Coriolis implementation and semantics (#1904)
- Utilities for benchmarking user-defined forcing, boundary conditions, and output calculation (#1918)
- Test for incompressibility in hydrostatic and non-hydrostatic models (#1934)
- More comprehensive testing for immersed boundaries (#1937)
- Need test for non-trivial fluxes along two boundaries (#1938)
- No need for free surface tendency with
ImplicitFreeSurface
(#1941) - Arrays are not correctly extruded when broadcasting with fields (#1942)
- scalings for the distributed models (#1948)
- NaNChecker should only check a field in
prognostic_fields(model)
, not allfields(model)
(#1960) - Cleaning up tests for efficiency (#1990)
- Add method to
AveragedField
to prescribed averaged dimensions with names, e.g.,dims = (:x, :y)
(#2006) - Do we need separate
MultiCPU
andMultiGPU
architectures? (#2020) - Trigonometric functions may be causing slowdown on a simulation when running on GPUs (#2034)
- Should we test also models run with tuple of closures and/or using different models? (#2047)
- Simplify way users have access to grid metrics (#2058)
- Better name for the "underlying grid" for
ImmersedBoundaryGrid
(#2095) - Encourage compiler to inline recursive closure tuple operators with "outer-inner" form (#2101)
- Pressure solver algorithm involves two superfluous fields (#2126)
with_size
for building new grids with similar domains and topologies but different resolutions (#2146)- Emit warning when
buoyancy.gravitational_acceleration != free_surface.gravitational_acceleration
? (#2148) - K-Profile Parametrization (#2149)
- Function interface for extracting properties from models (#2156)
- Helpful error when using an invalid
schedule
in OutputWriters, Diagnostics, and Callbacks (#2180) - Variable grid spacing in horizontal dimension (x or y) causes
NonhydrostaticModel
instantiation to fail (#2191) HydrostaticFreeSurface
model on a grid withFlat z
(#2198)- 32-bit indices for decreased GPU register pressure (#2202)
- Move
FieldTimeSeriesCollector
toOceananigans
? (#2216) - Testing problem (#2222)
- Try harder to transfer boundary conditions to derived fields? (#2233)
- Simplifying notation for difference and interpolation operators (#2236)
- Automagically wrap
AbstractOperation
andReduction
inField
insideOutputWriters
? (#2242) - Move barotropic mode calculation to
update_state!
? (#2244) - Serialize
ImmersedBoundaryGrid
by converting immersed boundary functions to arrays? (#2245) - Export
Horizontal
andVertical
diffusivity isotropies from top-level? (#2254) - Need test for (Cu)Array of
IsopycnalSkewSymmetricDiffusivity
closures (#2258) - Possibly changing calculation of
solid_interface
function (#2263) - Support
Field(loc, op)
for specifyingAbstractOperation
location (#2270) - Improvements to stretched
WENO5
API and new methodvalidate_advection
(#2271) - Implementing Li et al's "theory wave" surface wave model (#2290)
- Convenience constructors for 1 and 2D grids? (#2292)
- Why is
solid_interface
used for reducing immersed fields? (#2293) interpolate
Field
fails on stretched grids (#2300)ImmesedBoundaryGrids
withFlat
dimensions don't work (#2301)- Can we build examples separately from
makedocs
? (#2309) - Teach
AbstractOperations.validate_grid
aboutZeroField
andConstantField
(#2311) - Reorganizing examples in the docs (#2326)
- Passing parameters for nested boundary functions (nested task error: UndefKeywordError: keyword argument not assigned) (#2336)
NetCDFOutputWriter
should havemode = "c"
as default? (#2339)- Friendlier syntax for
KernelFunctionOperation
? (#2340) - Can't use single
ScalarDiffusivity(; 魏)
when魏 isa AbstractArray
(#2342) - Usability concerns and possible improvements for
MultiArch
(#2349) - Do we need a place to document experimental features? (#2355)
- Interface for closures (and other model terms) that introduce auxiliary prognostic variables (#2422)
- Benchmarking scripts for immersed boundaries and immersed boundary conditions (#2452)
- Modular and unified user interface for advection schemes (#2454)
- Add examples for setting initial conditions with Arrays on the docs (CPU and GPU) (#2457)
- Oceananigans "wiki" for hosting practical usage information (#2470)
- Is the finite volume discretization of the barotropic pressure gradient correct? (#2475)
- Change
FieldTimeSeries
to behave like 1D vector? (#2492) - Tests for
OffsetArrays-Field
broadcasts (#2501) - Biogeoceananigans.jl (#2512)
- Error in
visualize_barotropic_gyre.jl
in validation exps (#2542) - Advection in
ShallowWaterModel
(#2615) - Bug in
DiagonallyDominantPreconditioner
(#2668) - Incremental compilation warning for
next_stream()
(#2676) - Near global quarter degree validation experiment is broken (#2690)
- Failed to compile PTX code ... uses too much parameter space (#2700)
- Callback with
SpecifiedTimes
also gets called in iteration 0 (#2719) - Issues with
heuristic_workgroup
(#2828) - (Abstract) reductions don't play well with other operations (#2856)
- Validation script for flow over immersed hills fails in
bottom_drag
case (#2860) - Initially quasi-quiescent stably stratified simulations develop instabilies and eventually blow up (#2935)
- README images broken (#2947)
- Heat flux sign incorrect in mixing and convection example (#2959)
- Ambiguous halo size error in HydrostaticFreeSurfaceModel (#2983)
- need to update docstring in
netcdf_output_writer.jl
(#2986) - 10-100x slowdown on CPU after upgrade to KernelAbstractions 0.8 (due to type inference failure?) (#2996)
- Fill velocity halos correctly on the MultiRegion cubed sphere (#3021)
- Kernel compilation error in model with
forcing
+auxiliary_fields
on GPU (#3025)
Merged pull requests:
- Creates functions for grid spacings (#2842) (@tomchor)
- Horizontal regridding and stabilizing CATKE features (#2881) (@glwagner)
- Simplify user interface for
KernelFunctionOperation
(#2964) (@glwagner) - Fixes typo in
abstract_scalar_biharmonic_diffusivity_closure.jl
(#2968) (@tomchor) - Fix docs rendering in Model setup/Forcing (#2971) (@navidcy)
- Fix rendering in
numerical_implementation/turbulence_colsures.md
(#2976) (@jbisits) - More informative message when user provides smaller halo size than ImmersedBoundraryGrid requires (#2984) (@navidcy)
- Fix
show(io, ::KernelFunctionOperation)
(#2987) (@navidcy) - Flips sign for
gravity_unit_vector
to match its description (attempt #2) (#2990) (@tomchor) - Completely overhaul grid utils +
min_螖x/y/z
->minimum_spacing
+ movex/y/zspacing
toGrids
(#2991) (@navidcy) - Update
resting_stratified_bumpy_ocean.jl
(#2993) (@francispoulin) - Update contributing.md to use
main
notmaster
(#2994) (@glwagner) - Time-averaged eddy diffusivities for
RiBasedVerticalDiffusivity
(#2995) (@glwagner) - Fix bug in
precondition!
forDiagonallyDominantPreconditioner
(#3011) (@glwagner) - Delete validation/near_global_lat_lon directory (#3012) (@glwagner)
- Make OnDisk backend minimally usable (#3014) (@glwagner)
- Homogenize interface for initializing
Simulation
, schedules, etc (#3015) (@glwagner) - Stabilizing CATKE for three-dimensional runs on ImmersedBoundaryGrid (#3016) (@glwagner)
- Increase halo size in
flow_over_hills.jl
(#3019) (@glwagner) - Check for NaNs in
prognostic_fields
notfields
(#3023) (@glwagner) - Fixes CPU slowdown with KernelAbstractions >= v0.8 (#3026) (@simone-silvestri)
- Brings back SWE regression (#3028) (@navidcy)
- Bugfix in initialize! (#3029) (@simone-silvestri)
- Fix performance on CPU after upgrade to KernelAbstractions 0.8; issue #2996 (#3030) (@simone-silvestri)