A high-performance, real-time simulation of advection-diffusion processes implemented in C++ with interactive visualization. This project demonstrates the numerical modeling of pollutant dispersion, heat transfer, and fluid dynamics phenomena using Gaussian parcel methods and optimized parallel computing techniques.
- Advection-Diffusion Equation: implements the fundamental PDE governing transport phenomena in fluid systems
- Gaussian Parcel Method: Uses discrete Gaussian distributions to represent concentration fields with adaptive spreading
- Real-time Integration Forward Euler time-stepping with configurable timestep control for numerical stability
- Multi-threaded Rendering: Dynamic thread allocation based on frame rate performance
- Vectorized Computations: Optimized density calculations using SIMD-friendly algorithms
- Memory Management: Custom buffer management with double-buffering for smooth visualization
- Adaptive Quality Control: Automatic thread scaling to maintain target FPS performance
- Cursor-driven Flow Field: Cursor position controls velocity field direction and magnitude
- Scroll Wheel Velocity Control: Real-time adjustment of flow strength
- Keyboard Controls: ESC/Q/X for graceful shutdown
- Performance Monitoring: Real-time FPS, timing metrics, and thread utilization display
- C++17 compatible compiler (GCC 7+, Clang 5+)
- CMake 3.28+ for cross-platform build configuration
- X11 development libraries for Linux graphics
- Multi-core CPU recommended for optimal performance
mkdir build && cd build
cmake ..
make
./admsim