zoomy_core.model.models.ml_sme

zoomy_core.model.models.ml_sme#

Multilayer shallow moment equations (ML-SME): every layer is a full SME moment column, with interface mass fluxes closed by the layer-fraction constraint. State is [b, h, q_1_0 ... q_N_level]; the model is lifted to a SystemModel via SystemModel.from_model.

Module Contents#

Classes#

MLSME

Multilayer SME with n_layers layers that move with the free surface, each a moment column of order level. The interface transfer velocity is upwinded or averaged through the closures (UpwindInterface / MeanInterface); the kinematic w terms stay untouched.

Data#

API#

zoomy_core.model.models.ml_sme.zeta#

‘Symbol(…)’

class zoomy_core.model.models.ml_sme.MLSME(init_functions=True, **params)#

Bases: zoomy_core.model.basemodel.Model

Multilayer SME with n_layers layers that move with the free surface, each a moment column of order level. The interface transfer velocity is upwinded or averaged through the closures (UpwindInterface / MeanInterface); the kinematic w terms stay untouched.

References

  • Kowalski & Torrilhon 2019, https://doi.org/10.4208/cicp.OA-2017-0263

  • 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#

‘Parameter(…)’

dimension#

‘Integer(…)’

stress#

‘OptionParam(…)’

closures#

‘List(…)’

interface_velocity#

‘Selector(…)’

project_nz#

‘Integer(…)’

derive_model()#

Derive each layer as an SME column, close the interface mass fluxes G from the fraction constraint, and assemble the model. Returns the derivation model with continuity, one momentum equation per layer / direction / mode, and the interpolate, project and wall rows.