Skip to content

Feature implementation: Open boundary conditions for the HydrostaticFreeSurfaceModel #5229

@simone-silvestri

Description

@simone-silvestri

After many requests, it is probably time to provide fully functional open boundary conditions (OBCs) for the HydrostaticFreeSurfaceModel. This would be a major step toward making Oceananigans suitable for high-resolution regional simulations, which is, arguably, the regime where both the GPU implementation and the numerical methods of Oceananigans really shine.

This issue is intended to track the development of these boundary conditions.

We already have open boundary conditions for the NonhydrostaticModel, however, a key distinction between the HydrostaticFreeSurfaceModel and the NonhydrostaticModel that we need to address is the presence of two separate time scales: a barotropic time scale associated with the free-surface variables, and a baroclinic (three-dimensional) time scale.

Currently, there are three approaches for handling these differing time scales:

  • ExplicitFreeSurface: No reconciliation is performed; the model is time-stepped at the fastest (barotropic) time scale.
  • ImplicitFreeSurface: The free surface is solved implicitly using a predictor–corrector algorithm, very similar to how the pressure-correction algorithm works in the NonhydrostaticModel.
  • SplitExplicitFreeSurface: The barotropic mode (including prognostic barotropic velocities U and V) is advanced using a smaller time step, then coupled to the three-dimensional solution at the end of each full time step. In this formulation, the ``true'' barotropic velocity is the one computed by the barotropic solver, not that inferred from the three-dimensional evolution.

Given these implementations, the ImplicitFreeSurface is likely the easiest starting point for implementing OBCs, due to its close similarity to the pressure-correction algorithm in the NonhydrostaticModel. However, in the longer term, we would like an OBC implementation that is also compatible with the SplitExplicitFreeSurface. This will require carefully handling boundary conditions for both the three-dimensional flow and the two-dimensional (barotropic) velocities computed during the barotropic solve.
Tagging @NicolaAdrah here, as he has already started (and nearly completed) an implementation of open boundary conditions based on the MITgcm approach that is compatible with the ImplicitFreeSurface.
We can maybe update the implementation you have to the new Oceananigans and open a PR here to continue the development?

cc @glwagner @tomchor

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions