PeleLM is an adaptive-mesh low Mach number hydrodynamics code for reacting flows. PeleLM has a project homepage, and can be obtained via GitHub.
- To compile and run the Pele suite of codes, one needs a C++ compiler that supports the C++11 standard and a Fortran compiler that supports the 2003 standard. A hierarchical strategy for parallelism is supported, based MPI + OpenMP. The codes work with all major MPI and OpenMP implementations. The codes should build and run with no modifications to the make system if using a Linux system with the GNU compilers, version 4.8.4 and above.
To build PeleLM and run a sample 2D flame problem:
Set the environment variable, AMREX_HOME, and clone a copy of AMReX there
export AMREX_HOME=<location for AMReX> git clone https://github.com/AMReX-Codes/amrex.git ${AMREX_HOME} or (if you have the proper SSH keys set in your GitHub settings) git clone git@github.com:AMReX-Codes/amrex.git ${AMREX_HOME}
Set the environment variable, IAMR_HOME, and clone a copy of IAMR there
export IAMR_HOME=<location for IAMR> git clone https://github.com/AMReX-Codes/IAMR.git ${IAMR_HOME} or (if you have the proper SSH keys set in your GitHub settings) git clone git@github.com:AMReX-Codes/IAMR.git ${IAMR_HOME}
Set the environment variable, PELELM_HOME, and clone a copy of PeleLM there
export PELELM_HOME=<location for PeleLM> git clone https://github.com/AMReX-Combustion/PeleLM.git ${PELELM_HOME} or (if you have the proper SSH keys set in your GitHub settings) git clone git@github.com:AMReX-Combustion/PeleLM.git ${PELELM_HOME}
Set the environment variable, PELE_PHYSICS_HOME, and clone a copy of PelePhysics there
export PELE_PHYSICS_HOME=<location for PelePhysics> git clone https://github.com/AMReX-Combustion/PelePhysics.git ${PELEPHYSICS_HOME} or (if you have the proper SSH keys set in your GitHub settings) git clone git@github.com:AMReX-Combustion/PelePhysics.git ${PELEPHYSICS_HOME}
Move to an example build folder, build an executable
cd ${PELELM_HOME}/Exec/FlameInABox make
PeleLM was created in 2017 by renaming LMC, the low Mach code from CCSE, and is built on the AMReX library and the IAMR code (see above).
To add a new feature to PeleLM, the procedure is:
Create a branch for the new feature (locally)
git checkout -b AmazingNewFeature
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 merge development [fix any identified conflicts between "development" and "AmazingNewFeature"]
Push feature branch to PeleLM repository
git push -u origin AmazingNewFeature [Note: -u option required only for the first push of new branch]
Submit a merge request through the github project page - be sure you are requesting to merge your branch to the development branch.
Documentation for PeleLM is under development in the Docs directory. To build
cd ${PELELM_DIR}/Docs make html
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.