CI #35
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: CI | |
on: | |
# allows us to run workflows manually | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
NEKRS_HOME: "${{ github.workspace }}/.local/nekrs" | |
MPICH_FC: "gfortran" | |
NEKRS_EXAMPLES: "${{ github.workspace }}/.local/nekrs/examples" | |
NEKRS_COMPILER_FLAGS: "-O2" | |
NRSCONFIG_NOBUILD: "1" | |
RUNNER_ARCH: "X64" | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
install: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: config and build | |
run: | | |
CC=mpicc CXX=mpic++ FC=mpif77 ./build.sh -DENABLE_CVODE=OFF -DNEKRS_CXX_FLAGS=${{ env.NEKRS_COMPILER_FLAGS }} -DNEKRS_C_FLAGS=${{ env.NEKRS_COMPILER_FLAGS }} -DNEKRS_Fortran_FLAGS=${{ env.NEKRS_COMPILER_FLAGS }} -DCMAKE_INSTALL_PREFIX=${{ env.NEKRS_HOME }} -DOCCA_CXXFLAGS=${{ env.NEKRS_COMPILER_FLAGS }} | |
cmake --build build --target install -j 4 | |
- name: Upload install dir | |
uses: actions/upload-artifact@v4 | |
with: | |
name: install-dir | |
retention-days: 2 | |
path: ${{ env.NEKRS_HOME }} | |
if-no-files-found: error | |
# - name: Setup tmate session | |
# uses: mxschmitt/action-tmate@v3 | |
# timeout-minutes: 3 | |
# if: ${{ github.event_name == 'workflow_dispatch' }} | |
ethier: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'ethier build-only' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: | | |
NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --build-only | |
- name: 'ethier default' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: | | |
NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 1 | |
- name: 'ethier subcycle' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 2 | |
- name: 'ethier velocity and pressure using SEMFEM with projection' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 3 | |
- name: 'ethier (block) velocity and pressure and projection with subcycling' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 4 | |
- name: 'ethier default + moving mesh' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_ethier 2 --cimode 5 | |
- name: 'ethier subcycle + moving mesh + subcycling' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_ethier 2 --cimode 6 | |
- name: 'ethier gmres + jacobi' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 7 | |
- name: 'ethier variable dt' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 8 | |
- name: 'ethier no dealiasing and subcycling' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 9 | |
- name: 'ethier no dealiasing' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 10 | |
- name: 'ethier Chebyshev+Jacobi' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 11 | |
- name: 'ethier skip solving temperature' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 12 | |
- name: 'ethier solve single scalar only' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethierScalar 2 --cimode 13 | |
- name: 'ethier additive V-cycle' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 2 --cimode 14 | |
- name: 'ethier linAlg + point interp + surface integral' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: | | |
NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 15 | |
# - name: 'ethier cvode, both scalars' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
# run: | | |
# NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 16 | |
# - name: 'ethier mixed elliptic/cvode' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
# run: | | |
# NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 17 | |
# - name: 'ethier cvode, both scalars, no dealiasing, hpfrt' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
# run: | | |
# NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 18 | |
- name: 'ethier sub-stepping' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: | | |
NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 19 | |
- name: 'ethier FP32 cimode 2' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ethier | |
run: | | |
FP32=1 NEKRS_CACHE_DIR=${{ env.NEKRS_EXAMPLES }}/ethier/custom-cache-dir ${{ env.NEKRS_HOME }}/bin/nrsmpi ethier 1 --cimode 22 | |
lowMach: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'lowMach default single rank' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/lowMach | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi lowMach 1 --cimode 1 | |
# - name: 'lowMach + CVODE' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/lowMach | |
# run: ${{ env.NEKRS_HOME }}/bin/nrsmpi lowMach 2 --cimode 3 | |
mv_cyl: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'mv_cyl' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 1 | |
- name: 'mv_cyl + subcycling' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 2 | |
- name: 'mv_cyl + subcycling + elasticity solve + projection' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 3 | |
- name: 'mv_cyl + unaligned SYM' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 5 | |
- name: 'mv_cyl + unaligned SYM + mesh solver' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 6 | |
# - name: 'mv_cyl + CVODE' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
# run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 7 | |
# - name: 'mv_cyl + CVODE + unaligned SYM + mesh solver' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
# run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl 2 --cimode 8 | |
- name: 'mv_cyl, derived bc' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl_derived_bc 2 --cimode 1 | |
- name: 'mv_cyl + subcycling, derived bc' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl_derived_bc 2 --cimode 2 | |
- name: 'mv_cyl + subcycling + elasticity solve, derived bc' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl_derived_bc 2 --cimode 3 | |
- name: 'mv_cyl + unaligned SYM, derived bc' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl_derived_bc 2 --cimode 5 | |
- name: 'mv_cyl + unaligned SYM + mesh solver, derived bc' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/mv_cyl | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi mv_cyl_derived_bc 2 --cimode 6 | |
conj_ht: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'conj_ht' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/conj_ht | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi conj_ht 2 --cimode 1 | |
- name: 'conj_ht + subcycling' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/conj_ht | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi conj_ht 2 --cimode 2 | |
# - name: 'conj_ht + CVODE' | |
# working-directory: ${{ env.NEKRS_EXAMPLES }}/conj_ht | |
# run: ${{ env.NEKRS_HOME }}/bin/nrsmpi conj_ht 2 --cimode 3 | |
channelStress: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'channelStress (no rotation)' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/channel | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi channel 2 --cimode 1 | |
- name: 'channelStress (45 degree rotation)' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/channel | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi channel 2 --cimode 2 | |
tractionBoundary: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'traction channel (no rotation)' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/shlChannel | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi channel 2 --cimode 1 | |
- name: 'traction channel (45 degree rotation)' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/shlChannel | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi channel 2 --cimode 2 | |
eddyNekNek: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'eddyNekNek' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: | | |
${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNek.sess 2 --cimode 1 | |
cat inside/logfile | |
cat outside/logfile | |
- name: 'eddyNekNekMv' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNekMv.sess 2 --cimode 2 | |
- name: 'eddyNekNek, velocity:solver = none' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNek.sess 2 --cimode 3 | |
- name: 'eddyNekNekNek' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNekNek.sess 3 --cimode 1 | |
- name: 'eddyNekNekNekMv' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNekNekMv.sess 3 --cimode 2 | |
- name: 'eddyNekNek, multirate timestepping' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/eddyNekNek | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi eddyNekNek.sess 2 --cimode 4 | |
ktauChannel: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: APT dependencies | |
run: | | |
sudo apt -y update | |
sudo apt install -y mpich libmpich-dev | |
- name: Download install dir | |
uses: actions/download-artifact@v4 | |
with: | |
name: install-dir | |
path: ${{ env.NEKRS_HOME }} | |
- name: Set install dir permissions | |
run: chmod -R 755 ${{ env.NEKRS_HOME }} | |
- name: 'ktauChannel' | |
working-directory: ${{ env.NEKRS_EXAMPLES }}/ktauChannel | |
run: ${{ env.NEKRS_HOME }}/bin/nrsmpi channel 2 --cimode 1 |