|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
PICurv uses a projection-style incompressible update: momentum predictor, pressure correction, velocity projection.
Given velocity \(\mathbf{u}^n\), the solver computes a provisional field \(\mathbf{u}^*\) from momentum terms, then solves pressure correction:
\[ \nabla^2 \phi = \frac{1}{\Delta t}\nabla\cdot\mathbf{u}^*, \]
followed by:
\[ \mathbf{u}^{n+1} = \mathbf{u}^* - \Delta t\nabla\phi, \qquad p^{n+1}=p^n+\phi. \]
In curvilinear form, gradient components use metric terms (ICsi/IEta/IZet, etc.) and Jacobian inverses in the projection kernel.
@ref Projection explicitly uses boundary-aware stencils and periodic-edge correction logic before final ghost updates and Contra2Cart conversion.
Key implementation details:
Nvert checks),These are part of why projection behavior in PICurv differs from simplified textbook pseudocode.
For projection health, monitor:
Persistent divergence or noisy pressure correction usually indicates a Poisson tuning, grid-quality, or BC consistency issue.
This page describes Fractional-Step (Projection) Method 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.