77 lines
2.1 KiB
Bash
77 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# Periodic Table Sweep - Direct curl to Navigator API
|
|
# No Python, no extension server, no approval needed
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
OBSERVER_URL="http://127.0.0.1:28820"
|
|
OUTPUT_DIR="$REPO_ROOT/sweep_results"
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Parameter grid
|
|
AMPLITUDES=(0.02 0.04 0.06 0.08 0.10)
|
|
RADII=(10 15 20 25)
|
|
LOCATIONS=("512 512" "400 400" "600 600" "300 500" "700 500")
|
|
N_INJECTIONS=(3 5 7)
|
|
|
|
echo "Starting periodic table sweep..."
|
|
echo "Results will be saved to: $OUTPUT_DIR"
|
|
echo ""
|
|
|
|
# Function to send injection command
|
|
send_injection() {
|
|
local x=$1
|
|
local y=$2
|
|
local radius=$3
|
|
local amplitude=$4
|
|
local n_inj=$5
|
|
local run_id=$6
|
|
|
|
echo "Run $run_id: loc=($x,$y) r=$radius amp=$ampl injections=$n_inj"
|
|
|
|
# Send injection command
|
|
curl -s -X POST "$OBSERVER_URL/ask" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"question\":\"CMD: inject_density $x $y $radius $amplitude\",\"sender\":\"SWEEP\"}" \
|
|
> "$OUTPUT_DIR/run_${run_id}_inject.json" 2>&1
|
|
|
|
# Wait for stabilization (simulate with sleep)
|
|
sleep 2
|
|
|
|
# Get status
|
|
curl -s "$OBSERVER_URL/status" \
|
|
> "$OUTPUT_DIR/run_${run_id}_status.json" 2>&1
|
|
|
|
echo " Saved to run_${run_id}_*.json"
|
|
}
|
|
|
|
# Counter
|
|
run_num=0
|
|
|
|
# Main sweep loop
|
|
for amp in "${AMPLITUDES[@]}"; do
|
|
for rad in "${RADII[@]}"; do
|
|
for loc in "${LOCATIONS[@]}"; do
|
|
for ninj in "${N_INJECTIONS[@]}"; do
|
|
run_num=$((run_num + 1))
|
|
|
|
# Parse location
|
|
x=$(echo $loc | cut -d' ' -f1)
|
|
y=$(echo $loc | cut -d' ' -f2)
|
|
|
|
# Perform n injections
|
|
for ((i=1; i<=ninj; i++)); do
|
|
send_injection $x $y $rad $amp $ninj "${run_num}_${i}"
|
|
sleep 1
|
|
done
|
|
|
|
# Wait between parameter sets
|
|
sleep 3
|
|
done
|
|
done
|
|
done
|
|
done
|
|
|
|
echo ""
|
|
echo "Sweep complete. $run_num runs performed."
|
|
echo "Results in: $OUTPUT_DIR"
|