WVForcing

Add forcing or dissipation to a wave-vortex transform.


Declaration

classdef WVForcing < handle

Overview

WVForcing is the base class for forcing and closure objects attached to a WVTransform. Use one of the supplied subclasses or subclass this interface to implement a custom forcing. Each instance belongs to the transform supplied at construction and is registered by its unique name through WVTransform.addForcing.

Forcing is applied in three stages. Physical-space forcing contributes tendencies to \((u,v,\eta)\) for hydrostatic flow or \((u,v,w,\eta)\) for nonhydrostatic flow. Those tendencies are projected into wave-vortex space before spectral forcing contributes directly to \((F_+,F_-,F_0)\). Spectral-amplitude forcing may then update Ap, Am, and A0 directly. Potential-vorticity variants contribute only to the zero-frequency tendency or amplitude.

A custom subclass declares one or more stages with forcingType and overrides the corresponding evaluation methods. Spatial forcing is evaluated before projection, spectral forcing is evaluated after projection, and spectral-amplitude forcing is evaluated last. Within each stage, smaller priority values are evaluated first.

WVTransform.addForcing registers forcing objects, orders compatible contributions by priority, and exposes their energy transfers through the transform diagnostics.

Topics

  • Create the forcing
    • WVForcing Initialize the base state for a forcing subclass.
  • Inspect forcing configuration
    • wvt Transform to which this forcing belongs.
    • name used to register this forcing with its transform.
    • forcingType Evaluation stages implemented by this forcing.
    • isClosure Whether this forcing is a small-scale closure.
    • priority Order within a forcing stage, from 0 first to 255 last.

Developer Topics

These items document internal implementation details and are not part of the primary public API.



This site uses Just the Docs, a documentation theme for Jekyll.