zoomy_core.model.models.vam_zeta_projection module#
VAM Derivation: Phase 2 – Abstract zeta-space projection for VAM.
Takes VAMPreProjectedEquations and writes the formal Galerkin projection in normalized zeta-space [0,1] with abstract matrix symbols.
Unlike the SME projection, VAM has: - x-momentum AND z-momentum projections - Cross-momentum terms (u*w coupling) - Pressure terms kept separate (implicit, not substituted) - Poisson constraint equations I1, I2
- Usage:
from zoomy_core.model.models.vam_derivation import derive_vam_moments from zoomy_core.model.models.vam_zeta_projection import project_vam_to_zeta
state = StateSpace(dimension=2) vam = derive_vam_moments(state) zeta = project_vam_to_zeta(vam) print(zeta.summary())
- class zoomy_core.model.models.vam_zeta_projection.VAMTermType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
Bases:
str,EnumTerm types for VAM projected equations.
- MASS_TEMPORAL = 'mass_temporal'#
- MASS_FLUX = 'mass_flux'#
- U_INERTIA = 'u_inertia'#
- U_ADVECTIVE_FLUX = 'u_advective_flux'#
- U_TOPOGRAPHY_NC = 'u_topography_nc'#
- U_VERTICAL_ADV_NC = 'u_vertical_adv_nc'#
- U_MEAN_VEL_NC = 'u_mean_vel_nc'#
- W_INERTIA = 'w_inertia'#
- W_CROSS_FLUX = 'w_cross_flux'#
- W_VERTICAL_ADV = 'w_vertical_adv'#
- W_GRAVITY = 'w_gravity'#
- PRESSURE_X_GRADIENT = 'pressure_x_gradient'#
- PRESSURE_X_BOUNDARY = 'pressure_x_boundary'#
- PRESSURE_Z_VOLUME = 'pressure_z_volume'#
- PRESSURE_Z_BOUNDARY = 'pressure_z_boundary'#
- POISSON_I1 = 'poisson_I1'#
- POISSON_I2 = 'poisson_I2'#
- W_CLOSURE = 'w_closure'#
- class zoomy_core.model.models.vam_zeta_projection.VAMZetaProjectedEquations(state, continuity=<factory>, x_momentum=<factory>, z_momentum=<factory>, pressure_x=<factory>, pressure_z=<factory>, poisson=<factory>, assumptions_applied=<factory>, dimension=2)#
Bases:
objectVAM equations projected into abstract zeta-space [0, 1].
Contains the formal Galerkin projection for non-hydrostatic shallow water:
x-momentum (mode l, raw, before M^{-1}):
\[h M_{lk} \frac{\partial \alpha_k}{\partial t} + \frac{\partial}{\partial x}(h A_{lij} \alpha_i \alpha_j) + g h \Phi_l \frac{\partial b}{\partial x} + \text{NC terms} = -\frac{\partial(h\pi_0)}{\partial x} \Phi_l - \text{pressure BCs}\]z-momentum (mode l, raw):
\[h M_{lk} \frac{\partial \gamma_k}{\partial t} + \frac{\partial}{\partial x}(h A_{lij} \alpha_i \gamma_j) + g \Phi_l = \int_0^1 p \frac{d\varphi_l}{d\zeta} d\zeta + \text{pressure BCs}\]- Abstract basis matrices:
M_{lk}, A_{lij}, D_{lk}, B_{lij}, Phi_l, phib_l
- Parameters:
- state: object#
- assumptions_applied: List[str]#
- dimension: int = 2#
- property horizontal_dim#
- summary()#
- Return type:
str
- latex_system()#
Return LaTeX for the projected VAM PDE system.
- Return type:
str
- zoomy_core.model.models.vam_zeta_projection.project_vam_to_zeta(pre)#
Phase 2: Formal Galerkin projection of VAM equations into abstract zeta-space.
Produces abstract matrix symbols for all terms. No basis or level chosen yet.
- Parameters:
pre (VAMPreProjectedEquations) –
- Return type: