🛠️ gprMax Material Property Check
Automated Physics Validation Gate using NRMSE for High-Fidelity EM Simulations.
📌 Overview This repository serves as an Automated Quality Assurance (QA) Gate for gprMax simulations. It focuses on validating simulated material constants (permittivity, conductivity, etc.) against theoretical benchmarks. By automating this process, we ensure that every simulation remains physically accurate and free from manual configuration errors.
🧪 Mathematical Foundation
To quantify the reliability of the simulations, I have implemented a validation logic based on the Normalized Root Mean Square Error (NRMSE).
Normalized Quality Metric: This provides a unitless reliability score, allowing for standardized testing across different material types. Precision Threshold: A strict 0.01 (1%) threshold is defined. Any simulation exceeding this error margin triggers an automatic failure in the CI/CD pipeline.
🚀 Key Features 1. Local Validation Logic The core engine performs a deep-dive check on material properties post-simulation. Proof of Accuracy: Achieved a perfect NRMSE of 0.000000 during benchmark testing, ensuring the implementation is mathematically sound.
2. GitHub Actions: Live Physics Automation I have integrated this logic into a CI/CD Pipeline to provide real-time validation for every code change or simulation update. Automated Workflow: GitHub Actions spins up the environment, executes gprMax, calculates the NRMSE, and generates a pass/fail report dynamically. Reliability: Ensures that physics-based fidelity is maintained even in remote cloud environments.
📦 Getting Started
Installation
# Clone the repository
git clone https://github.com/pratiktech28/gprmax_material_property_check.git
# Install necessary dependencies
pip install numpy matplotlib
Running the Test
# Execute the automated validation script
python scripts/material_validation.py
