Add error-controlled DP5(4) integration and trusted first-crossing localization, including non-monotonic energy thresholds and representable-time stepping. Preserve adaptive state and independent step/time retry grants across RayPool, refinement and movie scheduling. Expose numerical controls, record actual persistent-sample costs, and add v3 lens-map provenance with legacy v2 RK4 import. Use DP54 by default and select an 8M Schwarzschild maximum step from bounded scans and a two-run 4K comparison. Retain the conservative minimum-step guard and document critical-ray and backend capability limits. Archive self-contained benchmark inputs and raw output; keep fixed RK4 HDR references explicit. Validation: make -B -j4 BUILD_TYPE=Debug test passed; explicit RK4 HDR references have zero differences. Bounded convergence checks, benchmark reproduction, Release build and focused reviews passed. No numerical-relativity backend is added.
37 lines
1.3 KiB
Bash
Executable File
37 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build and run the failure-path floor diagnostic.
|
|
#
|
|
# benchmarks/adaptive_step_bounds_2026-10-05/run_failure_floor.sh [OUT_DIR]
|
|
#
|
|
# OUT_DIR defaults to <repo>/local/adaptive_bounds_mesh. All output stays
|
|
# under OUT_DIR; the tracked benchmark directory holds only the sources.
|
|
#
|
|
# failure_floor.c includes ../../tests/test_geodesic_adaptive.c (depth-2 path
|
|
# valid from this directory) and therefore requires -DGEODESIC_EVENT_TESTING
|
|
# and the production RayPool source src/ray.c. The two analytic backends are
|
|
# textually included by the regression file, so they are not linked here.
|
|
set -euo pipefail
|
|
|
|
SOURCE=$(cd "$(dirname "$0")" && pwd)
|
|
root=$(cd "$SOURCE/../.." && pwd)
|
|
OUT=${1:-$root/local/adaptive_bounds_mesh}
|
|
BIN=/tmp/opencode/step_bounds
|
|
|
|
mkdir -p "$OUT/logs" "$BIN"
|
|
cd "$OUT"
|
|
|
|
{
|
|
set -x
|
|
cc -std=c11 -O2 -Wall -Wextra -Wpedantic -fopenmp -DGEODESIC_EVENT_TESTING \
|
|
-I"$root/src" \
|
|
"$SOURCE/failure_floor.c" "$root/src/geodesic.c" "$root/src/ray.c" \
|
|
"$root/src/spacetime_common.c" "$root/src/observer.c" \
|
|
"$root/src/asymptotic.c" "$root/src/asymptotic_schwarzschild.c" -lm \
|
|
-o "$BIN/failure_floor"
|
|
"$BIN/failure_floor"
|
|
set +x
|
|
} > logs/failure_floor.log 2>&1
|
|
|
|
cat logs/failure_floor.log
|
|
echo "outputs under $OUT"
|