Supporting Material for "Benchmarking Modern Scientific Computing Platforms for 2D Potential Flow Solver"
This repository contains the code, data, and visualization outputs for benchmarking Python, Julia, and R implementations of a 2D potential flow solver around dual square obstacles.
.
├── README.md                   # This file
├── LICENSE.txt                 # License information
├── code/
│   ├── sim.py                 # Python implementation
│   ├── sim.jl                 # Julia implementation
│   ├── sim.R                  # R implementation
│   ├── matrix_plot.py         # Statistical significance matrix visualization
│   ├── violin_plot.py         # Performance violin plots
│   ├── performance.py         # Performance metrics computation
│   ├── stat_perf.py          # Statistical analysis of performance data
│   └── viz.py                # Flow visualization
├── outputs/
│   ├── data/                 # Performance measurements and analysis
│   │   ├── memory_usage_performance_stats.csv
│   │   ├── execution_time_performance_stats.csv
│   │   ├── memory_usage_comparison_stats.csv
│   │   └── execution_time_comparison_stats.csv
│   └── figs/                 # Generated figures
│       ├── memory_significance.png
│       ├── memory_violin.png
│       ├── runtime_significance.png
│       ├── runtime_violin.png
│       ├── convergence.png
│       ├── potential_surface.png
│       └── streamlines_pressure.png
If you use this repository in your research, please cite:
@article{herhoKabanAnwar2024,
  author = {Herho, S. H. S. and Kaban, S. N. and Anwar, I. P.},
  title = {{Benchmarking Modern Scientific Computing Platforms for 2D Potential Flow Solver}},
  journal = {TBD},
  year = {2024},
  volume = {},
  number = {},
  pages = {},
  doi = {}
}Ensure you have the following dependencies installed:
- Python: 
numpy,scipy,pandas,matplotlib - Julia: 
LinearAlgebra,DataFrames,CSV - R: 
tidyverse 
- 
Python Implementation
python ./code/sim.py
 - 
Julia Implementation
julia ./code/sim.jl
 - 
R Implementation
Rscript ./code/sim.R
 
Run the performance analysis scripts:
python ./code/performance.py
python ./code/stat_perf.pyGenerate all visualization plots:
python ./code/matrix_plot.py
python ./code/violin_plot.py
python ./code/viz.py- Performance measurement data is saved in 
outputs/data/ - Visualization figures are saved in 
outputs/figs/ 
memory_significance.png: Statistical significance matrix for memory usagememory_violin.png: Memory usage violin plotsruntime_significance.png: Statistical significance matrix for runtimeruntime_violin.png: Runtime violin plotsconvergence.png: L2 norm convergence plotpotential_surface.png: Velocity potential surface plotstreamlines_pressure.png: Streamlines and pressure coefficient plot
This repository is licensed under the WTFPL License - see WTFPL for details.