#!/bin/bash
# CMB Grid Convergence Test — run 64, 128, 256 grids in parallel
# Tests whether fluctuation amplitude is grid-invariant (physics)
# or grid-dependent (artifact)
set -e
cd ~/prometheus_sim
mkdir -p results_cmb_comparison logs

TS=$(date -u +%Y%m%d_%H%M%S)

echo "=== CMB GRID CONVERGENCE TEST ===" | tee logs/cmb_convergence_${TS}.log
echo "Running 64³, 128³, 256³ in PARALLEL" | tee -a logs/cmb_convergence_${TS}.log
echo "$(date -u)" | tee -a logs/cmb_convergence_${TS}.log

# 64³ grid — lightweight, fast reference
echo "--- Launching 64³ ---" | tee -a logs/cmb_convergence_${TS}.log
python3 -u cmb_comparison.py --grid-3d 64 --label "grid64" > logs/cmb_grid64_${TS}.log 2>&1 &
PID64=$!

# 128³ grid — our current baseline
echo "--- Launching 128³ ---" | tee -a logs/cmb_convergence_${TS}.log
python3 -u cmb_comparison.py --grid-3d 128 --label "grid128" > logs/cmb_grid128_${TS}.log 2>&1 &
PID128=$!

# 256³ grid — high resolution test
echo "--- Launching 256³ ---" | tee -a logs/cmb_convergence_${TS}.log
python3 -u cmb_comparison.py --grid-3d 256 --label "grid256" > logs/cmb_grid256_${TS}.log 2>&1 &
PID256=$!

echo "PIDs: 64=$PID64  128=$PID128  256=$PID256" | tee -a logs/cmb_convergence_${TS}.log

# Wait for all
wait $PID64 && echo "64³ DONE $(date -u)" | tee -a logs/cmb_convergence_${TS}.log
wait $PID128 && echo "128³ DONE $(date -u)" | tee -a logs/cmb_convergence_${TS}.log
wait $PID256 && echo "256³ DONE $(date -u)" | tee -a logs/cmb_convergence_${TS}.log

echo "ALL COMPLETE $(date -u)" | tee -a logs/cmb_convergence_${TS}.log
