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, we show an example of the type of application that inspired the construction of NUMO.  The Greenland landmass can be found in panel a). Panel b) shows a fjord we may be interested in resolving, and panel c) shows a zoomed in version of  the unstructured grid which, in turn, can be zoomed in further in panel d)  to the part of the fjord that touches the landmass.  In the figure  below, we show a larger version of the fjord-ocean grid shown in panel 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 [Springer Nature].

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. 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.  Former BSU PhD student Yao Gahounzo worked with Prof. Kopera to improve/extend NUMO using more realistic boundary conditions and extended this work to the hydrostatic ocean (called h-NUMO); this work can be found here [PDF] and is housed in a private Github repo ([Github Link]) but is expected to be released soon. There is a new version of h-NUMO being developed at NPS. This new code is written in the Julia programming language and takes advantage of entropy-stable methods.  Currently, it is being housed in a private Github repo [Github Link].

Who funded NUMO
 

NUMO was funded by the SCIDAC program of the Department of Energy from 2016-2018.  The Office of Naval Research (ONR) funded the Fortran version of -h-NUMO, in collaboration with Michal Kopera at Boise State University and Eric Chassignet and Alan Wallcraft at Florida State University, COAPS. The new Julia version of h-NUMO (new name yet to be decided) is currently unfunded but if interested, we accept all forms of payment 😁

 

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. h-NUMO and the new Julia version aim to build a more performant code that can be used for global ocean modeling.

 

 

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

Currently NUMO can fully exploit massively parallel architectures in CPU-only mode. To run on CPU-only, NUMO relies on the NUMA framework and uses MPI+OpenMP. NUMO and h-NUMO can be extended to CPU-GPU using the OpenACC approach recently leveraged by NUMA. However, we expect that the new h-NUMO Julia form will do this differently.

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.

© 2023 by Frank Giraldo. Proudly created with Wix.com

  • Facebook Clean Grey
  • Twitter Clean Grey
  • LinkedIn Clean Grey
bottom of page