zoomy_core.model.models.vam

zoomy_core.model.models.vam#

VAM: the non-hydrostatic vertically-averaged moment Model, derived with the same Galerkin recipe as SME but with a modal non-hydrostatic pressure. SystemModel.from_model(VAM(level=Nu)) gives the square DAE; chorin_split gives the predictor/pressure/corrector sub-systems.

Module Contents#

Classes#

VAM

Non-hydrostatic vertically-averaged moment equations of order level; u, w and the non-hydrostatic pressure share the modal basis.

Data#

API#

zoomy_core.model.models.vam.zeta#

‘Symbol(…)’

class zoomy_core.model.models.vam.VAM(init_functions=True, **params)#

Bases: zoomy_core.model.basemodel.Model

Non-hydrostatic vertically-averaged moment equations of order level; u, w and the non-hydrostatic pressure share the modal basis.

The pressure modes are Lagrange multipliers of the divergence constraints; the predictor keeps the SWE hyperbolic structure.

References

  • Escalante et al. 2024, https://doi.org/10.1016/j.jcp.2024.112882

Initialization

Declare variables and parameters, run the derivation, and (unless _finalize_lazy) finalize for the SystemModel.

Args

  • init_functions: register the operator methods as symbolic functions during finalization.

level#

‘Integer(…)’

dimension#

‘Integer(…)’

stress#

‘OptionParam(…)’

closures#

‘List(…)’

small_slope#

‘Boolean(…)’

derive_model()#

Build the declarative VAM model (sigma-map, projected mass, horizontal and vertical momentum, closures) and its 3-D projection rows; called by the base __init__.

chorin_split(dt=None, *, system_model=None)#

Split the lifted system into the Chorin predictor, pressure and corrector sub-systems (SM_pred, SM_press, SM_corr), with row roles read structurally off the operators.

Args

  • dt: time step symbol; defaults to a fresh positive dt that the solver renames.

  • system_model: an already configured SystemModel; attach ICs/BCs before the split and re-attach BCs on SM_pred after.

References

  • Chorin 1968, https://doi.org/10.1090/S0025-5718-1968-0242392-2