:-------------------------:|:-------------------------:
:-------------------------:|:-------------------------:
This project implements parallelized 3D solvers for:
- Heat Equation (Diffusion equation)
- Wave Equation (Hyperbolic PDE)
Features:
- OpenMP parallelization for multi-core CPUs
- Optimized memory access patterns
- Physical boundary conditions
- Detailed visualization tools
- C++17 compatible compiler (GCC, Clang, MSVC)
- CMake (≥ 3.10)
- Python 3 (for visualization)
- OpenMP (usually included with compiler)
Python visualization packages:
pip install numpy matplotlib scikit-imagegit clone https://github.com/sowmya8900/HPCProject.git
cd PDE_Solvers
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4# Serial version
./heat_solver
# Parallel version (4 threads)
export OMP_NUM_THREADS=4
./heat_solver# Serial version
./wave_solver
# Parallel version (4 threads)
export OMP_NUM_THREADS=4
./wave_solverBoth solvers generate:
- Final state:
data/heat_final.txtordata/wave_final.txt - Time steps:
data/heat_step_*.txtanddata/wave_step_*.txt
# Heat equation visualizations
python visualize_heat.py
# Wave equation visualizations
python visualize_wave.py- 2D Slices (
*_slices.png) - 3D Isosurfaces (
*_3d.png) - Time Animations (
*_diffusion.gif,*_propagation.gif)
Modify these in the source files:
- Grid size (
grid_size) - Physical parameters (
alpha,c) - Time steps (
dt, total iterations) - Initial conditions
- Adjust
OMP_NUM_THREADSfor your CPU cores - Try different grid sizes (powers of 2 often perform better)
- Add MPI parallelization
- Implement adaptive mesh refinement
- Add GUI controls via web interface
- Machine learning for parameter optimization

