PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
Modular Selector Extension Guide

This page is the contributor checklist for adding new selector-driven options without drifting the YAML -> launcher -> C runtime contract.

1. Standard Checklist For Any Selector

For every new selector value:

  1. define the canonical user-facing value in YAML docs/templates,
  2. add or update Python normalization/validation in scripts/picurv,
  3. emit the correct generated control/post artifact mapping,
  4. add any C enum/storage and parser wiring,
  5. add the runtime dispatch/consumer branch,
  6. update tests,
  7. update the relevant reference pages.

Use the canonical value only. Do not add placeholder enum values or compatibility aliases for unimplemented options.

2. Momentum Solver Selector

5. boundary_conditions

4. Particle Initialization Mode

5. Field Initialization Mode

  • Schema home: case.yml -> properties.initial_conditions.mode
  • Canonical values:
    • Zero
    • Constant
    • Poiseuille
  • Python hooks:
    • normalize_field_init_mode()
    • resolve_initial_velocity_components()
  • Generated mapping:
    • mode -> -finit
    • u_physical/v_physical/w_physical -> -ucont_x/-ucont_y/-ucont_z
  • C storage/parser:
  • Runtime:
  • Tests/docs to update:

6. Analytical Type

3. grid

  • Schema homes:
    • case.yml -> grid.mode
    • case.yml -> grid.generator.grid_type
  • Canonical values:
    • programmatic_c
    • file
    • grid_gen
  • Python orchestration:
    • scripts/picurv grid validation and run-dir staging
  • Generator implementation:
    • scripts/grid.gen
  • Generated mapping:
    • programmatic_c emits -im/-jm/-km/...
    • file emits -grid_file
    • grid_gen shells out to grid.gen
  • C consumption:
  • Tests/docs to update:

3. profiling

  • Schema home: monitor.yml -> profiling.timestep_output.mode
  • Canonical values:
    • off
    • selected
    • all
  • Python hooks:
    • resolve_profiling_config()
    • prepare_monitor_files() in scripts/picurv
  • Generated mapping:
    • timestep_output.mode -> -profiling_timestep_mode
    • timestep_output.file -> -profiling_timestep_file
    • final_summary.enabled -> -profiling_final_summary
    • selected function list -> profile.run + -profile_config_file
  • C storage/parser:
  • Runtime:
  • Tests/docs to update:

4. Post-Processing Recipes

6. Related Docs