DRDMannTurb

DRDMannTurb: A Python package for scalable, data-driven synthetic turbulence - Published in JOSS (2024)

https://github.com/methods-group/drdmannturb

Science Score: 100.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
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
    2 of 5 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

mesh

Scientific Fields

Mathematics Computer Science - 63% confidence
Engineering Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation ·

Repository

Data-driven synthetic turbulence generation based on the Mann model

Basic Info
Statistics
  • Stars: 4
  • Watchers: 3
  • Forks: 0
  • Open Issues: 15
  • Releases: 3
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

DRDMannTurb

DOI

DOI

DRDMannTurb (short for Deep Rapid Distortion Theory Mann Turbulence model) is a data-driven framework for synthetic turbulence generation in Python. The code is based on the original work of Jacob Mann in 1994 and 1998 as well as in the deep-learning enhancement developed by Keith et al. in this 2021 publication.

Installation

Pre-compiled wheels for the package are available via pip install drdmannturb. See our development environment instructions for instructions on installing development versions.

[!NOTE] DRDMannTurb requires the FFTW library to be installed on your system for the pyFFTW dependency. Please install it using your system's package manager (e.g., brew install fftw on macOS, sudo apt-get install libfftw3-dev on Debian/Ubuntu) before installing DRDMannTurb.

Basic Usage

See the /examples/ folder for baselines from the paper and for examples of the many functionalities of the package. These examples are rendered in a more readable format on our documentation here also.

DRDMannTurb consists of two primary submodules spectra_fitting and fluctuation_generation which are respectively focused on fitting a Deep Rapid Distortion (DRD) model and on generating synthetic turbulence "boxes" with a fit DRD model.

Questions?

If you have any questions, the best way to receive help is by creating a thread in our Discussions or by contacting the authors (Alexey Izmailov, Matthew Meeker) by email directly. If your question pertains to a problem with the package, please open an Issue so that it can addressed.

Citation

If you use this software, please cite it as below.

