Skip to content

Useful modeling tools: Field abstraction, staggered grid functionality #38

@glwagner

Description

@glwagner

I think OceanParameterizations.jl probably has the potential to supercede OceanTurb.jl, since in a sense its requirements are a subset of what OceanTurb provides. I think it'd be amazing if the package offered practical, useful tools for column modeling, parameterization development and differentiation-based optimization and UQ.

To become a useful modeling package, I think OceanParameterizations needs something similar to OceanTurb / Oceananigans's Field abstraction. We also want composable operators for differentiating / interpolating fields on a staggered grid, and a template for implementing PDEs that hooks into DifferentialEquations for time integration. Some aspect of these abstractions must already exist given the results I've seen, but I'm not sure how mature the functionality is.

We could even just import Oceananigans functions if we are ok hard-coding three-dimensionality. Since the ocean is 3D, I think this is ok, if slightly inconvenient for column modeling. One may want to optimize 3D parameterizations eventually (eg mesoscale closures, etc...)

Along the way we want to ensure that models remain differentiable and machine-learnable.

If we can build a simple Field abstraction and PDE template, then we can probably port both KPP and OceanTurb's TKE-based closure into OceanParameterizations without too much pain.

I'm interested in people's thoughts --- would this be welcome, unwelcome? What is already present in the package that could be leveraged? What might have to be re-written?

@navidcy might be interested in this too, and @kburns if he wants to train NN's for two-dimensional turbulent flows during time-integration (and can stomach using FV).

Some notes

Fields and staggered grid operators are implemented in OceanTurb, but because the implementation pre-dates Oceananigans, it is a bit quirky and slightly less usable than Oceananigans Fields and operators. OceanTurb also suffers because it doesn't use DifferentialEquations. It's PDE template is probably approximately what we want, however (a diffusion term, an advection term, and a source term, with tools for treating diffusion + advection implicitly during time-integration).

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