Skip to content

CI

CI #35

Workflow file for this run

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