Skip to content

sowmya8900/HPCProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PDE Solvers: High-Performance Numerical Solvers for Heat and Wave Equations

Heat Equation Visualization

:-------------------------:|:-------------------------:

Wave Equation Visualization

:-------------------------:|:-------------------------:

Project Overview

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

Requirements

  • 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-image

Installation & Building

git clone https://github.com/sowmya8900/HPCProject.git
cd PDE_Solvers
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

Running the Solvers

Heat Equation

# Serial version
./heat_solver

# Parallel version (4 threads)
export OMP_NUM_THREADS=4
./heat_solver

Wave Equation

# Serial version
./wave_solver

# Parallel version (4 threads)
export OMP_NUM_THREADS=4
./wave_solver

Output Files

Both solvers generate:

  • Final state: data/heat_final.txt or data/wave_final.txt
  • Time steps: data/heat_step_*.txt and data/wave_step_*.txt

Visualization

Python Scripts

# Heat equation visualizations
python visualize_heat.py

# Wave equation visualizations
python visualize_wave.py

Generated visualizations:

  • 2D Slices (*_slices.png)
  • 3D Isosurfaces (*_3d.png)
  • Time Animations (*_diffusion.gif, *_propagation.gif)

Configuration Options

Modify these in the source files:

  • Grid size (grid_size)
  • Physical parameters (alpha, c)
  • Time steps (dt, total iterations)
  • Initial conditions

Performance Tuning

  • Adjust OMP_NUM_THREADS for your CPU cores
  • Try different grid sizes (powers of 2 often perform better)

Future Work

  • Add MPI parallelization
  • Implement adaptive mesh refinement
  • Add GUI controls via web interface
  • Machine learning for parameter optimization

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published