|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This page is the developer-oriented map of the current PICurv C codebase.
src/picsolver.csrc/postprocessor.cBoth rely on shared setup/context infrastructure from setup.c, io.c, and variables.h.
High-level stages:
PetscInitializeCreateSimulationContext (setup.c) parses control/options and initializes defaultsSetupSimulationEnvironment configures run directories and environment-dependent logging setupSetupGridAndSolversSetupBoundaryConditionsSetupDomainRankInfoInitializeEulerianStateInitializeParticleSwarm (if particles enabled)AdvanceSimulationFinalizeSimulation + PetscFinalizepost.run) into PostProcessParams.vts, .vtp) and statistics CSV outputsinclude/variables.hCreateSimulationContextDM, vectors, metrics, block-local geometry)Primary ingestion sites:
setup.c: PETSc option parsing for solver/post shared runtime controlsio.c: grid read/generation inputs, restart/data IO, post recipe parsingLOG_LEVEL)Not all option consumption is explicit PetscOptionsGet*; PETSc dynamic ingestion also occurs through calls like KSPSetFromOptions in poisson.c.
scripts/pic.flowsetup.c or io.cpostprocessing_kernels.cpic.flowParticlePhysics.c/ParticleMotion.c interface