Skip to content

BR2 and tests fixed #217

BR2 and tests fixed

BR2 and tests fixed #217

# This is a basic workflow to help you get started with Actions
name: CI SEQ COMP+EULER
########################################################################
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
#env:
# HDF5_ROOT : /usr/lib/x86_64-linux-gnu/hdf5/serial/
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Define strategy matrix
strategy:
fail-fast: false
matrix:
compiler: ['gfortran','ifort']
mode: ['RELEASE', 'DEBUG']
comm: ['SEQUENTIAL']
enable_threads: ['YES']
mkl: ['YES','NO']
exclude:
- compiler: gfortran
mkl: 'YES'
- compiler: ifort
mkl: 'NO'
env:
INTEL_COMPILER_DIR : /opt/intel/oneapi/compiler/2024.1
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# sudo apt-get install -qq pkg-config libhdf5-serial-dev
# - name: Install Linux packages
# run: |
# sudo apt-get update
# sudo apt install libhdf5-dev
# dpkg -L libhdf5-dev
# IF COMPILER = IFORT -> INSTALL IFORT #
# UNCOMMENT TO USE CACHED IFORT
#- name: cache-intel-compilers
# if: (matrix.compiler == 'ifort')
# id: cache-intel-compilers
# uses: actions/cache@v3
# with:
# path: /opt/intel
# key: intel-${{ runner.os }}-compilers-b
- name: Intel Apt repository
# UNCOMMENT TO USE CACHED IFORT
# if: (steps.cache-intel-compilers.outputs.cache-hit != 'true')
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
sudo apt-get update
- name: Install Intel oneAPI
# UNCOMMENT TO USE CACHED IFORT
# if: (steps.cache-intel-compilers.outputs.cache-hit != 'true')
run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-mkl-devel ninja-build
# Runs a single command using the runners shell
##- name: Install gfortran
## run: |
## sudo add-apt-repository ppa:ubuntu-toolchain-r/test
## sudo apt update
## sudo apt-get install gfortran-9
##- name: Show gfortran version
## run: gfortran-9 --version
- name: Show ${{matrix.compiler}} version
run: |
source /opt/intel/oneapi/setvars.sh || true
printenv >> $GITHUB_ENV
${{matrix.compiler}} --version
- name: Configure
working-directory: ./Solver
run: ./configure
- name: Compile horses3d
working-directory: ./Solver
run: |
source /opt/intel/oneapi/setvars.sh || true
make allclean MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
########################################################################
####### COMPONENTS ########
########################################################################
#
# 1) FACE PATCHES TEST
# --------------------
- name: Build FacePatches
working-directory: ./Solver/test/Components/FacePatches
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run FacePatches
working-directory: ./Solver/test/Components/FacePatches
run: |
source /opt/intel/oneapi/setvars.sh || true
./bin/FacePatches
if: '!cancelled()'
#
# 2) GRADIENTS TEST
# -----------------
# This test has been inactive in Alderaan for quite a long time
#
# 3) HEXMAPPINGS TEST
# -------------------
- name: Build HexMappings
working-directory: ./Solver/test/Components/HexMappings
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run HexMappings
working-directory: ./Solver/test/Components/HexMappings
run: |
source /opt/intel/oneapi/setvars.sh || true
./bin/HexMappings
if: '!cancelled()'
#
# 4) HEXMESH TEST
# ---------------
- name: Build HexMesh
working-directory: ./Solver/test/Components/HexMesh
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run HexMesh
working-directory: ./Solver/test/Components/HexMesh
run: |
source /opt/intel/oneapi/setvars.sh || true
./bin/HexMesh
if: '!cancelled()'
#
# 5) MESHCONSISTENCY TEST
# -----------------------
- name: Build MeshConsistency
working-directory: ./Solver/test/Components/MeshConsistency
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run MeshConsistency
working-directory: ./Solver/test/Components/MeshConsistency
run: |
source /opt/intel/oneapi/setvars.sh || true
./bin/MeshConsistency
if: '!cancelled()'
#
# 6) NODALSTORAGE TEST
# --------------------
- name: Build NodalStorage
working-directory: ./Solver/test/Components/NodalStorage
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run NodalStorage
working-directory: ./Solver/test/Components/NodalStorage
run: |
source /opt/intel/oneapi/setvars.sh || true
./bin/NodalStorage
if: '!cancelled()'
########################################################################
####### EULER ########
########################################################################
#
# 1) DIFFUSER
# -----------
- name: Build Diffuser
working-directory: ./Solver/test/Euler/Diffuser/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run Diffuser
working-directory: ./Solver/test/Euler/Diffuser
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns DiffuserFlow.control
if: '!cancelled()'
#
# 2) UNIFORM FLOW
# ---------------
- name: Build UniformFlow
working-directory: ./Solver/test/Euler/UniformFlow/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run UniformFlow
working-directory: ./Solver/test/Euler/UniformFlow
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns UniformFlow.control
if: '!cancelled()'
#
# 3) BOX AROUND CIRCLE
# --------------------
- name: Build BoxAroundCircle
working-directory: ./Solver/test/Euler/BoxAroundCircle/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run BoxAroundCircle
working-directory: ./Solver/test/Euler/BoxAroundCircle
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns BoxAroundCircle.control
if: '!cancelled()'
#
# 4) BOX AROUND CIRCLE PIROZZOLI
# ------------------------------
- name: Build BoxAroundCirclePirozzoli
working-directory: ./Solver/test/Euler/BoxAroundCirclePirozzoli/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run BoxAroundCirclePirozzoli
working-directory: ./Solver/test/Euler/BoxAroundCirclePirozzoli
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns BoxAroundCirclePirozzoli.control
if: '!cancelled()'
#
# 5) Inviscid TGV with KEPEC
# --------------------------
- name: Build TaylorGreenKEPEC
working-directory: ./Solver/test/Euler/TaylorGreenKEPEC/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run TaylorGreenKEPEC
working-directory: ./Solver/test/Euler/TaylorGreenKEPEC
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns TaylorGreenKEPEC.control
if: '!cancelled()'
#
# 6) Vortex transport 2D with KEPEC
# ---------------------------------
# Outdated test case.
#
# - name: Build VortexTransport2DKEPEC
# working-directory: ./Solver/test/Euler/VortexTransport2D/SETUP
# run: |
# source /opt/intel/oneapi/setvars.sh || true
# make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
#
# - name: Run VortexTransport2DKEPEC
# working-directory: ./Solver/test/Euler/VortexTransport2D
# run: |
# source /opt/intel/oneapi/setvars.sh || true
# ./horses3d.ns VortexTransport2D.control
#
# 7) Jacobian-Free Newton-Krylov
# ------------------------------
# Deactivated because a mismatch in the accuracy.
# Double Precision equality failed:
# Final maximum residual
# Expected [1.6257217794191102E-011], Got [3.4106051316484809E-013]
- name: Build JFNK Uniform Flow
working-directory: ./Solver/test/Euler/JFNK/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run JFNK Uniform Flow
working-directory: ./Solver/test/Euler/JFNK
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns UniformFlowJFNK.control
if: '!cancelled()'
#
# 8) BOX AROUND CIRCLE WITH ADAPTATION
# ------------------------------------
- name: Build BoxAroundCircle_pAdapted
working-directory: ./Solver/test/Euler/BoxAroundCircle_pAdapted/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run BoxAroundCircle_pAdapted
working-directory: ./Solver/test/Euler/BoxAroundCircle_pAdapted
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns BoxAroundCircle_pAdapted.control
if: '!cancelled()'
#
# 9) Cylinder with RL-based p-adaptation and error estimation
# -----------------------------------------------------------
- name: Build Cylinder_ErrorEstimation_pAdaptationRL
working-directory: ./Solver/test/Euler/Cylinder_ErrorEstimation_pAdaptationRL/SETUP
run: |
source /opt/intel/oneapi/setvars.sh || true
make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}}
if: '!cancelled()'
- name: Run Cylinder_ErrorEstimation_pAdaptationRL
working-directory: ./Solver/test/Euler/Cylinder_ErrorEstimation_pAdaptationRL
run: |
source /opt/intel/oneapi/setvars.sh || true
./horses3d.ns Cylinder_ErrorEstimation_pAdaptationRL.control
if: '!cancelled()'