@software{Izmailov_DRDMannTurb_2023, author = {Izmailov, Alexey and Meeker, Matthew and Deskos, Georgios and Keith, Brendan}, month = mar, title = {{DRDMannTurb}}, url= {https://github.com/METHODS-Group/DRDMannTurb}, version = {1.0.2}, year = {2024} }

Contributing

We always welcome new contributors! The best way to contribute to DRDMannTurb is through opening an issue, making a feature request, or creating a pull request directly.

See also the below instructions for installing DRDMannTurb for development purposes.

Development Version Installation Instructions

To set up a development environment, we recommend using uv, a fast Python package installer and resolver.

  1. Install uv: Follow the official uv installation instructions.
  2. Install System Dependencies: Ensure the FFTW library is installed (see Installation section above).
  3. Install Python: Make sure you have Python >= 3.9.16 installed and available. We recommend using a Python version manager like pyenv.
  4. Clone the Repository: git clone https://github.com/METHODS-Group/DRDMannTurb.git && cd DRDMannTurb
  5. Create and Activate Virtual Environment: bash # Create a virtual environment using your installed Python uv venv # Alternatively, you can explicitly set the Python version with the following uv venv --python 3.9.16 # Activate the environment (syntax may vary slightly for different shells) source .venv/bin/activate
  6. Install in Editable Mode with Dependencies: Install the package in editable mode along with development and documentation dependencies. Make sure to quote the argument containing brackets. bash # Install core, docs, and dev dependencies uv pip install -e '.[docs,dev]'

We also ask that you install our pre-commit configuration by running pre-commit install in the root directory of this repository. If you are unfamiliar with pre-commit, the documentation can be found here.

Running Tests Locally

DRDMannTurb's test suite is built with Pytest. Running the tests locally can be done by running pytest from the project root.

Tests decorated with slow can be run with the --runslow flag; they are otherwise skipped. Note that several of these tests require (at least ``partially'') training a DRD model, and so the suite may take several minutes to complete. Note also that certain components of the test suite require CUDA; these are also skipped if a CUDA device is not available.

Local Documentation Building Instructions

Our documentation source lives in the /docs/ folder. Ensure you have installed the necessary dependencies by including the docs extra during installation (uv pip install -e '.[docs,dev]').

Running make html from the docs directory will generate html pages in the /docs/build/html folder; these can be hosted locally with python -m http.server <PORT-NUMBER>.

Acknowledgements

This work was authored in part by the National Renewable Energy Laboratory, operated by Alliance for Sustainable Energy, LLC, for the U.S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308. Funding provided by the U.S. Department of Energy Office of Energy Efficiency and Renewable Energy Wind Energy Technologies Office. The views expressed in the article do not necessarily represent the views of the DOE or the U.S. Government. The U.S. Government retains and the publisher, by accepting the article for publication, acknowledges that the U.S. Government retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or allow others to do so, for U.S. Government purposes. BK was supported in part by the U.S. Department of Energy Office of Science, Early Career Research Program under Award Number DE-SC0024335.

Owner

  • Name: METHODS Group
  • Login: METHODS-Group
  • Kind: organization
  • Email: brendan_keith@brown.edu
  • Location: United States of America

Models, Experiments, and Theory for High-Performance Optimization, Design, and Simulation

JOSS Publication

DRDMannTurb: A Python package for scalable, data-driven synthetic turbulence
Published
October 24, 2024
Volume 9, Issue 102, Page 6838
Authors
Alexey Izmailov
Division of Applied Mathematics, Brown University, Providence, RI, 02912, USA
Matthew Meeker
Division of Applied Mathematics, Brown University, Providence, RI, 02912, USA
Georgios Deskos
National Wind Technology Center, National Renewable Energy Laboratory, Golden, CO, 80401, USA
Brendan Keith
Division of Applied Mathematics, Brown University, Providence, RI, 02912, USA
Editor
Rohit Goswami ORCID
Tags
Torch Mann-model wind-engineering

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Izmailov
    given-names: Alexey
  - family-names: Meeker
    given-names: Matthew
  - family-names: Deskos
    given-names: Georgios
  - family-names: Keith
    given-names: Brendan
title: "DRDMannTurb"
version: 1.0.2
identifiers:
  - type: doi
    value: 10.5281/zenodo.1234
date-released: 2024-07-12

GitHub Events

Total
  • Create event: 45
  • Release event: 1
  • Issues event: 17
  • Delete event: 57
  • Issue comment event: 44
  • Push event: 137
  • Pull request event: 101
Last Year
  • Create event: 45
  • Release event: 1
  • Issues event: 17
  • Delete event: 57
  • Issue comment event: 44
  • Push event: 137
  • Pull request event: 101

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 429
  • Total Committers: 5
  • Avg Commits per committer: 85.8
  • Development Distribution Score (DDS): 0.522
Past Year
  • Commits: 85
  • Committers: 4
  • Avg Commits per committer: 21.25
  • Development Distribution Score (DDS): 0.247
Top Committers
Name Email Commits
Alexey Izmailov a****a@b****u 205
Matthew Meeker m****r@g****m 158
gdeskos g****v@g****m 33
dependabot[bot] 4****] 18
Brendan Keith b****h@b****u 15
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 28
  • Total pull requests: 183
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 6
  • Total pull request authors: 6
  • Average comments per issue: 1.25
  • Average comments per pull request: 0.68
  • Merged pull requests: 55
  • Bot issues: 0
  • Bot pull requests: 151
Past Year
  • Issues: 9
  • Pull requests: 104
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 2 months
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.22
  • Average comments per pull request: 0.51
  • Merged pull requests: 35
  • Bot issues: 0
  • Bot pull requests: 89
Top Authors
Issue Authors
  • alizma (10)
  • mdmeeker (8)
  • HaoZeke (5)
  • olivecha (3)
  • paroomk (2)
  • mjachi (1)
Pull Request Authors
  • dependabot[bot] (200)
  • mdmeeker (19)
  • gdeskos (7)
  • mjachi (5)
  • brendankeith (3)
  • alizma (2)
Top Labels
Issue Labels
enhancement (5) bug (4) documentation (3) question (1)
Pull Request Labels
dependencies (200) python (196) github_actions (4)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 23 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 2
pypi.org: drdmannturb

Mann turbulence modelling

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 23 Last month
Rankings
Dependent packages count: 9.7%
Average: 37.0%
Dependent repos count: 64.2%
Maintainers (2)
Last synced: 6 months ago

Dependencies

.github/workflows/docs.yml--DISABLED actions
.github/workflows/lint.yml actions
  • actions/checkout v4 composite
  • psf/black stable composite
.github/workflows/main.yml--DISABLED actions
  • actions/checkout v3 composite
  • actions/setup-python v4.6.1 composite
requirements-docs.txt pypi
  • Sphinx >=1.8.3
  • ipython *
  • myst_parser *
  • nbsphinx *
  • numpydoc *
  • pydata-sphinx-theme >=0.14.2
  • pydocstyle *
  • sphinx-copybutton *
  • sphinx-gallery *
  • sphinx-notfound-page *
  • sphinx-panels *
  • sphinxcontrib-jsmath *
  • sphinxcontrib-mermaid *
  • tensorboard *
setup.py pypi
  • matplotlib *
  • numpy *
  • pyevtk *
  • pyfftw *
  • scipy *
  • tensorboard *
  • torch *
  • tqdm *