Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename IncompressibleModel to NonhydrostaticModel #1870

Merged
merged 16 commits into from
Jul 19, 2021
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ steps:
depends_on: "init_cpu"

#####
##### IncompressibleModel and time stepping (part 1)
##### NonhydrostaticModel and time stepping (part 1)
#####

- label: "🦀 gpu time stepping tests 1"
Expand All @@ -136,7 +136,7 @@ steps:
depends_on: "init_cpu"

#####
##### IncompressibleModel and time stepping (part 2)
##### NonhydrostaticModel and time stepping (part 2)
#####

- label: "🦈 gpu time stepping tests 2"
Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "Oceananigans"
uuid = "9e8cae18-63c1-5223-a75c-80ca9d6e9a09"
version = "0.59.1"
version = "0.60.0"

[deps]
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Let's initialize a 3D horizontally periodic model with 100×100×50 grid points
```julia
using Oceananigans
grid = RegularRectilinearGrid(size=(100, 100, 50), extent=(2π, 2π, 1))
model = IncompressibleModel(grid=grid)
model = NonhydrostaticModel(grid=grid)
simulation = Simulation(model, Δt=60, stop_time=3600)
run!(simulation)
```
Expand All @@ -108,7 +108,7 @@ N = Nx = Ny = Nz = 128 # Number of grid points in each dimension.
L = Lx = Ly = Lz = 2000 # Length of each dimension.
topology = (Periodic, Periodic, Bounded)

