|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This page maps configuration flow from YAML schema to generated artifacts and C ingestion/use sites.
pic.flow validates YAML inputs.pic.flow generates *.control, bcs*.run, whitelist.run, profile.run, post.run.CreateSimulationContext() in src/setup.c loads -control_file and ingests options.| YAML / Source Key | Generated Artifact Key | C Ingestion Site | Primary Runtime Consumers |
|---|---|---|---|
case.run_control.* | -start_step, -totalsteps, -dt | src/setup.c (CreateSimulationContext) | src/simulation.c, setup/timestep logic |
case.grid.programmatic_settings.im/jm/km/... | -im/-jm/-km, bounds, stretch | src/io.c (ReadGridGenerationInputs, PopulateFinestUserGridResolutionFromOptions) | src/grid.c, analytical geometry setup |
case.grid.programmatic_settings.da_processors_* | -da_processors_x/y/z | src/setup.c | src/grid.c DMDA creation |
case.models.domain.* | -nblk, periodic flags | src/setup.c | src/grid.c, BC setup |
case.models.physics.particles.* | -numParticles, -pinit, -particle_restart_mode, -psrc_* | src/setup.c | src/ParticleSwarm.c, src/ParticleMotion.c, statistics kernels |
case.boundary_conditions | bcs*.run rows | BC parser path (src/Boundaries.c + helpers) | BC handler factory and boundary application |
solver.operation_mode.* | -euler_field_source, -analytical_type | src/setup.c | src/initialcondition.c, src/grid.c, src/AnalyticalSolutions.c |
solver.strategy/tolerances/momentum_solver.* | solver flags (-mom_*, pseudo-CFL, etc.) | src/setup.c | src/momentumsolvers.c |
solver.pressure_solver.* | -poisson_tol, -mg_*, prefixed PETSc flags | src/setup.c + PETSc options db | src/poisson.c |
solver.petsc_passthrough_options | raw flags in control | PETSc options db | PETSc KSP/PC stack, mostly in src/poisson.c |
monitor.io.* | -tio, -logfreq, -output_dir, -restart_dir, -log_dir, -euler_subdir, -particle_subdir | src/setup.c | src/io.c, src/setup.c env setup |
monitor.logging.* | whitelist.run, LOG_LEVEL env | src/setup.c + src/logging.c | logging macros/system |
monitor.profiling.* | profile.run | src/setup.c + profiling init | profiler summaries |
monitor.solver_monitoring | raw flags in control | PETSc options db | PETSc monitors/convergence output |
post.run_control.* | startTime/endTime/timeStep in post.run | src/io.c (ParsePostProcessingSettings) | src/postprocessor.c main loop |
post.io.input_extensions.* | eulerianExt, particleExt in post.run | src/io.c | ReadSimulationFields, ReadAllSwarmFields, swarm precheck |
post.io.eulerian_fields_averaged | output_fields_averaged in post.run | src/io.c | reserved/no-op in current writer path |
post.statistics_pipeline.* | statistics_pipeline, statistics_output_prefix | src/io.c | GlobalStatisticsPipeline dispatch |
These keys are consumed by pic.flow orchestration only:
| YAML / Source Key | Generated Artifact Key | Ingestion Site | Runtime Consumer |
|---|---|---|---|
cluster.scheduler.type | scheduler selector | scripts/pic.flow (validate_cluster_config) | run/sweep scheduler dispatch |
cluster.resources.* | #SBATCH directives | scripts/pic.flow (Slurm renderers) | Slurm scheduler |
cluster.notifications.* | #SBATCH --mail-* | scripts/pic.flow | Slurm scheduler |
cluster.execution.module_setup | pre-launch shell lines in *.sbatch | scripts/pic.flow | batch script runtime env |
cluster.execution.launcher* | launch command (srun/mpirun) | scripts/pic.flow | solver/post executable launch |
study.base_configs.* | per-case config materialization | scripts/pic.flow (sweep_workflow) | case generation pipeline |
study.parameters | case matrix expansion | scripts/pic.flow (expand_parameter_matrix) | study case synthesis |
study.execution.max_concurrent_array_tasks | Slurm array N throttle | scripts/pic.flow | Slurm scheduler |
study.metrics | metrics_table.csv extraction contract | scripts/pic.flow metric extractors | study aggregation/reporting |
study.plotting | results/plots/* output controls | scripts/pic.flow plotting pipeline | study reporting |
PetscOptionsGet*.KSPSetFromOptions in src/poisson.c ingests prefixed PETSc options dynamically.LOG_LEVEL is environment-driven (src/logging.c) and intentionally outside control-file parsing.scripts/audit_ingress.py to compare PETSc option ingress in setup.c/io.c with the maintained manifest.python3 scripts/audit_ingress.pymake audit-ingressFor roadmap-oriented workflow extensions built on this contract, see Workflow Extensibility Guide.