Package Design

J. Emmanuel Johnson
CNRS
MEOM
Random image of the beach or ocean!

Figure 1:Image from Francois Chollet - Colab Tutorial

Beginner / Causal

These users use the prebuilt models and generally do not need to interact with the underlying components underneath the hood.

  • Prebuild Dynamical Model
  • Initial Condition Functions
  • Boundary Condition Functions

Some example applications would include:

  • Exploration / Teaching
  • Dynamical Model priors for data assimilation applications

Intermediate / Engineer

These users might want to build a simple model using known physics but don't want to get too deep into They can use the Operator API.

  • Custom Params / Domains
  • Custom Fields / State
  • Spatial Discretizations
  • Spatial Operations
  • Grid Operations
  • Process Operations
  • ODE Solver / Step

Some example use cases might be:

  • generating simulations of a specific process
  • adding a custom forcing or diffusion term to an existing model
  • exploring process parameterizations with neural networks

Expert / Researcher

These users can use the Functional API

  • Custom Finite Differences - with FiniteDiffX, Kernex
  • Custom Grid Operations - with kernex
  • Custom Processes - with equinox
  • Custom TimeSteppers - with Diffrax.