Skip to content

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

License

Notifications You must be signed in to change notification settings

CAIROCharlie/PeleLMeX

 
 

Repository files navigation

PeleLMeX

AMReX Badge Exascale Computing Project Language: C++17

Overview

CUDA build HIP build SYCL build

PeleLMeX is a non-subcycling version of PeleLM based on AMReX's AmrCore and borrowing from the incompressible solver incflo. It is designed to run efficiently on small workstations as well as the largest ExaScale platforms currently available.

PeleLMeX is part of the Pele combustion Suite.

Documentation

Documentation

PeleLMeX 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.

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

Download

The prefered method consist in cloning the PeleLMeX and its submodules using a recursive git clone: (amrex, AMReX-Hydro and PelePhysics, PeleMP) using:

git clone --depth 1 --recursive https://github.com/AMReX-Combustion/PeleLMeX.git

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

export PELELMEX_HOME=<path_to_PeleLMeX>
export AMREX_HOME=${PELELMEX_HOME}/Submodules/amrex
export AMREX_HYDRO_HOME=${PELELMEX_HOME}/Submodules/AMReX-Hydro
export PELE_PHYSICS_HOME=${PELELMEX_HOME}/Submodules/PelePhysics
export PELEMP_HOME=${PELELMEX_HOME}/Submodules/PeleMP

Compilation

Both GNUmake and CMake can be used to build a PeleLMeX executable, but GNUmake is the prefered choice. The code handling the initial condition and boundary conditions is unique to each case, and subfolders in the Exec directory provide a number of example.

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

cd PeleLMeX/Exec/RegTest/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.

When using CMake (cmake version >= 3.23 is required), first configure CMake directly in PeleLMeX root folder:

cmake -S . -B buildHotBubble -DPELELMEX_MPI=ON -DPELELMEX_CASE=HotBubble

Then build the executable:

cmake --build buildHoBubble --parallel 4

Contributing

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

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 84.4%
  • Roff 7.4%
  • Python 4.0%
  • CMake 1.3%
  • Makefile 1.2%
  • Shell 1.0%
  • Other 0.7%