zoomy_amrex.solvers#
zoomy_amrex.solvers — param.Parameterized solver wrappers (gui REQ-131).
The GUI/CLI-facing entry point for the AMReX backend. Two solver families, both
driving the existing run_case machinery (codegen → AMReX inputs deck →
make → run → VTK):
HyperbolicSolver— explicit finite-volume march (SWE / SME) on the AmrCore driver.SplitSolver— N sequential system models + pressure projection (Chorin pressure-corrector; NOT VAM-specific), auto-selected for models that exposechorin_split.
Usage (identical shape across all backends):
from zoomy_amrex.solvers import HyperbolicSolver
solver = HyperbolicSolver(CFL=0.45, order=2)
solver.solve(model, mesh, settings) # -> VTK series in settings.output.directory
Design (gui REQ-131, user-approved 2026-07-13):
solve(model, mesh, settings)writes a VTK series intosettings.output.directoryand returns the.pvdpath.settingsis STRUCTURED —settings.output.{directory, filename, snapshots}is always honored;settings.time_end/settings.mesh.n_cellscarry the run/grid properties. Model-/scheme-specific things (reconstruction, eigenvalues, sources, IC, BC) come from the MODEL symbolically.meshis a path (.msh— the structured domain is the mesh bbox) OR a descriptor{"domain": [...], "n_cells": [...]}. RESOLUTION always comes from the mesh/settings, never a solver param.NO case knowledge lives here. Case physics (e.g. a closed-basin wall) is a Wall BC on the MODEL, not a raster hack — the driver dispatches the model’s face BCs (West/East/South/North).
Module Contents#
Classes#
Explicit finite-volume march for hyperbolic models (SWE / SME). |
|
Sequential system models + pressure projection (Chorin pressure-corrector). |
API#
- class zoomy_amrex.solvers.HyperbolicSolver(**params)#
Bases:
zoomy_amrex.solvers._BaseSolverExplicit finite-volume march for hyperbolic models (SWE / SME).
The GUI auto-generates widgets from these bounded params.
Initialization
- CFL#
‘Number(…)’
- order#
‘Integer(…)’
- well_balanced#
‘Boolean(…)’
- positivity#
‘Selector(…)’
- solve(model, mesh, settings, on_progress=None)#
- class zoomy_amrex.solvers.SplitSolver(**params)#
Bases:
zoomy_amrex.solvers._BaseSolverSequential system models + pressure projection (Chorin pressure-corrector).
The split structure — predictor / pressure / corrector sub-models — comes from the MODEL (
model.chorin_split); this wrapper only exposes the march and pressure-solve knobs.Initialization
- cfl#
‘Number(…)’
- precond#
‘Integer(…)’
- dt#
‘Number(…)’
- solve(model, mesh, settings, on_progress=None)#