Skip to content

Commit 9d549d5

Browse files
authored
Create README.md
1 parent f449ed4 commit 9d549d5

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
[![Integration Test CI](https://github.com/pratiktech28/gprmax_integration_test/actions/workflows/integration.yml/badge.svg)](https://github.com/pratiktech28/gprmax_integration_test/actions/workflows/integration.yml)
2+
3+
<img width="412" height="122" alt="download" src="https://github.com/user-attachments/assets/0191f5d7-407a-4217-b9c4-023a624c7d1d" /> <img width="225" height="225" alt="download" src="https://github.com/user-attachments/assets/556ce370-2f83-47c5-8a2c-642ebc10e113" />
4+
5+
![download](https://github.com/user-attachments/assets/fe13b6ac-7631-4a8f-afe9-45c6aae90ab1)
6+
7+
# gprMax Automated Integration & Fidelity Testing
8+
9+
> **Standardizing EM Simulation Validation through Automated CI/CD & Geometric Integrity Gates.**
10+
11+
This repository serves as the **Proof of Concept (PoC)** for the GSoC '26 proposal: "CI/CD + Physics Automation for gprMax." It bridges the gap between raw simulation output and scientific accuracy by implementing a fully automated validation pass.
12+
13+
---
14+
15+
## 🚀 The Core Workflow
16+
This project simulates a complete user workflow in a single automated pass:
17+
1. **Model Execution:** Dynamically provisions a Python environment to run gprMax models.
18+
2. **Output Extraction:** Programmatically extracts simulation results from `.out` files.
19+
3. **Fidelity Verification:** Compares live results against a **'Golden Reference'** dataset.
20+
21+
## 🛠️ Key Technical Features
22+
23+
### 1. Continuous Integration (GitHub Actions)
24+
The workflow doesn't just run code; it builds the environment:
25+
* **Dynamic Provisioning:** Automatically installs gprMax directly from the source repository.
26+
* **Environment Locking:** Ensures reproducibility across different runner architectures.
27+
28+
### 2. Regression Testing (NRMSE Logic)
29+
To ensure scientific integrity, we implement **Normalized Root Mean Square Error (NRMSE)** calculations.
30+
* **Logic:** If the deviation between the live simulation and the Golden Reference exceeds the precision threshold ($\pm 0.001$m), the build fails.
31+
* **Goal:** Catch regressions in the simulation engine before they reach production.
32+
33+
### 3. Geometric Fidelity
34+
* Automated validation of geometric models to ensure spatial accuracy in EM simulations.
35+
36+
---
37+
38+
## 📊 Proof of Implementation
39+
* **Terminal Output:** End-to-end synchronization verified between the engine and validation logic.
40+
* **Integration Tests:** Verifying data flow from solver to post-processor.
41+
42+
---
43+
44+
## 🛠️ Tech Stack
45+
* **Language:** Python 3.x
46+
* **Automation:** GitHub Actions
47+
* **Physics Engine:** gprMax (Source-built)
48+
* **Math/Stats:** NumPy (for NRMSE calculation), Matplotlib (for visualization)
49+
50+
---
51+
52+
## 📂 Repository Structure
53+
* `scripts/`: Integration and regression testing logic.
54+
* `.github/workflows/`: CI configuration for automated environment setup.
55+
* `data/`: Golden Reference datasets for validation.

0 commit comments

Comments
 (0)