|
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/pic.flow:
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: