zoomy_core.model.models.ml_vam#
Multilayer non-hydrostatic vertically averaged moments (ML-VAM): every layer is a VAM column,
with interface mass fluxes closed by the layer-fraction constraint. SystemModel.from_model
gives the square DAE with state [b, h, q, r, P]; MLVAM.chorin_split gives the predictor
/ pressure / corrector sub-systems.
Module Contents#
Classes#
Multilayer non-hydrostatic VAM with |
Data#
API#
- zoomy_core.model.models.ml_vam.zeta#
‘Symbol(…)’
- class zoomy_core.model.models.ml_vam.MLVAM(init_functions=True, **params)#
Bases:
zoomy_core.model.basemodel.ModelMultilayer non-hydrostatic VAM with
n_layerslayers that move with the free surface, each a column with u in P_level and w, p in P_(level+1) (closed top modes). Pressure closures run downward fromp(1) = 0at the surface andwclosures run upward from the bed kinematic condition.References
Escalante et al. 2024, https://doi.org/10.1016/j.jcp.2024.112882
Audusse et al. 2011, https://doi.org/10.1051/m2an/2010036
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.
- n_layers#
‘Integer(…)’
- level#
‘Integer(…)’
- dimension#
‘Integer(…)’
- stress#
‘OptionParam(…)’
- closures#
‘List(…)’
- derive_model()#
Derive each layer as a VAM column top-down (pressure-trace cascade), close the interface mass fluxes
Gfrom the fraction constraint, and assemble the model. Returns the derivation model with continuity, constraint and momentum rows, and the interpolate, project, reconstruction and wall rows.
- chorin_split(dt=None, *, system_model=None)#
Split the system into predictor, pressure and corrector sub-systems for the Chorin solver. Returns the structural split with respect to the
P_*pressure modes and time stepdt(symbol if None).References
Chorin 1968, https://doi.org/10.1090/S0025-5718-1968-0242392-2