This repository serves as the Automated Physics Validation Engine for the gprMax GSoC project. The core objective is to bridge the gap between high-performance kernel optimization and physics integrity. By leveraging a Dockerized CI/CD pipeline, we ensure that every code modification is automatically verified against stringent electromagnetic wave standards.
Unlike traditional software testing, physics-based software requires a Quantitative Validation Layer. Our system implements an automated Python-based kernel that executes the following workflow:
- Data Acquisition: The pipeline extracts raw wave data from the simulation output files generated by the parallelized gprMax kernels.
- Error Quantification: We calculate the Normalized Root Mean Square Error (NRMSE) to detect even the slightest deviations in wave propagation. This is critical when scaling to 100 Parallel Pads, as minor floating-point errors can accumulate.
- Threshold Enforcement: The CI/CD workflow is configured with a Strict-Fail Policy. If the NRMSE exceeds 2%, the build is flagged, preventing inaccurate physics from reaching the production branch.
1. Physics Kernel Logic:
The validation script ensures model convergence using the following mathematical approach:
RMSE = √mean((ref - sim)²)
<strong>NRMSE = RMSE / (max(ref) - min(ref))</strong>
2. CI/CD Workflow (GitHub Actions):
The pipeline operates on a Fail-Safe mechanism to prevent regression in kernel optimization.
| Milestone | Task Description | Status |
|---|---|---|
| 01 | Basic GitHub Actions Setup | ✅ COMPLETED |
| 02 | NRMSE Physics Logic Integration | ✅ COMPLETED |
| 03 | Automated Artifact Generation | 🔄 IN_PROGRESS |
| 04 | Parallel Pad Simulation Scaling | 📅 PLANNED |
To handle the computational load of 100+ parallel simulations, the infrastructure is built on Cloud-Native principles. By containerizing the entire environment, we achieve:
| Scalability: Supporting dynamic scaling from 10 to 100 replicas using orchestration logic, ensuring smooth execution on AWS/GCP without resource stalling. | Persistence: A dedicated MySQL backend tracks the historical NRMSE performance across different development sprints. |
"Ensuring Physics Precision at Scale."
Built with Passion by Pratik Sharma | GSoC 2026 Contributor
