top of page
The Nonhydrostatic Unified Model of the Ocean (NUMO)
 

Welcome to the NUMO page.  Additional information on NUMO can be found at the University of California at Santa Cruz website (click here: NUMO).  Let us begin with a brief explanation of what exactly is NUMO.

 

 

What is NUMO
 

NUMO is an incompressible Navier-Stokes solver specifically designed to solve the equations for applications in nonhydrostatic ocean modeling. NUMO uses the entire NUMA framework and so it leverages the entire NUMA spatial discretization methods, grid generation, parallelization strategy, time-integration, and high-performance computing approach. On the right, you will find an example of the type of application we plan to use NUMO for.  On the top right, you will see the Greenland landmass (a). Then we show a fjord we are interested in (b) which we zoom in further to construct the unstructured grid for (c) and zoom in further to the part of the fjord that touches the landmass (d).  In the figure  below, we show a larger version of the fjord-ocean grid (c).

​

​

What can NUMO be used for
​

NUMO can be used for simulating nonhydrostatic ocean processes. In particular, we have used it to better understand the plumes formed at the interface between land-ice and ocean water (as occurs in the Greenland fjords). The paper describing some of these capabilities can be found here [ResearchGate].

​

​
Who built NUMO
​

NUMO was designed and constructed by my group in the Department of Applied Mathematics at the Naval Postgraduate School.  Dr. Michal Kopera, my former National Research Council postdoc, formerly at the University of California at Santa Cruz, is now at Boise State University (BSU) in Idaho and is Co-Principal Investigator of the  NUMO model and its primary developer. BSU PhD student Yao Gahounzo has been working with Prof. Kopera to improve/extend NUMO using more realistic boundary conditions. We also collaborated with Professor Wieslaw Maslowski of the Oceanography department at the Naval Postgraduate School on issues related to ocean modeling during various phases of the NUMO project.

​

​

Who funded NUMO
 

NUMO was funded by the SCIDAC program of the Department of Energy from 2016-2018.  The Office of Naval Research (ONR) will fund a NUMO-related project, in collaboration with Michal Kopera at Boise State University and Eric Chassignet and Alan Wallcraft at Florida State University, COAPS.

 

 

NUMO Governing Equations
 

NUMO is meant to solve nonhydrostatic ocean applications, specifically for modeling narrow fjords in Greenland.  To remain as general as possible, we use the 3D incompressible Navier-Stokes equations using the divergence-free continuity equation, and the momentum equation, along with a few tracer equations.

 

 

Numerical Methods in NUMO
 

NUMO uses continuous (CG) and discontinuous Galerkin (DG) methods for approximating the spatial derivatives in the incompressible Navier-Stokes equations. The time-derivatives are solved using implicit methods. The implicit methods require the use of iterative solvers (e.g., Conjugate Gradient and GMRES) along  with preconditioners.  All of this machinery is leveraged from the NUMA framework. However, the time-integrators are different since we require projection methods specifically designed for the incompressible Navier-Stokes equations (INSE). Currently, we are using stiffly-stable implicit methods based on backwards difference formulas.

 

 

NUMO Grids
 

NUMO only uses hexahedral grids (i.e., cube elements). Therefore it becomes non-trivial to construct grids of the type shown in the figures on the right.  To this end, we use the GMSH grid-generation software.

Here is a sample mesh on the right of an idealized fjord.

​

​
NUMO HPC Performance
​

One of the main features of NUMO is that it has been designed to fully exploit current massively parallel architectures including CPU-only and CPU-GPU hybrid as well. To run on CPU-only, NUMO relies on the NUMA framework and uses MPI+OpenMP. To run on CPU+GPU, NUMO uses MPI+OCCA. OCCA is a hardware-agnostic kernel language that allows us to spit-out back-ends for CUDA, OpenCL, Pthreads, OpenMP, etc.

​

​

NUMO Simulations

​

Below are two classical lock-exchange simulations with NUMO. The one on the left is run on a uniform grid and the right one on the  idealized fjord grid shown above.

​

bottom of page