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

An AMR code for compressible reacting flow simulations

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

Science Score: 49.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 18 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords

amrex pele
Last synced: 5 months ago · JSON representation

Repository

An AMR code for compressible reacting flow simulations

Basic Info
Statistics
  • Stars: 190
  • Watchers: 26
  • Forks: 85
  • Open Issues: 6
  • Releases: 1
Topics
amrex pele
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.rst

PeleC: An adaptive mesh refinement solver for compressible reacting flows
-------------------------------------------------------------------------

`Documentation `_ | `Nightly Test Results `_ | `PeleC Citation `_ | `Pele Citation `_

Getting Started
~~~~~~~~~~~~~~~

To compile and run `PeleC`, one needs a C++ compiler that supports the C++17 standard.  A hierarchical strategy for parallelism is supported, based on MPI, MPI + OpenMP, or MPI + GPU (CUDA/HIP/DPC++).  The code should work with all major MPI and OpenMP implementations.  PeleC should build and run with no modifications to the `make` system if using a Linux system with the GNU compilers, version 7 and above.  CMake, although used mostly for testing, is also an option for building the code.

To build `PeleC` (using the default submodules for AMReX, PelePhysics, and SUNDIALS) and run a sample 3D flame problem::

    git clone --recursive git@github.com:AMReX-Combustion/PeleC.git
    cd PeleC/Exec/RegTests/PMF
    make TPLrealclean && make realclean && make TPL && make -j
    ./Pele3d.xxx.yyy.ex example.inp

1. In the exec line above, xxx.yyy is a tag identifying your compiler and various build options, and will vary across pltaform.  (Note that GNU compilers must be at least version 7, and MPI should be at least of standard version 3).

2. The example is a 3D premixed flame, flowing vertically upward through the domain with no gravity. The lateral boundaries are periodic.  A detailed hydrogen model is used.  The solution is initialized with a wrinkled (perturbed) 2D steady flame solution computed using the PREMIX code.  Two levels of solution-adaptive refinement are automatically triggered by the presence of the flame intermediate, HO2.

3. In addition to informative output to the terminal, periodic plotfiles are written in the run folder.  These may be viewed with AMReX's `Amrvis `_, `VisIt `_, or `ParaView `_:

   a. In VisIt, direct the File->Open dialogue to select the file named "Header" that is inside each plotfile folder.

   b. In ParaView, navigate to the case directory, open the plotfile folder.

   c. With Amrvis, `$ amrvis3d plt00030`, for example.

Dependencies
~~~~~~~~~~~~

`PeleC` is built on the `AMReX` and `PelePhysics` libraries. PeleC also requires the `SUNDIALS `_ ODE solver library.


Development model
~~~~~~~~~~~~~~~~~

To add a new feature to PeleC, the procedure is:

1. Create a branch for the new feature (locally): ::

    git checkout -b AmazingNewFeature

2. Develop the feature, merging changes often from the development branch into your AmazingNewFeature branch: ::

    git commit -m "Developed AmazingNewFeature"
    git checkout development
    git pull                      # fix any identified conflicts between local and remote branches of "development"
    git checkout AmazingNewFeature
    git rebase development        # fix any identified conflicts between "development" and "AmazingNewFeature"

3. Build and run

   a. Build and run the full test suite using CMake and CTest (See the `Build` directory for an example script). Please do not introduce warnings. PeleC is checked against `clang-tidy` and `cppcheck` in the CI. To use `cppcheck` and `clang-tidy` locally use these CMake options: ::

        -DPELE_ENABLE_CLANG_TIDY:BOOL=ON
        -DPELE_ENABLE_CPPCHECK:BOOL=ON

   b. Run `clang-tidy` by using an LLVM compiler and making sure `clang-tidy` is found during configure. Then `make` will run `clang-tidy` along with compilation. Once verifying `cppcheck` was found during configure, using the `make cppcheck` target should run its checks on the `compile_commands.json` database generated by CMake. More information on these checks can be seen in the CI files used for GitHub Actions in the `.github/workflows` directory.

   c. To easily format all source files before commit, use the following command: ::

        find ./Source ./Exec \( -name "*.cpp" -o -name "*.H" -o -name "*.h" -o -name "*.C" \) -exec clang-format -i {} +

4. If you don't already have a fork of the PeleC repository, follow the `Github instructions `_ to create one. Then, push a feature branch to your forked PeleC repository: ::

    git remote add remotename git@github.com:remoteurl # add a remote pointing to the user's fork
    git push -u remotename AmazingNewFeature # Note: -u option required only for the first push of new branch

5. Submit a pull request through git@github.com:AMReX-Combustion/PeleC.git, and make sure you are requesting a merge against the development branch

6. Check the CI status on Github and make sure the tests passed for merge request

.. note::

   Github CI uses the CMake build system and CTest to test the core source files of PeleC. If you are adding source files, you will need to add them to the list of source files in the ``CMake`` directory for the tests to pass. Make sure to add them to the GNU make makefiles as well.


