PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
CurvIB Method Overview

PICurv solves flow on structured curvilinear grids and applies immersed-boundary-aware logic in metric, pressure, and projection stages.

1. Curvilinear Formulation Context

The code evolves contravariant flux-like velocity components (Ucont) and derives Cartesian velocity (Ucat) as needed. Curvilinear metrics map physical derivatives to computational coordinates:

\[ \nabla \phi = \phi_{\xi}\,\mathbf{\xi} + \phi_{\eta}\,\mathbf{\eta} + \phi_{\zeta}\,\mathbf{\zeta}, \qquad J^{-1} = \frac{\partial(\xi,\eta,\zeta)}{\partial(x,y,z)}. \]

Face and cell metric tensors are precomputed and reused by RHS, Poisson, and projection stages.

1. Setup and Physics

Main setup touchpoints:

Useful geometric helper for BC and flux logic:

3. Immersed-Boundary Role In Current Code

The current branch keeps immersed-boundary hooks in solver paths, while several IBM-specific calls are conditional or currently inactive in default runs. In practice:

  • geometry masking uses Nvert/solid markers in key kernels,
  • Poisson and projection stencils include boundary-aware logic,
  • IBM-specific interpolation hooks remain extension points for fully active IBM runs.

4. What This Means For Users

You mainly control CurvIB behavior through:

  • grid generation/ingestion choice,
  • boundary-condition handlers,
  • solver settings that influence projection/Poisson robustness,
  • case geometry and decomposition settings.

Even when users never interact with metric tensors directly, they govern stability, pressure correction quality, and particle coupling accuracy.

1. Reference Scales