model = IncompressibleModel(
model = NonhydrostaticModel(
architecture = CPU(),
grid = RegularRectilinearGrid(topology=topology, size=(Nx, Ny, Nz), extent=(Lx, Ly, Lz)),
closure = IsotropicDiffusivity(ν=4e-2, κ=4e-2)
Expand Down
2 changes: 1 addition & 1 deletion benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ julia -e 'using Pkg; Pkg.activate(pwd()); Pkg.instantiate(); Pkg.develop(Package
Once the environment has been instantiated, benchmarks can be run via, e.g.

```
julia --project benchmark_incompressible_model.jl
julia --project benchmark_nonhydrostatic_model.jl
```

Most scripts benchmark one feature (e.g. advection schemes, arbitrary tracers). If your machine contains a CUDA-compatible GPU, benchmarks will also run on the GPU. Tables with benchmark results will be printed (and each table will also be saved to an HTML file).
Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_abstract_operations.jl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ for Arch in Archs
N = Arch == CPU ? (32, 32, 32) : (256, 256, 256)

grid = RegularRectilinearGrid(FT, size=N, extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid,
model = NonhydrostaticModel(architecture=Arch(), grid=grid,
buoyancy=nothing, tracers=(:α, :β, :γ, :δ, :ζ))

ε(x, y, z) = randn()
Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_advection_schemes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ using Benchmarks

function benchmark_advection_scheme(Arch, Scheme)
grid = RegularRectilinearGrid(size=(192, 192, 192), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid, advection=Scheme())
model = NonhydrostaticModel(architecture=Arch(), grid=grid, advection=Scheme())

time_step!(model, 1) # warmup

Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_equations_of_state.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ using Benchmarks
function benchmark_equation_of_state(Arch, EOS)
grid = RegularRectilinearGrid(size=(192, 192, 192), extent=(1, 1, 1))
buoyancy = SeawaterBuoyancy(equation_of_state=EOS())
model = IncompressibleModel(architecture=Arch(), grid=grid, buoyancy=buoyancy)
model = NonhydrostaticModel(architecture=Arch(), grid=grid, buoyancy=buoyancy)

time_step!(model, 1) # warmup

Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_lagrangian_particle_tracking.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function benchmark_particle_tracking(Arch, N_particles)
particles = LagrangianParticles(x=x₀, y=y₀, z=z₀)
end

model = IncompressibleModel(architecture=Arch(), grid=grid, particles=particles)
model = NonhydrostaticModel(architecture=Arch(), grid=grid, particles=particles)

time_step!(model, 1) # warmup

Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_multithreading_single.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ using Benchmarks

N = parse(Int, ARGS[1])
grid = RegularRectilinearGrid(size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=CPU(), grid=grid)
model = NonhydrostaticModel(architecture=CPU(), grid=grid)

time_step!(model, 1) # warmup

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ using Plots
pyplot()
# Benchmark function

function benchmark_incompressible_model(Arch, FT, N)
function benchmark_nonhydrostatic_model(Arch, FT, N)
grid = RegularRectilinearGrid(FT, size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid)
model = NonhydrostaticModel(architecture=Arch(), grid=grid)

time_step!(model, 1) # warmup

Expand All @@ -30,7 +30,7 @@ Ns = [32, 64, 128, 256]
# Run and summarize benchmarks

print_system_info()
suite = run_benchmarks(benchmark_incompressible_model; Architectures, Float_types, Ns)
suite = run_benchmarks(benchmark_nonhydrostatic_model; Architectures, Float_types, Ns)

plot_num = length(Ns)
CPU_Float32 = zeros(Float64, plot_num)
Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_regression.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ using Oceananigans
using Benchmarks

baseline = BenchmarkConfig(id="master")
script = joinpath(@__DIR__, "benchmarkable_incompressible_model.jl")
script = joinpath(@__DIR__, "benchmarkable_nonhydrostatic_model.jl")
resultfile = joinpath(@__DIR__, "regression_benchmarks.json")

judge(Oceananigans, baseline, script=script, resultfile=resultfile, verbose=true)
2 changes: 1 addition & 1 deletion benchmark/benchmark_time_steppers.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ using Benchmarks

function benchmark_time_stepper(Arch, N, TimeStepper)
grid = RegularRectilinearGrid(size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid, timestepper=TimeStepper)
model = NonhydrostaticModel(architecture=Arch(), grid=grid, timestepper=TimeStepper)

time_step!(model, 1) # warmup

Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_topologies.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ using Benchmarks

function benchmark_topology(Arch, N, topo)
grid = RegularRectilinearGrid(topology=topo, size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid)
model = NonhydrostaticModel(architecture=Arch(), grid=grid)

time_step!(model, 1) # warmup

Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_tracers.jl
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ end
function benchmark_tracers(Arch, N, n_tracers)
n_active, n_passive = n_tracers
grid = RegularRectilinearGrid(size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid, buoyancy=buoyancy(n_active),
model = NonhydrostaticModel(architecture=Arch(), grid=grid, buoyancy=buoyancy(n_active),
tracers=tracer_list(n_active, n_passive))

time_step!(model, 1) # warmup
Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmark_turbulence_closures.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ using Benchmarks

function benchmark_closure(Arch, Closure)
grid = RegularRectilinearGrid(size=(128, 128, 128), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid, closure=Closure())
model = NonhydrostaticModel(architecture=Arch(), grid=grid, closure=Closure())

time_step!(model, 1) # warmup

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ using Benchmarks

# Benchmark function

function benchmark_vertically_stretched_incompressible_model(Arch, FT, N)
function benchmark_vertically_stretched_nonhydrostatic_model(Arch, FT, N)
grid = VerticallyStretchedRectilinearGrid(architecture=Arch(), size=(N, N, N), x=(0, 1), y=(0, 1), z_faces=collect(0:N))
model = IncompressibleModel(architecture=Arch(), grid=grid)
model = NonhydrostaticModel(architecture=Arch(), grid=grid)

time_step!(model, 1) # warmup

Expand All @@ -29,7 +29,7 @@ Ns = [32, 64, 128, 256]
# Run and summarize benchmarks

print_system_info()
suite = run_benchmarks(benchmark_vertically_stretched_incompressible_model; Architectures, Float_types, Ns)
suite = run_benchmarks(benchmark_vertically_stretched_nonhydrostatic_model; Architectures, Float_types, Ns)

df = benchmarks_dataframe(suite)
sort!(df, [:Architectures, :Float_types, :Ns], by=(string, string, identity))
Expand Down
2 changes: 1 addition & 1 deletion benchmark/benchmarkable_incompressible_model.jl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ for Arch in Architectures, FT in Float_types, N in Ns
@info "Setting up benchmark: ($Arch, $FT, $N)..."

grid = RegularRectilinearGrid(FT, size=(N, N, N), extent=(1, 1, 1))
model = IncompressibleModel(architecture=Arch(), grid=grid)
model = NonhydrostaticModel(architecture=Arch(), grid=grid)

time_step!(model, 1) # warmup

Expand Down
8 changes: 4 additions & 4 deletions benchmark/strong_scaling_incompressible_model.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ for R in ranks
Rx, Ry, Rz = rank_size(R, decomposition)
@info "Benchmarking distributed incompressible model strong scaling with $(typeof(decomposition)) decomposition [N=($Nx, $Ny, $Nz), ranks=($Rx, $Ry, $Rz)]..."
julia = Base.julia_cmd()
run(`mpiexec -np $R $julia --project strong_scaling_incompressible_model_single.jl $(typeof(decomposition)) $Nx $Ny $Nz $Rx $Ry $Rz`)
run(`mpiexec -np $R $julia --project strong_scaling_nonhydrostatic_model_single.jl $(typeof(decomposition)) $Nx $Ny $Nz $Rx $Ry $Rz`)
end

# Collect and merge benchmarks from all ranks
Expand All @@ -38,7 +38,7 @@ for R in ranks
case = ((Nx, Ny, Nz), (Rx, Ry, Rz))

for local_rank in 0:R-1
filename = string("strong_scaling_incompressible_model_$(R)ranks_$(typeof(decomposition))_$local_rank.jld2")
filename = string("strong_scaling_nonhydrostatic_model_$(R)ranks_$(typeof(decomposition))_$local_rank.jld2")
jldopen(filename, "r") do file
if local_rank == 0
suite[case] = file["trial"]
Expand Down Expand Up @@ -69,13 +69,13 @@ end
plt = plot(rank_num, run_times, lw=4, xaxis=:log2, legend=:none,
xlabel="Cores", ylabel="Times (ms)", title="Strong Scaling Incompressible Times")
display(plt)
savefig(plt, "ss_incompressible_times.png")
savefig(plt, "ss_nonhydrostatic_times.png")


plt2 = plot(rank_num, eff_ratio, lw=4, xaxis=:log2, legend=:none, ylims=(0,1.1),
xlabel="Cores", ylabel="Efficiency", title="Strong Scaling Incompressible Efficiency")
display(plt2)
savefig(plt2, "ss_incompressible_efficiency.png")
savefig(plt2, "ss_nonhydrostatic_efficiency.png")

df = benchmarks_dataframe(suite)
sort!(df, :ranks)
Expand Down
4 changes: 2 additions & 2 deletions benchmark/strong_scaling_incompressible_model_single.jl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Rz = parse(Int, ARGS[7])
topo = (Periodic, Periodic, Periodic)
distributed_grid = RegularRectilinearGrid(topology=topo, size=(Nx, Ny, Nz), extent=(1, 1, 1))
arch = MultiCPU(grid=distributed_grid, ranks=(Rx, Ry, Rz))
model = DistributedIncompressibleModel(architecture=arch, grid=distributed_grid)
model = DistributedNonhydrostaticModel(architecture=arch, grid=distributed_grid)

@info "Warming up distributed incompressible model on rank $local_rank..."

Expand All @@ -47,6 +47,6 @@ end samples=10
t_median = BenchmarkTools.prettytime(median(trial).time)
@info "Done benchmarking on rank $(local_rank). Median time: $t_median"

jldopen("strong_scaling_incompressible_model_$(R)ranks_$(decomposition)_$local_rank.jld2", "w") do file
jldopen("strong_scaling_nonhydrostatic_model_$(R)ranks_$(decomposition)_$local_rank.jld2", "w") do file
file["trial"] = trial
end
4 changes: 2 additions & 2 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ model_setup_pages = [
physics_pages = [
"Coordinate system and notation" => "physics/notation.md",
"Boussinesq approximation" => "physics/boussinesq.md",
"`IncompressibleModel`" => [
"Incompressible model" => "physics/incompressible_model.md",
"`NonhydrostaticModel`" => [
"Nonhydrostatic model" => "physics/nonhydrostatic_model.md",
],
"`HydrostaticFreeSurfaceModel`" => [
"Hydrostatic model with a free surface" => "physics/hydrostatic_free_surface_model.md"
Expand Down
4 changes: 2 additions & 2 deletions docs/src/appendix/fractional_step.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Fractional step method

In some models (e.g., `IncompressibleModel` or `HydrostaticFreeSurfaceModel`) solving the momentum
In some models (e.g., `NonhydrostaticModel` or `HydrostaticFreeSurfaceModel`) solving the momentum
coupled with the continuity equation can be cumbersome so instead we employ a fractional step
method. To approximate the solution of the coupled system we first solve an approximation to
the discretized momentum equation for an intermediate velocity field ``\boldsymbol{v}^\star``
without worrying about satisfying the incompressibility constraint. We then project ``\boldsymbol{v}^\star``
onto the space of divergence-free velocity fields to obtain a value for ``\boldsymbol{v}^{n+1}``
that satisfies continuity.

For example, for the `IncompressibleModel`, if we ignore the background velocity fields and the
For example, for the `NonhydrostaticModel`, if we ignore the background velocity fields and the
surface waves, we thus discretize the momentum equation as
```math
\frac{\boldsymbol{v}^\star - \boldsymbol{v}^n}{\Delta t}
Expand Down
2 changes: 1 addition & 1 deletion docs/src/appendix/library.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ Modules = [Oceananigans.Models]
Private = false
Pages = [
"Models/Models.jl",
"Models/IncompressibleModels/incompressible_model.jl",
"Models/NonhydrostaticModels/nonhydrostatic_model.jl",
"Models/HydrostaticFreeSurfaceModels/hydrostatic_free_surface_model.jl",
"Models/ShallowWaterModels/shallow_water_model.jl"
]
Expand Down
8 changes: 4 additions & 4 deletions docs/src/model_setup/background_fields.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ U(x, y, z, t) = 0.2 * z

grid = RegularRectilinearGrid(size=(1, 1, 1), extent=(1, 1, 1))

model = IncompressibleModel(grid = grid, background_fields = (u=U,))
model = NonhydrostaticModel(grid = grid, background_fields = (u=U,))

model.background_fields.velocities.u

Expand All @@ -61,7 +61,7 @@ FunctionField located at (Face, Center, Center)
```

`BackgroundField`s are specified by passing them to the kwarg `background_fields`
in the `IncompressibleModel` constructor. The kwarg `background_fields` expects
in the `NonhydrostaticModel` constructor. The kwarg `background_fields` expects
a `NamedTuple` of fields, which are internally sorted into `velocities` and `tracers`,
wrapped in `FunctionField`s, and assigned their appropriate locations.

Expand All @@ -85,12 +85,12 @@ BackgroundField{typeof(B), NamedTuple{(:α, :N, :f), Tuple{Float64, Float64, Flo
└── parameters: (α = 3.14, N = 1.0, f = 0.1)
```

When inserted into `IncompressibleModel`, we get out
When inserted into `NonhydrostaticModel`, we get out

```jldoctest moar_background
grid = RegularRectilinearGrid(size=(1, 1, 1), extent=(1, 1, 1))

model = IncompressibleModel(grid = grid, background_fields = (u=U_field, b=B_field),
model = NonhydrostaticModel(grid = grid, background_fields = (u=U_field, b=B_field),
tracers=:b, buoyancy=BuoyancyTracer())

model.background_fields.tracers.b
Expand Down
6 changes: 3 additions & 3 deletions docs/src/model_setup/boundary_conditions.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ In general, boundary condition defaults are inferred from the field location and
## Specifying model boundary conditions

To specify non-default boundary conditions, a named tuple of [`FieldBoundaryConditions`](@ref) objects is
passed to the keyword argument `boundary_conditions` in the [`IncompressibleModel`](@ref) constructor.
passed to the keyword argument `boundary_conditions` in the [`NonhydrostaticModel`](@ref) constructor.
The keys of `boundary_conditions` indicate the field to which the boundary condition is applied.
Below, non-default boundary conditions are imposed on the ``u``-velocity and temperature.

Expand All @@ -293,8 +293,8 @@ julia> u_bcs = FieldBoundaryConditions(top = ValueBoundaryCondition(+0.1),
julia> T_bcs = FieldBoundaryConditions(top = ValueBoundaryCondition(20),
bottom = GradientBoundaryCondition(0.01));

julia> model = IncompressibleModel(grid=grid, boundary_conditions=(u=u_bcs, T=T_bcs))
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, boundary_conditions=(u=u_bcs, T=T_bcs))
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=16, Ny=16, Nz=16)
├── tracers: (:T, :S)
├── closure: Nothing
Expand Down
20 changes: 10 additions & 10 deletions docs/src/model_setup/buoyancy_and_equation_of_state.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ end
```jldoctest buoyancy
julia> grid = RegularRectilinearGrid(size=(64, 64, 64), extent=(1, 1, 1));

julia> model = IncompressibleModel(grid=grid, buoyancy=nothing)
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, buoyancy=nothing)
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=64, Ny=64, Nz=64)
├── tracers: (:T, :S)
├── closure: Nothing
Expand All @@ -34,8 +34,8 @@ not want to evolve temperature and salinity, which are included by default. To s
also pass`tracers = ()` to the model constructor.

```jldoctest buoyancy
julia> model = IncompressibleModel(grid=grid, buoyancy=nothing, tracers=())
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, buoyancy=nothing, tracers=())
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=64, Ny=64, Nz=64)
├── tracers: ()
├── closure: Nothing
Expand All @@ -49,8 +49,8 @@ To directly evolve buoyancy as a tracer simply pass `buoyancy = BuoyancyTracer()
constructor. BuoyancyModels `:b` must be included as a tracer, for example,

```jldoctest buoyancy
julia> model = IncompressibleModel(grid=grid, buoyancy=BuoyancyTracer(), tracers=(:b))
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, buoyancy=BuoyancyTracer(), tracers=(:b))
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=64, Ny=64, Nz=64)
├── tracers: (:b,)
├── closure: Nothing
Expand All @@ -64,8 +64,8 @@ To evolve temperature ``T`` and salinity ``S`` and diagnose the buoyancy, you ca
`buoyancy = SeawaterBuoyancy()` which is the default.

```jldoctest buoyancy
julia> model = IncompressibleModel(grid=grid, buoyancy=SeawaterBuoyancy())
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, buoyancy=SeawaterBuoyancy())
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=64, Ny=64, Nz=64)
├── tracers: (:T, :S)
├── closure: Nothing
Expand All @@ -85,8 +85,8 @@ julia> buoyancy = SeawaterBuoyancy(gravitational_acceleration=1.3)
SeawaterBuoyancy{Float64}: g = 1.3
└── equation of state: LinearEquationOfState{Float64}: α = 1.67e-04, β = 7.80e-04

julia> model = IncompressibleModel(grid=grid, buoyancy=buoyancy)
IncompressibleModel{CPU, Float64}(time = 0 seconds, iteration = 0)
julia> model = NonhydrostaticModel(grid=grid, buoyancy=buoyancy)
NonhydrostaticModel{CPU, Float64}(time = 0 seconds, iteration = 0)
├── grid: RegularRectilinearGrid{Float64, Periodic, Periodic, Bounded}(Nx=64, Ny=64, Nz=64)
├── tracers: (:T, :S)
├── closure: Nothing
Expand Down
2 changes: 1 addition & 1 deletion docs/src/model_setup/checkpointing.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ end
```jldoctest
julia> using Oceananigans, Oceananigans.Units

julia> model = IncompressibleModel(grid=RegularRectilinearGrid(size=(16, 16, 16), extent=(1, 1, 1)));
julia> model = NonhydrostaticModel(grid=RegularRectilinearGrid(size=(16, 16, 16), extent=(1, 1, 1)));

julia> checkpointer = Checkpointer(model, schedule=TimeInterval(5years), prefix="model_checkpoint")
Checkpointer{TimeInterval, Vector{Symbol}}(TimeInterval(1.5768e8, 0.0), ".", "model_checkpoint", [:architecture, :grid, :clock, :coriolis, :buoyancy, :closure, :velocities, :tracers, :timestepper, :particles], false, false, false)
Expand Down
Loading