Class Documentation

This section is the API reference for the internal-modes class hierarchy. Use it when you want the exact constructor, property, method, or governing equation for one of the solver classes.

The class pages are organized so shared behavior lives on the highest class that defines it. In particular, InternalModesBase documents the common mode-normalization and boundary-condition contract, while solver subclasses focus on what changes in the numerical or analytical formulation.

The vertical transform classes document the new API for turning solved modes into projection operators, reduced or fixed-grid transforms, observational projections, and vertical modal spectra. They deliberately stay focused on the vertical part of the problem.

Choose a starting point

Class group Use it when
Core classes you want the wrapper API or the shared base-class contract
Vertical transforms you want projection operators, grid-resolvability diagnostics, observation-grid projections, persistence-ready transform objects, or vertical modal spectra
Numerical solvers you want direct control over the spectral, adaptive-grid, density-coordinate, WKB-coordinate, or finite-difference solvers
Analytical and asymptotic models you want closed-form constant/exponential solutions or WKB approximations
Supporting types you want the normalization and boundary-condition enumerations

Shared notation

The reference pages follow the notation in Early, Lelong, and Smith (2020):

Symbol Meaning API name
\(F_j(z)\) horizontal-velocity vertical structure function F
\(G_j(z)\) vertical-velocity or density vertical structure function G
\(h_j\) equivalent depth or eigendepth h
\(N^2(z)\) buoyancy frequency squared N2
\(f_0\) Coriolis parameter at the chosen latitude f0
\(K\) horizontal wavenumber magnitude k
\(\omega\) wave frequency omega
\(z \in [-D, 0]\) physical depth coordinate z, zIn, zOut
\(s(z)\) stretched coordinate used by some solvers x_function, xLobatto

For the main vertical eigenvalue problems, the package follows the manuscript’s two practical forms for the G modes:

\[\partial_{zz} G_j = -\frac{N^2 - \omega^2}{g h_j} G_j\]

for fixed \(\omega\), and

\[\partial_{zz} G_j - K^2 G_j = -\frac{N^2 - f_0^2}{g h_j} G_j\]

for fixed \(K\).

Reading the reference


Table of contents