seisflowbench

SeisFlowBench is a reproducible scientific project for benchmarking seismic wave propagation and fluid flow simulations in porous media. Built with Julia and DrWatson.

https://github.com/haoyunl2/seisflowbench

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

SeisFlowBench is a reproducible scientific project for benchmarking seismic wave propagation and fluid flow simulations in porous media. Built with Julia and DrWatson.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created about 1 year ago · Last pushed 12 months ago
Metadata Files
Readme License Citation

README.md

License: MIT DOI

SeisFlowBench: A Benchmarking Dataset for Seismic and Flow Simulations

This repository provides a reproducible scientific project built using Julia and DrWatson.jl.
It is designed for benchmarking seismic and flow simulations, ensuring consistency across computational environments.

📌 Project Overview

  • Project Name: SeisFlowBench
  • Authors: Haoyun Li and Abhinav Gahlot
  • Focus Areas:
    • Seismic Wave Propagation
    • Fluid Flow in Porous Media
    • Seismic-Flow Coupling Simulations
  • Technologies Used:
    • Julia – A high-performance programming language for scientific computing.
    • DrWatson – A framework for reproducible scientific projects.

🚀 Getting Started

To reproduce this project locally, follow these steps:

1️⃣ Clone the Repository

Download the codebase using Git:
sh git clone https://github.com/your-repo/SeisFlowBench.git cd SeisFlowBench
🚨 Note: Raw data files are not included in version control (Git) and may need to be downloaded separately.

2️⃣ Set Up the Julia Environment

Open a Julia REPL and run the following commands:
julia using Pkg Pkg.add("DrWatson") # Install globally (needed for `quickactivate`) Pkg.activate(".") # Activate this project's environment Pkg.instantiate() # Install all required dependencies
✅ This will install all necessary Julia packages for the project to run correctly.


🛠 Using the Project

Many scripts in this repository begin with:
julia using DrWatson @quickactivate "SeisFlowBench"
This ensures that:
- The correct project environment is activated.
- Local paths are managed automatically using DrWatson.

After activation, you can run any script or experiment without manually setting paths.


📂 Project Structure

SeisFlowBench/ │── data/ # Processed and simulation data (not included in Git) │── scripts/ # Main simulation and analysis scripts │── src/ # Core project modules and functions │── notebooks/ # Jupyter/Pluto notebooks for interactive analysis │── Project.toml # Julia package dependencies │── Manifest.toml # Exact dependency versions for reproducibility │── README.md # This file


🔄 Converting JLD2 to HDF5

Simulation results are stored in JLD2 format, but you may need them in HDF5 for better compatibility.

📌 Convert JLD2 to HDF5

To convert all samples into a single HDF5 file, use the function provided in:
📄 scripts/convert_jld2_hdf5.jl

Run the script as follows:
julia include("scripts/convert_jld2_hdf5.jl") convert_all_samples_to_hdf5("2D_perm_perturb", 1:10, "all_samples.h5") ✅ This will save all data in one HDF5 file under /data/2D_perm_perturb/all_samples.h5.


📥 Loading Data from HDF5

To load and inspect simulation data from HDF5, use the provided function in:
📄 scripts/load_hdf5.jl

Example usage:
```julia include("scripts/loadhdf5.jl") hdf5file = datadir("2Dpermperturb", "allsamples.h5") data = loadhdf5data(hdf5file)

Accessing a specific variable

Sarraysample1 = data["sample1"]["Sarray"] println("Loaded Sarray from sample1: Size = ", size(Sarraysample1)) ```

✅ This allows easy retrieval of seismic and flow simulation results.


📌 Additional Notes

  • If any dependency is missing, run Pkg.instantiate() again.
  • For issues, create a GitHub issue or contact the authors.
  • This project follows reproducibility best practices using DrWatson.

SeisFlowBench is now ready for seismic and flow simulation benchmarking! 🚀

Owner

  • Name: Haoyun Li
  • Login: haoyunl2
  • Kind: user

Georgia Tech Fall 2027 CSE Ph.D. UC Berkeley Fall 2022 Double Major Computer Science & Applied Math Undergraduate.

Citation (CITATION.bib)

@software{li_2025_14927938,
  author       = {Li, Haoyun and
                  Gahlot, Abhinav Prakash and
                  Herrmann, Felix},
  title        = {SeisFlowBench: A Benchmark for Seismic Wave
                   Propagation and Flow Simulations
                  },
  month        = feb,
  year         = 2025,
  publisher    = {Zenodo},
  version      = {v1.0.0},
  doi          = {10.5281/zenodo.14927938},
  url          = {https://doi.org/10.5281/zenodo.14927938},
  swhid        = {swh:1:dir:b4b17d18714ad22a4074d2eab80795ed8f1b58ed
                   ;origin=https://doi.org/10.5281/zenodo.14927937;vi
                   sit=swh:1:snp:e6c05b68270e11e49d781a9fc5efa5aa06ac
                   b088;anchor=swh:1:rel:780566a7ba167fec1104d7853d26
                   c0e750978ac0;path=haoyunl2-SeisFlowBench-e3083dc
                  },
}

GitHub Events

Total
  • Release event: 1
  • Watch event: 7
  • Push event: 9
  • Create event: 3
Last Year
  • Release event: 1
  • Watch event: 7
  • Push event: 9
  • Create event: 3

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/setup-julia v1 composite