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:
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
InternalModesis the usual entry point when you want one API that chooses among the concrete implementations.InternalModesBasis,InternalModesTransform, andInternalModesProjectionare the starting point when you already have modes and need canonical or numerical vertical transforms.InternalModesSpectralis the reference page for the shared spectral machinery used by the stretched-coordinate subclasses.InternalModesDensitySpectralandInternalModesWKBSpectraldocument the two main stretched coordinates from Sections 4.2 and 4.3 of the manuscript.InternalModesAdaptiveSpectraldocuments the adaptive multi-region frequency-grid strategy from Section 4.4.InternalModesConstantStratificationandInternalModesExponentialStratificationare the main analytical benchmarks used throughout the package and its smoke tests.