nonhydro

The nonhydro test group (compass.ocean.tests.nonhydro.Nonhydro) implements 2 test cases (see nonhydro) to validate the new nonhydrostatic capability. Here, we describe the 2 test cases.

stratified_seiche

This test describes an internal stratified seiche. After the creation of the mesh and initial conditions, an hydrostatic and a nonhydrostatic simulation are run. The namelist.forward file has a few common namelist options for the two models related to run duration, time-stepping scheme, horizontal and vertical momentum, and tracer diffusion. The two simulations have a shared streams.forward file that defines mesh, input, and output streams. There is also the namelist.nonhydro file which defines the PETSc solver, preconditioner and tolerances used for the solution of the nonhydrostatic elliptic problem.

initial_state

The class compass.ocean.tests.nonhydro.stratified_seiche.initial_state.InitialState sets up the initial state for the stratified seiche test case.

First, a planar mesh 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 100 layers of 0.1m thickness each by default. Finally, the initial density profile is computed along with temperature, uniform salinity and zero initial velocity.

forward

The class compass.ocean.tests.nonhydro.stratified_seiche.forward.Forward defines a step for running MPAS-Ocean from the initial condition produced in the initial_state step. The nonhydro_mode argument is a boolean that determines if the hydrostatic or the nonhydrostatic model is run. Namelist and streams files are generate during setup() and MPAS-Ocean is run (including updating PIO namelist options and generating a graph partition) in run(). Both the hydrostatic and nonhydrostatic simulation are run on 4 cores and have a run duration of 50s, which corresponds to one seiche period.

visualize

The visualize step defined by compass.ocean.tests.nonhydro.stratified_seiche.visualize.Visualize makes plots of the horizontal and vertical velocity profiles for the hydrostatic and nonhydrostatic case. The plot shows the horizontal and vertical velocity profiles normalized by their respective maxima at locations x=5m and x=0m, respectively, at time t = 12s.

solitary_wave

This test describes the evolution of a train of solitary waves. After the creation of the mesh and initial conditions, an hydrostatic and a nonhydrostatic simulation are run. The namelist.forward file has a few common namelist options for the two models related to run duration, time-stepping scheme, and horizontal and vertical tracer diffusion. The files namelist.hydro and namelist.nonhydro specify the different momentum viscosities for the two models, and the latter defines the PETSc solver, preconditioner and tolerances used for the solution of the nonhydrostatic elliptic problem. The hydrostatic and nonhydrostatic run share the same streams.forward file that defines mesh, input, restart, and output streams.

initial_state

The class compass.ocean.tests.nonhydro.solitary_wave.initial_state.InitialState sets up the initial state for the solitary test case.

First, a planar mesh 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 100 layers of 20m thickness each by default. Finally, the initial density profile is computed along with temperature, uniform salinity and zero initial velocity.

forward

The class compass.ocean.tests.nonhydro.solitary_wave.forward.Forward defines a step for running MPAS-Ocean from the initial condition produced in the initial_state step. The nonhydro_mode argument is a boolean that determines if the hydrostatic or the nonhydrostatic model is run. Namelist and streams files are generate during setup() and MPAS-Ocean is run (including updating PIO namelist options and generating a graph partition) in run(). Both the hydrostatic and nonhydrostatic simulation are run on 16 cores and have a run duration of 40h, the time at which the solitary waves are fully formed.

visualize

The visualize step defined by compass.ocean.tests.nonhydro.solitary_wave.visualize.Visualize makes plots of the temperature profile at 40h for the hydrostatic and nonhydrostatic case. The plot shows that the nonhydrostatic result leads to a train of rank-ordered solitary-like internal gravity waves, whereas the hydrostatic model fails to capture correct physics.