|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This page is the contributor checklist for adding new selector-driven options without drifting the YAML -> launcher -> C runtime contract.
For every new selector value:
scripts/picurv,Use the canonical value only. Do not add placeholder enum values or compatibility aliases for unimplemented options.
solver.yml -> strategy.momentum_solverExplicit RK4Dual Time Picard RK4normalize_momentum_solver_type() in scripts/picurvstrategy.momentum_solver -> -mom_solver_typeMomentumSolverType in include/variables.h-mom_solver_type in CreateSimulationContext (src/setup.c)tests/test_cli_smoke.pycase.yml -> boundary_conditionsBC_TYPE_MAPBC_HANDLER_SPECSvalidate_and_prepare_boundary_conditions() in scripts/picurvbcs.runValidateBCHandlerForBCTypeUserCtxtests/test_cli_smoke.pycase.yml -> models.physics.particles.init_modeSurfaceVolumePointSourceSurfaceEdgesnormalize_particle_init_mode() in scripts/picurvinit_mode -> -pinitParticleInitializationType in include/variables.h-pinit in CreateSimulationContexttests/test_cli_smoke.pysolver.yml -> interpolation.methodTrilinearCornerAveragednormalize_interpolation_method() in scripts/picurvinterpolation_method -> -interpolation_methodInterpolationMethod in include/variables.h-interpolation_method in CreateSimulationContext (src/setup.c)tests/test_cli_smoke.pycase.yml -> properties.initial_conditions.modeZeroConstantPoiseuillenormalize_field_init_mode()resolve_initial_velocity_components()mode -> -finitu_physical/v_physical/w_physical -> -ucont_x/-ucont_y/-ucont_zFieldInitialization in SimCtx-finit in CreateSimulationContexttests/test_cli_smoke.pysolver.yml -> operation_mode.analytical_typeTGV3DZERO_FLOWUNIFORM_FLOWnormalize_analytical_type() in scripts/picurvanalytical_type -> -analytical_typeAnalyticalSolutionType in SimCtx-analytical_type in CreateSimulationContexttests/test_cli_smoke.pysolver.yml -> verification.sources.*verification_sources.*verification.sources.diffusivityverification.sources.scalarLINEAR_XCONSTANT, LINEAR_X, SIN_PRODUCTscripts/picurvverification.sources.diffusivity.mode -> -verification_diffusivity_modeverification.sources.diffusivity.profile -> -verification_diffusivity_profileverification.sources.diffusivity.gamma0 -> -verification_diffusivity_gamma0verification.sources.diffusivity.slope_x -> -verification_diffusivity_slope_xverification.sources.scalar.mode -> -verification_scalar_modeverification.sources.scalar.profile -> -verification_scalar_profileverification.sources.scalar.value -> -verification_scalar_valueverification.sources.scalar.phi0 -> -verification_scalar_phi0verification.sources.scalar.slope_x -> -verification_scalar_slope_xverification.sources.scalar.amplitude -> -verification_scalar_amplitudeverification.sources.scalar.kx/ky/kz -> -verification_scalar_kx/-verification_scalar_ky/-verification_scalar_kzverificationDiffusivity and verificationScalar in SimCtxsrc/verification_sources.csrc/rhs.c for diffusivitysrc/AnalyticalSolutions.csrc/ParticlePhysics.csrc/logging.c (logs/scatter_metrics.csv)AnalyticalSolutions, not in model-evolution code such as ParticlePhysicscase.yml -> grid.modecase.yml -> grid.generator.grid_typeprogrammatic_cfilegrid_genscripts/picurv grid validation and run-dir stagingscripts/grid.genprogrammatic_c emits -im/-jm/-km/...file emits -grid_filegrid_gen shells out to grid.gentests/test_cli_smoke.pymonitor.yml -> profiling.timestep_output.modeoffselectedallresolve_profiling_config()prepare_monitor_files() in scripts/picurvtimestep_output.mode -> -profiling_timestep_modetimestep_output.file -> -profiling_timestep_filefinal_summary.enabled -> -profiling_final_summaryprofile.run + -profile_config_fileSimCtxtests/test_cli_smoke.pypost.yml -> statistics_pipelinemsdnormalize_statistics_task() in scripts/picurvmsd -> ComputeMSD token in generated post.run (dispatched to ComputeParticleMSD)tests/test_cli_smoke.pyThis page describes Modular Selector Extension Guide 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.