Skip to main content

Mann turbulence modelling

Project description

DRDMannTurb

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.

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.3},
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

DRDMannTurb source is provided as a locally pip-installable package, meaning that the package can be installed locally with pip install -e . from the package root folder.

In conda_env_files, we provide a conda-lock file, which supports (64-bit) Intel macOS, ARM macOS, Linux, and Windows, as well as an environment.yml. These include all requirements for DRDMannTurb and building the documentation locally, which is discussed below. Either of these can be used to create a Conda environment for development and documentation purposes, however this is not mandatory.

Recreating the environment off the conda-lock can be done with conda-lock install -n ENV_NAME. Once this is completed, you should cd .. to the project root folder and run pip install -e . to install an editable version of DRDMannTurb in this environment.

If you choose to use your own environment, we ask that you use Python 3.9. You may wish to reference environment.yml to ensure that all dependencies are installed.

[!WARNING] Due to current incompatibilities between dependencies and Numpy's API changes in version 2.0, we have currently pinned numpy=1.26.4 as a temporary fix.

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. You should ensure that the dependencies listed in ./requirements-docs.txt are installed; if you chose to use one of our provided environments, this will have been done already.

Running make html 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drdmannturb-1.0.3.tar.gz (759.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drdmannturb-1.0.3-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file drdmannturb-1.0.3.tar.gz.

File metadata

  • Download URL: drdmannturb-1.0.3.tar.gz
  • Upload date:
  • Size: 759.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.13

File hashes

Hashes for drdmannturb-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b327b2d1618ac1a86c4f594114c4d4e63651cafb8eeed86178c453cdc15a4c94
MD5 b0d5e3f52acacce478aae6718b8dab79
BLAKE2b-256 01b293492a017537f79fbb25b6430b9665e41246deae3b83e672c3ade718f02a

See more details on using hashes here.

File details

Details for the file drdmannturb-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: drdmannturb-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.13

File hashes

Hashes for drdmannturb-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 aa328db089f49ed3a83838a421f11b8d5fa73903f391841dfad2189bebf1886f
MD5 a9152164e7cf526abb4937c98b9d1104
BLAKE2b-256 0fe37185a2f9f251067ea7e3850c67d337d757f969413ef548b2a0ee01032684

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page