Fix codeql #1007
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PelePhysics-CI | |
on: | |
push: | |
branches: [development] | |
pull_request: | |
branches: [development] | |
concurrency: | |
group: ${{github.ref}}-${{github.head_ref}}-ci | |
cancel-in-progress: true | |
jobs: | |
Formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v3 | |
- name: Check formatting | |
uses: DoozyX/[email protected] | |
with: | |
source: './Eos ./Transport ./Reactions ./Source ./Utility ./Testing ./Support/Mechanism/Models' | |
exclude: '.' | |
extensions: 'H,h,cpp' | |
clangFormatVersion: 16 | |
CEPTR: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10'] | |
poetry-version: ['1.4.2'] | |
defaults: | |
run: | |
working-directory: ${{github.workspace}}/Support/ceptr | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{matrix.python-version}} | |
- name: Run image | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{matrix.poetry-version}} | |
- name: Install Dependencies using Poetry | |
run: poetry install | |
- name: Formatting with black | |
run: poetry run black --check . | |
- name: Sort imports with isort | |
run: poetry run isort --check-only --diff . | |
- name: Lint with flake8 | |
run: poetry run flake8 . | |
- name: Run tests | |
run: poetry run pytest | |
- name: Convert air mechanism | |
run: poetry run convert -f ${{github.workspace}}/Support/Mechanism/Models/air/mechanism.yaml | |
- name: Convert LiDryer mechanism | |
run: poetry run convert -f ${{github.workspace}}/Support/Mechanism/Models/LiDryer/mechanism.yaml | |
Transport-EOS-Reactions: | |
needs: Formatting | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
comp: [gnu, llvm, cuda, hip, sycl] | |
python-version: ['3.10'] | |
poetry-version: ['1.4.2'] | |
include: | |
- comp: gnu | |
amrex_build_args: 'COMP=gnu' | |
dependency_cmds: | |
- comp: llvm | |
amrex_build_args: 'COMP=llvm' | |
dependency_cmds: | |
- comp: cuda | |
amrex_build_args: 'COMP=gnu USE_CUDA=TRUE' | |
dependency_cmds: '.github/workflows/dependencies/dependencies_cuda.sh' | |
- comp: hip | |
amrex_build_args: 'USE_HIP=TRUE AMD_ARCH=gfx90a LIBRARY_LOCATIONS=/opt/rocm/lib' | |
dependency_cmds: '.github/workflows/dependencies/dependencies_hip.sh' | |
- comp: sycl | |
amrex_build_args: 'USE_SYCL=TRUE' | |
dependency_cmds: '.github/workflows/dependencies/dependencies_dpcpp.sh' | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{matrix.python-version}} | |
- name: Run image | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{matrix.poetry-version}} | |
- name: Clone PelePhysics | |
uses: actions/checkout@v3 | |
with: | |
path: PelePhysics-${{matrix.comp}} | |
- name: Clone SUNDIALS | |
uses: actions/checkout@v3 | |
with: | |
repository: LLNL/sundials | |
ref: 'v6.6.1' | |
path: sundials-${{matrix.comp}} | |
- name: Clone AMReX | |
uses: actions/checkout@v3 | |
with: | |
repository: AMReX-Codes/amrex | |
path: AMReX-${{matrix.comp}} | |
- name: Set Environment Variables | |
run: | | |
echo "AMREX_HOME=${{github.workspace}}/AMReX-${{matrix.comp}}" >> $GITHUB_ENV | |
echo "SUNDIALS_HOME=${{github.workspace}}/sundials-${{matrix.comp}}" >> $GITHUB_ENV | |
echo "PELE_PHYSICS_HOME=${{github.workspace}}/PelePhysics-${{matrix.comp}}" >> $GITHUB_ENV | |
echo "TRANSPORT_WORKING_DIRECTORY=${{github.workspace}}/PelePhysics-${{matrix.comp}}/Testing/Exec/TranEval" >> $GITHUB_ENV | |
echo "EOS_WORKING_DIRECTORY=${{github.workspace}}/PelePhysics-${{matrix.comp}}/Testing/Exec/EosEval" >> $GITHUB_ENV | |
echo "REACT_WORKING_DIRECTORY=${{github.workspace}}/PelePhysics-${{matrix.comp}}/Testing/Exec/ReactEval" >> $GITHUB_ENV | |
echo "IGNDELAY_WORKING_DIRECTORY=${{github.workspace}}/PelePhysics-${{matrix.comp}}/Testing/Exec/IgnitionDelay" >> $GITHUB_ENV | |
echo "JAC_WORKING_DIRECTORY=${{github.workspace}}/PelePhysics-${{matrix.comp}}/Testing/Exec/Jacobian" >> $GITHUB_ENV | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
if [ "${{matrix.comp}}" == 'cuda' ]; then \ | |
echo "CUDA_HOME=/usr/local/cuda-11.2" >> $GITHUB_ENV; \ | |
echo "LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:${LD_LIBRARY_PATH}" >> $GITHUB_ENV; \ | |
echo "/usr/local/cuda-11.2/bin" >> $GITHUB_PATH; \ | |
fi | |
- name: Dependencies | |
working-directory: ${{env.TRANSPORT_WORKING_DIRECTORY}} | |
run: | | |
if [ "${{matrix.comp}}" == 'cuda' ]; then \ | |
${{github.workspace}}/PelePhysics-${{matrix.comp}}/${{matrix.dependency_cmds}}; \ | |
echo "CUDA_HOME=${CUDA_HOME}"; \ | |
ls ${CUDA_HOME} > /dev/null; \ | |
which nvcc || echo "nvcc not in PATH!"; \ | |
fi | |
if [ "${{matrix.comp}}" == 'hip' ]; then \ | |
${{github.workspace}}/PelePhysics-${{matrix.comp}}/${{matrix.dependency_cmds}}; \ | |
source /etc/profile.d/rocm.sh | |
which hipcc || echo "hipcc not in PATH!"; \ | |
fi | |
if [ "${{matrix.comp}}" == 'sycl' ]; then \ | |
${{github.workspace}}/PelePhysics-${{matrix.comp}}/${{matrix.dependency_cmds}}; \ | |
source /opt/intel/oneapi/setvars.sh || true | |
which icpx || echo "icpx not in PATH!"; \ | |
fi | |
cmake --version | |
make TPL ${{matrix.amrex_build_args}}; | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
make TPL DEBUG=TRUE TINY_PROFILE=TRUE ${{matrix.amrex_build_args}}; | |
cd ${{github.workspace}}/PelePhysics-${{matrix.comp}}/Support/ceptr | |
poetry install | |
fi | |
- name: Test Transport | |
working-directory: ${{env.TRANSPORT_WORKING_DIRECTORY}} | |
run: | | |
echo "::add-matcher::${{github.workspace}}/PelePhysics-${{matrix.comp}}/.github/problem-matchers/gcc.json" | |
if [ "${{matrix.comp}}" == 'hip' ]; then source /etc/profile.d/rocm.sh; fi; | |
if [ "${{matrix.comp}}" == 'sycl' ]; then source /opt/intel/oneapi/setvars.sh || true; fi; | |
for TYPE in Constant Simple Sutherland; do \ | |
printf "\n-------- ${TYPE} --------\n"; \ | |
make -j ${{env.NPROCS}} Transport_Model=${TYPE} TINY_PROFILE=TRUE ${{matrix.amrex_build_args}}; \ | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
./Pele2d.${{matrix.comp}}.TPROF.ex inputs.2d_${TYPE}; \ | |
fi; \ | |
make realclean; \ | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
done | |
- name: Test EOS | |
working-directory: ${{env.EOS_WORKING_DIRECTORY}} | |
run: | | |
echo "::add-matcher::${{github.workspace}}/PelePhysics-${{matrix.comp}}/.github/problem-matchers/gcc.json" | |
if [ "${{matrix.comp}}" == 'hip' ]; then source /etc/profile.d/rocm.sh; fi; | |
if [ "${{matrix.comp}}" == 'sycl' ]; then source /opt/intel/oneapi/setvars.sh || true; fi; | |
for TYPE in Fuego GammaLaw Soave-Redlich-Kwong; do \ | |
if [ "${TYPE}" == 'Fuego' ] || [ "${TYPE}" == 'Soave-Redlich-Kwong' ]; then CHEMISTRY=LiDryer; else CHEMISTRY=Null; fi; \ | |
if [ "${TYPE}" == 'Soave-Redlich-Kwong' ]; then TRANSPORT=Simple; else TRANSPORT=Constant; fi; \ | |
printf "\n-------- ${TYPE} --------\n"; \ | |
make -j ${{env.NPROCS}} Eos_Model=${TYPE} Chemistry_Model=${CHEMISTRY} Transport_Model=${TRANSPORT} TINY_PROFILE=TRUE ${{matrix.amrex_build_args}}; \ | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
./Pele2d.${{matrix.comp}}.TPROF.ex inputs.2d; \ | |
fi; \ | |
make realclean; \ | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
done | |
- name: Test Integration | |
working-directory: ${{env.REACT_WORKING_DIRECTORY}} | |
run: | | |
echo "::add-matcher::${{github.workspace}}/PelePhysics-${{matrix.comp}}/.github/problem-matchers/gcc.json" | |
if [ "${{matrix.comp}}" == 'hip' ]; then source /etc/profile.d/rocm.sh; fi; | |
if [ "${{matrix.comp}}" == 'sycl' ]; then source /opt/intel/oneapi/setvars.sh || true; fi; | |
make -j ${{env.NPROCS}} Eos_Model=Fuego Chemistry_Model=drm19 TINY_PROFILE=TRUE ${{matrix.amrex_build_args}} | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
for TYPE in Cvode Arkode RK64; do \ | |
printf "\n-------- ${TYPE} --------\n"; \ | |
./Pele3d.${{matrix.comp}}.TPROF.ex inputs.3d_Array4 ode.dt=1.e-05 ode.ndt=100 chem_integrator="Reactor${TYPE}"; \ | |
./Pele3d.${{matrix.comp}}.TPROF.ex inputs.3d_1dArray ode.dt=1.e-05 ode.ndt=100 chem_integrator="Reactor${TYPE}"; \ | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
done \ | |
fi; | |
make realclean | |
make -j ${{env.NPROCS}} Eos_Model=Fuego Chemistry_Model=LiDryer TINY_PROFILE=TRUE ${{matrix.amrex_build_args}} | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
for TYPE in Cvode Arkode RK64; do \ | |
printf "\n-------- ${TYPE} --------\n"; \ | |
./Pele3d.${{matrix.comp}}.TPROF.ex inputs.3d_Array4 fuel_name=H2 ode.dt=1.e-05 ode.ndt=100 chem_integrator="Reactor${TYPE}"; \ | |
./Pele3d.${{matrix.comp}}.TPROF.ex inputs.3d_1dArray fuel_name=H2 ode.dt=1.e-05 ode.ndt=100 chem_integrator="Reactor${TYPE}"; \ | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
done \ | |
fi | |
make realclean | |
- name: Test Ignition delay | |
working-directory: ${{env.IGNDELAY_WORKING_DIRECTORY}} | |
run: | | |
echo "::add-matcher::${{github.workspace}}/PelePhysics-${{matrix.comp}}/.github/problem-matchers/gcc.json" | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
python -m pip install --upgrade pip | |
pip install numpy | |
make -j ${{env.NPROCS}} Eos_Model=Fuego Chemistry_Model=dodecane_lu TINY_PROFILE=TRUE ${{matrix.amrex_build_args}} | |
bash exec_ignDelay.sh | |
python check_ignDelay.py | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
fi; | |
make realclean | |
- name: Test Jacobian | |
working-directory: ${{env.JAC_WORKING_DIRECTORY}} | |
run: | | |
echo "::add-matcher::${{github.workspace}}/PelePhysics-${{matrix.comp}}/.github/problem-matchers/gcc.json" | |
if [ "${{matrix.comp}}" == 'gnu' ] || [ "${{matrix.comp}}" == 'llvm' ]; then \ | |
cd ${{github.workspace}}/PelePhysics-${{matrix.comp}}/Support/ceptr | |
poetry run qssa -f ${{github.workspace}}/PelePhysics-${{matrix.comp}}/Support/Mechanism/Models/dodecane_lu_qss/skeletal.yaml -n ${{github.workspace}}/Support/Mechanism/Models/dodecane_lu_qss/non_qssa_list.yaml | |
poetry run convert -f ${{github.workspace}}/PelePhysics-${{matrix.comp}}/Support/Mechanism/Models/dodecane_lu_qss/qssa.yaml --qss_format_input ${{github.workspace}}/PelePhysics-${{matrix.comp}}/Support/Mechanism/Models/dodecane_lu_qss/qssa_input_non_optimized.toml --qss_symbolic_jacobian | |
cd ${{env.JAC_WORKING_DIRECTORY}} | |
make -j ${{env.NPROCS}} Eos_Model=Fuego Chemistry_Model=dodecane_lu_qss DEBUG=TRUE TINY_PROFILE=TRUE ${{matrix.amrex_build_args}} | |
./Pele3d.${{matrix.comp}}.DEBUG.TPROF.ex; \ | |
if [ $? -ne 0 ]; then exit 1; fi; \ | |
fi; | |
make realclean |