Test Status
~~~~~~~~~~~

Nightly test results for PeleC against multiple compilers and machines can be seen on its `CDash page `_.

Documentation
~~~~~~~~~~~~~

The full documentation for Pele exists in the Docs directory; at present this is maintained inline using
Sphinx  `Sphinx `_. With
Sphinx, documentation is written in *Restructured Text*. reST is a markup language
similar to Markdown, but with somewhat greater capabilities (and idiosyncrasies). There
are several `primers `_
available to get started. One gotcha is that indentation matters. To build ::

    $ cd Docs && mkdir build && cd build && sphinx-build -M html ../sphinx .


Citation
~~~~~~~~

To cite the PeleC software and refer to its computational performance, use the following journal articles for `PeleC `_ and the `Pele software suite `_::

    @article{PeleC_IJHPCA,
      author = {Marc T {Henry de Frahan} and Jon S Rood and Marc S Day and Hariswaran Sitaraman and Shashank Yellapantula and Bruce A Perry and Ray W Grout and Ann Almgren and Weiqun Zhang and John B Bell and Jacqueline H Chen},
      title = {{PeleC: An adaptive mesh refinement solver for compressible reacting flows}},
      journal = {The International Journal of High Performance Computing Applications},
      volume = {37},
      number = {2},
      pages = {115-131},
      year = {2022},
      doi = {10.1177/10943420221121151},
      url = {https://doi.org/10.1177/10943420221121151}
    }

    @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}
    }


Additionally, to cite the application of PeleC to compressible reacting flows, use the following `Combustion and Flame journal article `_::

  @article{Sitaraman2021,
    author = {Hariswaran Sitaraman and Shashank Yellapantula and Marc T. {Henry de Frahan} and Bruce Perry and Jon Rood and Ray Grout and Marc Day},
    title = {Adaptive mesh based combustion simulations of direct fuel injection effects in a supersonic cavity flame-holder},
    journal = {Combustion and Flame},
    volume = {232},
    pages = {111531},
    year = {2021},
    issn = {0010-2180},
    doi = {https://doi.org/10.1016/j.combustflame.2021.111531},
    url = {https://www.sciencedirect.com/science/article/pii/S0010218021002741},
  }

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 `_.

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.

Owner

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

Suite of tools for AMR simulation of reacting flows

GitHub Events

Total
  • Create event: 15
  • Release event: 1
  • Issues event: 32
  • Watch event: 21
  • Delete event: 16
  • Issue comment event: 54
  • Push event: 69
  • Pull request review comment event: 12
  • Pull request event: 86
  • Pull request review event: 38
  • Fork event: 13
Last Year
  • Create event: 15
  • Release event: 1
  • Issues event: 32
  • Watch event: 21
  • Delete event: 16
  • Issue comment event: 54
  • Push event: 69
  • Pull request review comment event: 12
  • Pull request event: 86
  • Pull request review event: 38
  • Fork event: 13

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 27
  • Total pull requests: 110
  • Average time to close issues: 25 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 10
  • Total pull request authors: 13
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.42
  • Merged pull requests: 83
  • Bot issues: 0
  • Bot pull requests: 29
Past Year
  • Issues: 17
  • Pull requests: 58
  • Average time to close issues: 13 days
  • Average time to close pull requests: 4 days
  • Issue authors: 5
  • Pull request authors: 10
  • Average comments per issue: 0.71
  • Average comments per pull request: 0.4
  • Merged pull requests: 40
  • Bot issues: 0
  • Bot pull requests: 14
Top Authors
Issue Authors
  • SRkumar97 (7)
  • bronise777 (5)
  • baperry2 (3)
  • EarlFan (3)
  • fahadrhisat (3)
  • JhonCordova (2)
  • zyx1xyz (1)
  • RSuryaNarayan (1)
  • vtmaran (1)
  • himcraft (1)
Pull Request Authors
  • dependabot[bot] (29)
  • baperry2 (26)
  • jrood-nrel (22)
  • marchdf (21)
  • dmontgomeryNREL (2)
  • ChenHuangwei (2)
  • JhonCordova (2)
  • hsitaram (1)
  • SreejithNREL (1)
  • barbariansubhkaran (1)
  • jbishop6 (1)
  • pa-one55 (1)
  • ejyoo921 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (29) submodules (4)

Dependencies

.github/workflows/ci.yml actions
  • DoozyX/clang-format-lint-action v0.14 composite
  • actions/checkout v3 composite
  • actions/setup-python 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
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/docs.yml actions
  • JamesIves/github-pages-deploy-action releases/v3 composite
  • actions/checkout v3 composite
  • actions/setup-python 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/post-pr.yml actions
  • actions/upload-artifact v3 composite
Exec/RegTests/TGReact/environment.yaml conda
  • cantera
  • ipython
  • matplotlib
  • numpy
  • pandas