PeleLMeX

PeleLMeX: an AMR Low Mach Number Reactive Flow Simulation Code without level sub-cycling - Published in JOSS (2023)

https://github.com/amrex-combustion/pelelmex

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 16 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: sciencedirect.com, aps.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 21 committers (4.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

amrex combustion gpu-acceleration low-mach-number pele

Keywords from Contributors

atmospheric-modelling adaptive-mesh-refinement amr hpsf pde mesh
Last synced: 6 months ago · JSON representation ·

Repository

An adaptive mesh hydrodynamics simulation code for low Mach number reacting flows without level sub-cycling.

Basic Info
Statistics
  • Stars: 46
  • Watchers: 11
  • Forks: 55
  • Open Issues: 17
  • Releases: 15
Topics
amrex combustion gpu-acceleration low-mach-number pele
Created almost 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

PeleLMeX

AMReX Badge Exascale Computing Project Language: C++17 Citing Archive

CI

Overview

PeleLMeX is a solver for high fidelity reactive flow simulations, namely direct numerical simulation (DNS) and large eddy simulation (LES). The solver combines a low Mach number approach, adaptive mesh refinement (AMR), embedded boundary (EB) geometry treatment and high performance computing (HPC) to provide a flexible tool to address research questions on platforms ranging from small workstations to the world's largest GPU-accelerated supercomputers. PeleLMeX has been used to study complex flame/turbulence interactions in RCCI engines and hydrogen combustion or the effect of sustainable aviation fuel on gas turbine combustion.

PeleLMeX is part of the Pele combustion Suite.

Documentation

Documentation

PeleLMeX is a non-subcycling version of PeleLM based on AMReX's AmrCore and borrowing from the incompressible solver incflo. It solves of the multispecies reactive Navier-Stokes equations in the low Mach number limit as described in the documentation. It inherits most of PeleLM algorithmic features, but differs significantly in its implementation stemming from the non-subcycling approach. PeleLM is no longer under active development; PeleLMeX should be used for simulations of low Mach number reacting flows and PeleC for simulations of flows with higher Mach numbers where compressibility effects are significant.

A overview of PeleLMeX controls is provided in the documentation.

Core Algorithm

The PeleLMeX governing equations and core algorithms are described in:

https://amrex-combustion.github.io/PeleLMeX/manual/html/Model.html#mathematical-background

https://amrex-combustion.github.io/PeleLMeX/manual/html/Model.html#pelelmex-algorithm

Tutorials

A set of self-contained tutorials describing more complex problems is also provided:

https://amrex-combustion.github.io/PeleLMeX/manual/html/Tutorials.html

Installation

Requirements

The compilations of PeleLMeX requires a C++17 compatible compiler (GCC >= 8 or Clang >= 3.6) as well as CMake >= 3.23 for compiling the SUNDIALS third party library.

Most of the examples provided hereafter and in the tutorials will use MPI to run in parallel. Although not mandatory, it is advised to build PeleLMeX with MPI support from the get go if more than a single core is available to you. Any of mpich or open-mpi is a suitable option if MPI is not already available on your platform.

Finally, when building with GPU support, CUDA >= 11 is required with NVIDIA GPUs and ROCm >= 5.2 is required with AMD GPUs.

Download

The preferred method consists of cloning PeleLMeX and its submodules (PelePhysics, amrex, AMReX-Hydro, and SUNDIALS using a recursive git clone:

git clone --recursive --shallow-submodules --single-branch https://github.com/AMReX-Combustion/PeleLMeX.git

The --shallow-submodules and --single-branch flags are recommended for most users as they substantially reduce the size of the download by skipping extraneous parts of the git history. Developers may wish to omit these flags in order download the complete git history of PeleLMeX and its submodules, though standard git commands may also be used after a shallow clone to obtain the skipped portions if needed. By default, you will download the latest version of PeleLMeX. If you'd like to use a specific released version of PeleLMeX, you can add the option --branch=<version>, e.g. --branch=v25.04, to your clone command. See more on PeleLMeX version numbers in the Versioning section below.

Alternatively, you can use a separate git clone of each of the submodules. The default location for PeleLMeX dependencies is the Submodules folder but you optionally setup the following environment variables (e.g. using bash) to any other location:

export PELE_HOME=<path_to_PeleLMeX> export AMREX_HYDRO_HOME=${PELE_HOME}/Submodules/AMReX-Hydro export PELE_PHYSICS_HOME=${PELE_HOME}/Submodules/PelePhysics export AMREX_HOME=${PELE_PHYSICS_HOME}/Submodules/amrex export SUNDIALS_HOME=${PELE_PHYSICS_HOME}/Submodules/sundials

Compilation

Both GNUmake and CMake can be used to build PeleLMeX executables. GNUmake is the preferred choice for single executables when running production simulations. While CMake is the preferred method for automatically building and testing most available executables. The code handling the initial condition and boundary conditions is unique to each case, and subfolders in the Exec directory provide a number of examples.

For instance, to compile the executable for the case of a rising hot bubble, move into the HotBubble folder:

cd PeleLMeX/Exec/RegTests/HotBubble

If this is a clean install, you will need to make the third party libraries with: make TPL (note: if on macOS, you might need to specify COMP=llvm in the make statements).

Finally, make with: make -j, or if on macOS: make -j COMP=llvm. To clean the installation, use either make clean or make realclean. If running into compile errors after changing compile time options in PeleLMeX (e.g., the chemical mechanism), the first thing to try is to clean your build by running make TPLrealclean && make realclean, then try to rebuild the third party libraries and PeleLMeX with make TPL && make -j. See the Tutorial for this case for instructions on how to compile with different options (for example, to compile without MPI support or to compile for GPUs) and how to run the code once compiled.

To compile and test using CMake, refer to the example cmake.sh script in the Build directory, or reference the GitHub Actions workflows in the .github/workflows directory.

Getting help, contributing

Do you have a question ? Found an issue ? Please use the GitHub Discussions to engage with the development team or open a new GitHub issue to report a bug. The development team also encourages users to take an active role in respectfully answering each other's questions in these spaces. When reporting a bug, it is helpful to provide as much detail as possible, including a case description and the major compile and runtime options being used. Though not required, it is most effective to create a fork of this repository and share a branch of that fork with a case that minimally reproduces the error.

New contributions to PeleLMeX are welcome ! Contributing Guidelines are provided in CONTRIBUTING.md.

Versioning

PeleLMeX now uses uses a type of semantic versioning to help users navigate different versions of the code, which are labeled with GitHub tags. These tagged versions are not exhaustive, but they adhere to the following convention. Given a version number MAJOR.MINOR.PATCH: 1. MAJOR version for changes to key aspects of the solver affecting input/source files for all cases, when a key model is changed to significantly affect results of simulations, when a major new capability is added 2. MINOR version for when a significant feature is added (in a backward compatible manner), accumulation of smaller features, or changes to input file compatibility for less central aspects of the solver (e.g., post-processing) or aspects not affecting all cases 3. PATCH version for backward compatible bug fixes and minor features

PeleLMeX previously used YY.MM formatting for versions. These should be interpreted as version 0 subversions, e.g. v25.04 is equivalent to v0.25.04. Significant breaking changes were added for the release of v1.0.0. See CHANGES.md for updates needed to transition case files designed for earlier versions of PeleLMeX to this newer version.

Acknowledgment

This research was supported by the Exascale Computing Project (ECP), Project Number: 17-SC-20-SC, a collaborative effort of two DOE organizations -- the Office of Science and the National Nuclear Security Administration -- responsible for the planning and preparation of a capable exascale ecosystem -- including software, applications, hardware, advanced system engineering, and early testbed platforms -- to support the nation's exascale computing imperative.

Citation

To cite PeleLMeX, please use Citing and the Pele software suite

``` @article{PeleLMeX_JOSS, doi = {10.21105/joss.05450}, url = {https://doi.org/10.21105/joss.05450}, year = {2023}, month = october, publisher = {The Open Journal}, volume = {8}, number = {90}, pages = {5450}, author = {Lucas Esclapez and Marc Day and John Bell and Anne Felden and Candace Gilet and Ray Grout and Marc {Henry de Frahan} and Emmanuel Motheau and Andrew Nonaka and Landon Owen and Bruce Perry and Jon Rood and Nicolas Wimer and Weiqun Zhang}, journal = {Journal of Open Source Software}, title= {{PeleLMeX: an AMR Low Mach Number Reactive Flow Simulation Code without level sub-cycling}} }

@article{PeleSoftware, author = {Marc T. {Henry de Frahan} and Lucas Esclapez and Jon Rood and Nicholas T. Wimer and Paul Mullowney and Bruce A. Perry and Landon Owen and Hariswaran Sitaraman and Shashank Yellapantula and Malik Hassanaly and Mohammad J. Rahimi and Michael J. Martin and Olga A. Doronina and Sreejith N. A. and Martin Rieth and Wenjun Ge and Ramanan Sankaran and Ann S. Almgren and Weiqun Zhang and John B. Bell and Ray Grout and Marc S. Day and Jacqueline H. Chen}, title = {The Pele Simulation Suite for Reacting Flows at Exascale}, booktitle = {Proceedings of the 2024 SIAM Conference on Parallel Processing for Scientific Computing}, journal = {Proceedings of the 2024 SIAM Conference on Parallel Processing for Scientific Computing}, chapter = {}, pages = {13-25}, doi = {10.1137/1.9781611977967.2}, URL = {https://epubs.siam.org/doi/abs/10.1137/1.9781611977967.2}, eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9781611977967.2}, year = {2024}, publisher = {Proceedings of the 2024 SIAM Conference on Parallel Processing for Scientific Computing} } ```

A full list of publications documenting the development of the Pele suite and its application to various reacting flow and other simulations is available on the main Pele suite page. After publication, if you'd like your work to be included on that list, you can request to have it added here.

Owner

  • Name: AMReX-Combustion
  • Login: AMReX-Combustion
  • Kind: organization

Suite of tools for AMR simulation of reacting flows

JOSS Publication

PeleLMeX: an AMR Low Mach Number Reactive Flow Simulation Code without level sub-cycling
Published
October 31, 2023
Volume 8, Issue 90, Page 5450
Authors
Lucas Esclapez ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Marc Day ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
John Bell ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory, USA
Anne Felden ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory, USA
Candace Gilet
Independent Researcher, USA
Ray Grout ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Marc Henry de Frahan ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Emmanuel Motheau ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory, USA
Andrew Nonaka ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory, USA
Landon Owen
Sandia National Laboratory, USA
Bruce Perry ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Jon Rood ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Nicolas Wimer ORCID
High Performance Algorithms and Complex Fluids, National Renewable Energy Laboratory, USA
Weiqun Zhang ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory, USA
Editor
Kyle Niemeyer ORCID
Tags
adaptive mesh refinement hydrodynamics combustion reactions ExaScale CFD low-Mach number

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Esclapez
  given-names: Lucas
  orcid: "https://orcid.org/0000-0002-2438-7292"
- family-names: Day
  given-names: Marc
  orcid: "https://orcid.org/0000-0002-1711-3963"
- family-names: Bell
  given-names: John
  orcid: "https://orcid.org/0000-0002-5749-334X"
- family-names: Felden
  given-names: Anne
  orcid: "https://orcid.org/0009-0006-2724-4461"
- family-names: Gilet
  given-names: Candace
- family-names: Grout
  given-names: Ray
  orcid: "https://orcid.org/0000-0002-1760-8747"
- family-names: Henry de Frahan
  given-names: Marc
  orcid: "https://orcid.org/0000-0001-7742-1565"
- family-names: Motheau
  given-names: Emmanuel
  orcid: "https://orcid.org/0000-0003-1968-1611"
- family-names: Nonaka
  given-names: Andrew
  orcid: "https://orcid.org/0000-0003-1791-0265"
- family-names: Owen
  given-names: Landon
- family-names: Perry
  given-names: Bruce
  orcid: "https://orcid.org/0000-0002-9150-8103"
- family-names: Rood
  given-names: Jon
  orcid: "https://orcid.org/0000-0002-7513-3225"
- family-names: Wimer
  given-names: Nicolas
  orcid: "https://orcid.org/0000-0001-5083-0799"
- family-names: Zhang
  given-names: Weiqun
  orcid: "https://orcid.org/0000-0001-8092-1974"
doi: 10.5281/zenodo.10056232
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Esclapez
    given-names: Lucas
    orcid: "https://orcid.org/0000-0002-2438-7292"
  - family-names: Day
    given-names: Marc
    orcid: "https://orcid.org/0000-0002-1711-3963"
  - family-names: Bell
    given-names: John
    orcid: "https://orcid.org/0000-0002-5749-334X"
  - family-names: Felden
    given-names: Anne
    orcid: "https://orcid.org/0009-0006-2724-4461"
  - family-names: Gilet
    given-names: Candace
  - family-names: Grout
    given-names: Ray
    orcid: "https://orcid.org/0000-0002-1760-8747"
  - family-names: Henry de Frahan
    given-names: Marc
    orcid: "https://orcid.org/0000-0001-7742-1565"
  - family-names: Motheau
    given-names: Emmanuel
    orcid: "https://orcid.org/0000-0003-1968-1611"
  - family-names: Nonaka
    given-names: Andrew
    orcid: "https://orcid.org/0000-0003-1791-0265"
  - family-names: Owen
    given-names: Landon
  - family-names: Perry
    given-names: Bruce
    orcid: "https://orcid.org/0000-0002-9150-8103"
  - family-names: Rood
    given-names: Jon
    orcid: "https://orcid.org/0000-0002-7513-3225"
  - family-names: Wimer
    given-names: Nicolas
    orcid: "https://orcid.org/0000-0001-5083-0799"
  - family-names: Zhang
    given-names: Weiqun
    orcid: "https://orcid.org/0000-0001-8092-1974"
  date-published: 2023-10-31
  doi: 10.21105/joss.05450
  issn: 2475-9066
  issue: 90
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5450
  title: "PeleLMeX: an AMR Low Mach Number Reactive Flow Simulation Code
    without level sub-cycling"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05450"
  volume: 8
title: "PeleLMeX: an AMR Low Mach Number Reactive Flow Simulation Code
  without level sub-cycling"

GitHub Events

Total
  • Create event: 24
  • Release event: 3
  • Issues event: 18
  • Watch event: 13
  • Delete event: 17
  • Member event: 1
  • Issue comment event: 115
  • Push event: 89
  • Pull request review comment event: 101
  • Pull request event: 136
  • Pull request review event: 149
  • Fork event: 18
Last Year
  • Create event: 24
  • Release event: 3
  • Issues event: 18
  • Watch event: 13
  • Delete event: 17
  • Member event: 1
  • Issue comment event: 115
  • Push event: 89
  • Pull request review comment event: 103
  • Pull request event: 136
  • Pull request review event: 150
  • Fork event: 18

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 724
  • Total Committers: 21
  • Avg Commits per committer: 34.476
  • Development Distribution Score (DDS): 0.325
Past Year
  • Commits: 88
  • Committers: 10
  • Avg Commits per committer: 8.8
  • Development Distribution Score (DDS): 0.614
Top Committers
Name Email Commits
Lucas Esclapez 1****z 489
Bruce Perry B****y@n****v 71
dependabot[bot] 4****] 54
Jon Rood j****d@n****v 31
Marc T. Henry de Frahan m****n@n****v 16
ldowen 5****n 13
Dave Montgomery D****y@n****v 11
Landon Owen l****n@s****v 10
Thomas Howarth 6****h 7
nickwimer n****r@g****m 4
SreejithNREL 9****L 4
Candace Gilet c****t 3
Wenjun Ge 3****e 2
EnnaDelfen 4****n 2
Bruno Soriano 7****o 1
Weiqun Zhang W****g@l****v 1
Yinmin Liu 5****u 1
efhunt 6****t 1
justint1997 1****7 1
olivecha 7****a 1
vtmaran 1****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 44
  • Total pull requests: 386
  • Average time to close issues: 26 days
  • Average time to close pull requests: 7 days
  • Total issue authors: 22
  • Total pull request authors: 20
  • Average comments per issue: 3.23
  • Average comments per pull request: 0.62
  • Merged pull requests: 322
  • Bot issues: 0
  • Bot pull requests: 91
Past Year
  • Issues: 16
  • Pull requests: 178
  • Average time to close issues: 19 days
  • Average time to close pull requests: 6 days
  • Issue authors: 10
  • Pull request authors: 12
  • Average comments per issue: 0.81
  • Average comments per pull request: 0.78
  • Merged pull requests: 140
  • Bot issues: 0
  • Bot pull requests: 43
Top Authors
Issue Authors
  • bazharz (10)
  • baperry2 (7)
  • ThomasHowarth (5)
  • mameehan5 (2)
  • barbariansubhkaran (2)
  • czc-zju (2)
  • dmontgomeryNREL (1)
  • jckim1201 (1)
  • yeanment (1)
  • EnnaDelfen (1)
  • TingquanTian (1)
  • olivecha (1)
  • kunal-ncsu (1)
  • QuentinMale (1)
  • FR13ndSDP (1)
Pull Request Authors
  • baperry2 (110)
  • dependabot[bot] (91)
  • jrood-nrel (58)
  • esclapez (49)
  • dmontgomeryNREL (19)
  • marchdf (18)
  • ThomasHowarth (8)
  • SreejithNREL (7)
  • EnnaDelfen (4)
  • ldowen (4)
  • cgilet (3)
  • wjge (3)
  • Tom-Y-Liu (3)
  • terencelehmann (2)
  • justint1997 (2)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (91) submodules (8)

Dependencies

.github/workflows/convergenceTesting.yml actions
  • actions/checkout v3 composite
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/docs.yml actions
  • JamesIves/github-pages-deploy-action releases/v4 composite
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/linux.yml actions
  • actions/checkout v3 composite
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/ci.yml actions
  • DoozyX/clang-format-lint-action v0.16.2 composite
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
  • advanced-security/filter-sarif v1 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/init v2 composite
  • github/codeql-action/upload-sarif v2 composite
.github/workflows/cleanup-cache-postpr.yml actions
  • actions/checkout v3 composite
.github/workflows/cleanup-cache.yml actions
  • actions/checkout v3 composite
.github/workflows/nightlyTest.yml actions
  • actions/checkout v3 composite
.github/workflows/post-pr.yml actions
  • actions/upload-artifact v3 composite
.github/workflows/unitTest.yml actions
  • actions/checkout v3 composite