P4.4 / VERIFY THE FROZEN SOURCE ON A CLEAN EXTRACTION

The source archive is immutable. The separate staged verifier checks all its
file hashes, deletes the stored selected results from two fresh extractions,
recomputes the primary event and the independent reserve-battery launch, then
replays all four speed policies. This prevents archived result files from
standing in for a new computation.

Requirements: Linux, Python 3.12, a C++17 compiler, and the versions in the
source archive's cryopulse-p44/requirements.txt:
  numpy==2.5.4
  scipy==1.18.1
  CoolProp==8.0.0
Use a Python virtual environment. CAD and OpenFOAM dependencies are separate;
they are not required to replay the selected driving event.

Download CryoPulse-P4.4-model-and-results.zip and files/reproduce-staged.py.
Keep the ZIP unchanged. From the folder containing both downloads:

  python reproduce-staged.py init --archive ./CryoPulse-P4.4-model-and-results.zip --state ./replay/state.json
  python reproduce-staged.py nominal --state ./replay/state.json
  python reproduce-staged.py reserve --state ./replay/state.json
  python reproduce-staged.py speeds --state ./replay/state.json
  python reproduce-staged.py verify --state ./replay/state.json

The nominal and reserve stages are independent and may be run concurrently.
Wait for both successful stage records before running speeds. The source
kernels compile into temporary cache paths. Calculations can take minutes.
Each stage records its return code, generated file hashes and log beside the
state file. Verification writes source-reproduction-current.json there.

A successful replay establishes numerical reproducibility of this frozen
requirements model. It does not validate the vehicle, supplier hardware maps,
assumed aerodynamics or physical performance. Physical measurements remain 0.
