hurricane
The hurricane test group implements regionally refined, single layer
barotropic, tropical cyclone cases as described in hurricane in
the User’s Guide.
The hurricane test group uses the MPAS-Ocean wetting and drying scheme to
simulate coastal flooding due to storm surge. Three wetting and drying options
are accepted as a wetdry argument into the Init and Forward cases
(off, standard, subgrid). If subgrid is used, the test group
will build look-up tables from a high-resolution DEM in order to apply the
Shallow Water Subgrid scheme corrections to the barotropic momentum equations.
The hurricane test group also supports two local time-stepping schemes
(LTS, FB-LTS), passed as the use_lts argument in the Mesh,
Init and Forward cases.
Meshes
The hurricane test group supports 3 meshes (DEQU120at30cr10rr2,
DEVR45to5rr1, RRS6to18). Each mesh inherits from the
compass.ocean.mesh.floodplain.FloodplainMeshStep class,
and provides a build_cell_width_lat_lon() method to specify the mesh
resolution array using the
mpas_tools.ocean.coastal_tools.coastal_refined_mesh() function. Each
mesh also uses config options to determine how the floodplain is defined.
DEQU120at30cr10rr2
The DEQU120at30cr10rr2 mesh is a quasi-uniform, 120 km horizontal resoution
global mesh with regional refinement along the Mid-Atlantic Bight down to 2 km.
The mesh is defined by
compass.ocean.tests.hurricane.mesh.dequ120at30cr10rr2.DEQU120at30cr10rr2BaseMesh.
The default config options for this mesh are:
# options for spherical meshes
[spherical_mesh]
## config options related to the step for culling land from the mesh
# number of cores to use
cull_mesh_cpus_per_task = 18
# minimum of cores, below which the step fails
cull_mesh_min_cpus_per_task = 1
# maximum memory usage allowed (in MB)
cull_mesh_max_memory = 1000
# Elevation threshold to use for including land cells
floodplain_elevation = 10.0
# options for hurricane testcases
[hurricane]
## config options related to the initial_state step
# number of MPI tasks to use
init_ntasks = 36
# minimum of MPI tasks, below which the step fails
init_min_tasks = 8
# maximum memory usage allowed (in MB)
init_max_memory = 1000
# number of threads
init_threads = 1
## config options related to the forward steps
# number of MPI tasks to use
forward_ntasks = 180
# minimum of MPI tasks, below which the step fails
forward_min_tasks = 18
# maximum memory usage allowed (in MB)
forward_max_memory = 1000
# number of threads
forward_threads = 1
DEVR45to5rr1
The DEVR45to5rr1 mesh is a variable-resolution 45 km to 5 km global mesh
with regional refinement along the Mid-Atlantic Bight down to 1 km.
The mesh is defined by
compass.ocean.tests.hurricane.mesh.devr45to5rr1.DEVR45to5rr1BaseMesh.
The default config options for this mesh are:
# options for spherical meshes
[spherical_mesh]
## config options related to the step for culling land from the mesh
# number of cores to use
cull_mesh_cpus_per_task = 18
# minimum of cores, below which the step fails
cull_mesh_min_cpus_per_task = 1
# maximum memory usage allowed (in MB)
cull_mesh_max_memory = 1000
# Elevation threshold to use for including land cells
floodplain_elevation = 40.0
# Resolution threshold to use for including land cells
floodplain_resolution = 4.0
# Minimum depth to enforce outside floodplain region
min_depth_outside_floodplain = 1.0
# options for hurricane testcases
[hurricane]
## config options related to the initial_state step
# number of MPI tasks to use
init_ntasks = 512
# minimum of MPI tasks, below which the step fails
init_min_tasks = 512
# maximum memory usage allowed (in MB)
init_max_memory = 1000
# number of threads
init_threads = 1
## config options related to the forward steps
# number of MPI tasks to use
forward_ntasks = 1024
# minimum of MPI tasks, below which the step fails
forward_min_tasks = 1024
# maximum memory usage allowed (in MB)
forward_max_memory = 1000
# number of threads
forward_threads = 1
RRS6to18
The RRS6to18 mesh is a high-resolution global mesh with Rossby-radius-scaling
of horizontal resolution from 18 km down to 6 km.
The mesh is defined by
compass.ocean.tests.hurricane.mesh.rrs6to18.RRS6to18BaseMesh.
The default config options for this mesh are:
# options for spherical meshes
[spherical_mesh]
## config options related to the step for culling land from the mesh
convert_culled_mesh_to_cdf5 = True
# number of cores to use
cull_mesh_cpus_per_task = 18
# minimum of cores, below which the step fails
cull_mesh_min_cpus_per_task = 1
# maximum memory usage allowed (in MB)
cull_mesh_max_memory = 1000
# Elevation threshold to use for including land cells
floodplain_elevation = 20.0
# Resolution threshold to use for including land cells
floodplain_resolution = 16.0
floodplain_geojson = mab_floodplain.geojson
# Minimum depth to enforce outside floodplain region
min_depth_outside_floodplain = 1.0
# options for hurricane testcases
[hurricane]
## config options related to the initial_state step
# number of MPI tasks to use
init_ntasks = 512
# minimum of MPI tasks, below which the step fails
init_min_tasks = 1
# maximum memory usage allowed (in MB)
init_max_memory = 1000
# number of threads
init_threads = 1
## config options related to the forward steps
# number of MPI tasks to use
forward_ntasks = 1024
# minimum of MPI tasks, below which the step fails
forward_min_tasks = 1024
# maximum memory usage allowed (in MB)
forward_max_memory = 1000
# number of threads
forward_threads = 1
Test cases
mesh test case
The mesh test case generates an MPAS horizontal mesh, then culls out the
land cells to improve model efficiency. For hurricane meshes, the culling
step preserves a coastal floodplain according to config options. The
compass.ocean.tests.hurricane.mesh.Mesh class is instantiated with
the desired mesh name in order to build the mesh.
If either of the local time-stepping schemes (LTS, FB-LTS) are enabled, the
compass.ocean.tests.hurricane.lts.mesh.lts_regions.LTSRegionsStep
class creates a copy of the culled mesh file that additionally includes an
array called LTSRegion.
This array has appropriate flags that determine what time-step should be used on
a certain cell of the mesh, according to the local-time stepping scheme.
The graph.info file is also copied and modified to address proper load balancing.
The aforementioned class receives the
compass.ocean.mesh.cull.CullMeshStep as input.
init test case
The init test performs steps to set up the vertical mesh, initial
conditions, atmospheric forcing, and parameterized wave and bottom drag, and
prepares the station locations for timeseries output.
initial_state
The class compass.ocean.tests.hurricane.init.initial_state.InitialState
defines a step for running MPAS-Ocean in init mode. The vertical mesh is
set up with a single layer. For the subgrid scheme, the initial_state step
is where the wetdry parameter determines whether to build the subgrid
look-up tables and construct the floodplain topography averaged from the
high-resolution DEM.
interpolate_atm_forcing
The class compass.ocean.tests.hurricane.init.interpolate_atm_forcing.InterpolateAtmForcing
defines a step for interpolating CFSv2 reanalysis data for atmospheric winds
and pressure onto the MPAS-Ocean mesh at hourly time intervals. The forward
run uses this as input to update the time varying atmospheric forcing.
create_pointstats_file
The class compass.ocean.tests.hurricane.init.create_pointstats_file.CreatePointstatsFile
defines a step to create the input file for the MPAS-Ocean pointWiseStats
analysis member based on station locations which have observed data.
topographic_wave_drag
The class compass.ocean.tests.hurricane.lts.init.topographic_wave_drag.ComputeTopographicWaveDrag
defines a step for interpolating the reciprocal of the r_inv to the mesh edges.
This step is needed to include the contribution of the topographic wave drag
in the model momentum tendency.
sandy test case
The sandy test case is responsible for the forward model simulation and analysis.
forward
The class compass.ocean.tests.hurricane.forward.forward.ForwardStep
defines a step to run MPAS-Ocean in forward mode. For the subgrid scheme, the
forward step is where the wetdry parameter determines whether to apply
the subgrid corrections via the look-up tables built in the initial_state
step.
analysis
The class compass.ocean.tests.hurricane.analysis.Analysis
defines a step to generate validation plots comparing sea surface height
timeseries between modeled and observed data at several different stations.
Both NOAA and USGS observations are plotted.