|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This page describes the pressure-correction solve path used by projection in PICurv.
The correction solve enforces incompressibility through:
\[ \nabla^2 \phi = \frac{1}{\Delta t}\nabla\cdot\mathbf{u}^*. \]
In code terms:
Null-space handling is explicitly configured for Neumann-like pressure systems via function PoissonNullSpaceFunction in the Poisson module.
PoissonSolver_MG currently:
KSP + PCMG,Phi.After Poisson solve:
From solver.yml via scripts/picurv:
pressure_solver.tolerance -> -poisson_tolpressure_solver.multigrid.levels -> -mg_levelpressure_solver.multigrid.pre_sweeps -> -mg_pre_itpressure_solver.multigrid.post_sweeps -> -mg_post_itpressure_solver.multigrid.semi_coarsening.{i,j,k} -> -mg_i_semi, -mg_j_semi, -mg_k_semi-ps_mg_levels_*petsc_passthrough_options -> raw PETSc flagsFinal option parsing happens in function CreateSimulationContext during context creation.
Current implementation includes:
Nvert/solid checks),-ps_ksp_pic_monitor_true_residual).If pressure solve quality degrades, check first:
Current direct tests are strongest for helper and invariant behavior:
PoissonLHSNewProjectionPoissonNullSpaceFunctionComputeRHSThe main remaining gap is PoissonSolver_MG: it is exercised in runtime smoke, but still lacks equivalent direct bespoke coverage for debugging. Periodic and immersed-boundary stencil branches also remain thinner than the core Cartesian helper surface.
This page describes Pressure-Poisson, GMRES, and Multigrid within the PICurv workflow. For CFD users, the most reliable reading strategy is to map the page content to a concrete run decision: what is configured, what runtime stage it influences, and which diagnostics should confirm expected behavior.
Treat this page as both a conceptual reference and a runbook. If you are debugging, pair the method/procedure described here with monitor output, generated runtime artifacts under runs/<run_id>/config, and the associated solver/post logs so numerical intent and implementation behavior stay aligned.