|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
PICurv uses a robust locate-and-migrate pipeline so every particle ends each step with a valid owner rank and host cell (or is explicitly marked lost).
A particle is tested against candidate cell faces using signed distances. Search starts from prior cell information when available, then walks to neighboring cells by face-crossing logic until a terminal status is reached.
This avoids expensive global brute-force lookup and is suitable for distributed curvilinear grids.
Location/migration logic uses ParticleLocationStatus:
NEEDS_LOCATIONACTIVE_AND_LOCATEDMIGRATING_OUTLOSTUNINITIALIZEDThese statuses drive the iterative migration passes in the orchestrator.
LocateParticleOrFindMigrationTarget (walking-search module)The current orchestrator includes:
For restart-loaded particles with valid CellID, PICurv can skip full walking search and directly resolve owner rank via cell ownership map before migration. This is usually much cheaper than full re-location on first restart step.
Watch for:
LOST particles,These usually indicate domain-decomposition mismatch, bounding-box mismatch, or invalid particle coordinates.
See Common Fatal Errors and Fixes for troubleshooting commands.