Skip to content

Commit

Permalink
Merge branch 'master' into Stefano_Development
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefano Colombo committed Oct 19, 2023
2 parents e0e6ead + 5e71c14 commit 1aa56f9
Show file tree
Hide file tree
Showing 249 changed files with 15,059 additions and 1,617 deletions.
244 changes: 200 additions & 44 deletions .github/workflows/CI_parallel.yml

Large diffs are not rendered by default.

365 changes: 365 additions & 0 deletions .github/workflows/CI_sequential 1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,365 @@
# 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
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: gfortran
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: ifort
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
- compiler: ifort
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
# 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 #
- 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
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-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
- name: Install Intel oneAPI
if: (steps.cache-intel-compilers.outputs.cache-hit != 'true')
run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-mkl 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()'

Loading

0 comments on commit 1aa56f9

Please sign in to comment.