cosine_bell
In most cases, the polaris.ocean.tasks.cosine_bell.CosineBell
test performs a series of 24-day runs that advect a bell-shaped tracer blob
around the sphere. The resolution of the sphere varies (by default, between
60 and 240 km). Advected results are compared with a known exact solution to
determine the rate of convergence.
There is also a restart test, described below, that performs only two time steps of the test to verify the exact restart capability.
framework
The config options for the cosine_bell
tests are described in
cosine bell in the User’s Guide.
Additionally, the test uses a forward.yaml
file with a few common
model config options related to drag and default horizontal and
vertical momentum and tracer diffusion, as well as defining mesh
, input
,
restart
, and output
streams. This file has Jinja templating that is
used to update model config options based on Polaris config options, see
Convergence Tests.
base_mesh
Cosine bell tasks use shared base_mesh
steps for creating
Quasi-uniform and Icosahedral Spherical Meshes at a sequence of resolutions.
init
The class polaris.ocean.tasks.cosine_bell.init.Init
defines a step for setting up the initial state at each resolution with a
tracer distributed in a cosine-bell shape.
forward
The class polaris.ocean.tasks.cosine_bell.forward.Forward
descends from polaris.ocean.convergence.spherical.SphericalConvergenceForward
,
and defines a step for running MPAS-Ocean from an initial condition produced in
an init
step. See Convergence Tests for some relevant
discussion of the parent class. The time step is determined from the resolution
based on the dt_per_km
config option in the [convergence_forward]
section. Other model config options are taken from forward.yaml
.
analysis
The class polaris.ocean.tasks.cosine_bell.analysis.Analysis
descends from
polaris.ocean.convergence.analysis.ConvergenceAnalysis
,
and defines a step for computing the error norm (L2) for the results
at each resolution, saving them in convergence_tracer1.csv
and plotting them
in convergence_tracer1.png
.
validate
The class polaris.ocean.tasks.cosine_bell.validate.Validate
is a
step for validating the results between two cosine-bell runs. It is currently
used to verify bit-for-bit restart in the restart
test described below.
viz
The visualization step is available only in the cosine_bell/with_viz
tasks. It is not included in the cosine_bell
in order to keep regression
as fast as possible when visualization isn’t needed.
The class polaris.ocean.tasks.cosine_bell.viz.Viz
is a step for plotting the initial and final states of the advection test for
each resolution. The colormap is controlled by these options:
# options for visualization for the cosine bell convergence test case
[cosine_bell_viz]
# colormap options
# colormap
colormap_name = viridis
# the type of norm used in the colormap
norm_type = linear
# colorbar limits
colorbar_limits = 0.0, 1.0
See global lat/lon plots for more details.
decomp
The class polaris.ocean.tasks.cosine_bell.decomp.Decomp
defines
a decomposition test across core counts. It runs Cosine Bell test at coarse
resolution once each on 12 and 24 cores to verify bit-for-bit reproducibility
for tracer advection across different core counts.
restart
The polaris.ocean.tasks.cosine_bell.restart.Restart
class defines
a restart check that performs two time steps of the Cosine Bell test at coarse
resolution, then performs reruns the second time step, as a restart run to
verify the bit-for-bit restart capability for tracer advection.
restart_step
The polaris.ocean.tasks.cosine_bell.restart.RestartStep
class
defines both steps of the restart run, the “full” run (2 time steps) and the
“restart” run (repeating the last time step after a restart).