zoomy_core.model.models.ins3d_model module

zoomy_core.model.models.ins3d_model module#

3D Incompressible Navier-Stokes with Chorin pressure splitting.

The model holds the full INS and provides separate interfaces for predictor (momentum without pressure), Poisson (pressure), and corrector.

Usage:

model = INS3DChorin(dimension=3, nu=0.01)
solver = ProjectionSolver(time_end=1.0, ...)
Q, p = solver.solve(mesh, model)
class zoomy_core.model.models.ins3d_model.INS3DChorin(dimension=3, nu=0.01, **kwargs)#

Bases: Model

3D incompressible Navier-Stokes with Chorin projection splitting.

State vector Q = [u, v, w] (velocity components). Pressure is a separate field solved via Poisson equation.

The model registers: - flux() — convective flux (for the predictor) - source() — zero (viscosity handled via LSQ Laplacian in solver) - eigenvalues() — max(|u|, |v|, |w|) for CFL

The solver uses LSQ derivatives for: - Divergence: ∇·u* → Poisson RHS - Laplacian: ∇²p → Poisson LHS - Gradient: ∇p → correction - Viscous: ν∇²u → predictor source

nu = 0.01#
flux()#

Convective flux F_d = u_d * Q (advection).

eigenvalues()#

Eigenvalues for CFL: max velocity component along normal.