merry_go_round¶
The merry_go_round
test group
(compass.ocean.tests.merry_go_round.MerryGoRound
)
implements variants of the merry-go-round test case. Here,
we describe the shared framework for this test group and the 2 test cases.
framework¶
The shared config options for the merry_go_round
test group
are described in merry_go_round in the User’s Guide.
Additionally, the test group has a shared namelist.forward
file with
a few common namelist options related to run duration and disabled tendency terms, as
well as a shared streams.forward
file that defines mesh
, input
, restart
,
and output
streams.
initial_state¶
The class compass.ocean.tests.merry_go_round.initial_state.InitialState
defines a step for setting up the initial state for each test case.
First, a mesh appropriate for the resolution is generated using
mpas_tools.planar_hex.make_planar_hex_mesh()
. Then, the mesh is
culled to remove periodicity in the x direction. A vertical grid is generated,
with 50 layers of 10-m thickness each by default. Finally, the initial
temperature, salinity, velocity, and debug tracer fields are computed.
forward¶
The class compass.ocean.tests.merry_go_round.forward.Forward
defines a step for running MPAS-Ocean from the initial condition produced in
the initial_state
step. If resolution
is provided as an argument to the
constructor, it is used to modify the time step (config_dt
). MPAS-Ocean is run
(including updating PIO namelist options and generating a graph partition) in run()
.
default¶
The compass.ocean.tests.merry_go_round.default.Default
test performs a
6-hour run on 4 cores. The Validation is used to compare normalVelocity
and tracer1
variables with a baseline.
convergence_test¶
The compass.ocean.tests.merry_go_round.convergence_test.ConvergenceTest
performs three 6-hour runs at three different resolutions (with concomittent refinement
of the time step). It doesn’t contain any Validation.
The analysis
step defined by
compass.ocean.tests.merry_go_round.covergence_test.analysis.Analysis
makes a convegence plot of the root-mean-square-error of each run’s final state with
respect to its initial state.
This test is resource intensive enough that it is not used in regression testing.