|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This page documents the particle pipeline exactly as orchestrated in the current solver flow.
Typical order inside coupled step:
Each stage relies on valid DMSwarm_CellID, interpolation weights, and synchronized ghost data.
Step 1 dispatches through InterpolateEulerFieldToSwarm, which selects between two interpolation paths based on SimCtx.interpolationMethod:
See Trilinear Interpolation and Particle-Grid Projection for method details and configuration.
Commonly used swarm fields include:
position)velocity)DMSwarm_CellID)DMSwarm_location_status)Diffusivity, Psi)Status transitions (NEEDS_LOCATION, ACTIVE_AND_LOCATED, MIGRATING_OUT, LOST) determine whether particles are walked, migrated, or skipped in settlement passes.
Current scalar model path:
This presently implements IEM-style relaxation for Psi, with model constants sourced from runtime context.
Post statistics currently include global kernels such as:
Additional health indicators are available from migration counters and settlement-pass counts stored in SimCtx fields updated by location logic. For particle-enabled runs, the runtime also writes logs/search_metrics.csv with per-step and cumulative loss plus aggregated search-attempt, traversal, tie-break, boundary-clamp, bbox-guess, and pass-depth signals. The examples/search_robustness/ bundle is the dedicated end-to-end reference for interpreting that artifact.
Recommended extension pattern:
For configuration contract changes, update:
This page describes Particle Model and Coupling Overview 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.