|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
Eulerian-Lagrangian coupling in PICurv is built from interpolation (grid -> particle) and scatter/normalization (particle -> grid).
For a particle inside a host cell with local coordinates \((a_1,a_2,a_3)\in[0,1]^3\), trilinear interpolation uses 8 corner weights:
\[ \phi_p = \sum_{m=1}^{8} w_m(a_1,a_2,a_3)\,\phi_m, \qquad \sum_m w_m = 1. \]
Code touchpoints:
Implementation note: interpolation path includes center-to-corner staging before final particle evaluation.
Scatter computes per-cell sums, then normalizes by particle count:
\[ \bar{\phi}_{i,j,k} = \begin{cases} \dfrac{\sum_{p\in cell(i,j,k)} \phi_p}{N_{i,j,k}}, & N_{i,j,k}>0, \\ 0, & N_{i,j,k}=0. \end{cases} \]
Code touchpoints:
Current standard scatter path actively maps particle Psi to Eulerian Psi; additional fields are scaffolded and can be enabled with matching vector/DM contracts.
Coupling quality depends on:
Inconsistency in any of these usually appears as noisy particle statistics or nonphysical reconstructed Eulerian fields.