diff --git a/.github/workflows/CI_sequential_intel_debug_multiphase.yml b/.github/workflows/CI_sequential 1.yml similarity index 53% rename from .github/workflows/CI_sequential_intel_debug_multiphase.yml rename to .github/workflows/CI_sequential 1.yml index 4cf2449ea..1f0c50dc6 100644 --- a/.github/workflows/CI_sequential_intel_debug_multiphase.yml +++ b/.github/workflows/CI_sequential 1.yml @@ -1,15 +1,15 @@ # This is a basic workflow to help you get started with Actions -name: CI SEQUENTIAL INTEL DEBUG MULTIPHASE +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 ] + push: + branches: [ master ] + pull_request: + branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -27,12 +27,32 @@ jobs: strategy: fail-fast: false matrix: - compiler: ['ifort'] - mode: ['DEBUG'] + compiler: ['gfortran', 'ifort'] + mode: ['RELEASE', 'DEBUG'] comm: ['SEQUENTIAL'] enable_threads: ['YES'] - mkl: ['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: @@ -94,206 +114,252 @@ jobs: 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}} - ######################################################################## -####### MULTIPHASE ######## +####### COMPONENTS ######## ######################################################################## # -# 1) Convergence -# ---------------------------- +# 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 MultiphaseConvergence - working-directory: ./Solver/test/Multiphase/Convergence/SETUP + - 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 MultiphaseConvergence - working-directory: ./Solver/test/Multiphase/Convergence + - name: Run HexMappings + working-directory: ./Solver/test/Components/HexMappings run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu Convergence.control + ./bin/HexMappings if: '!cancelled()' # -# 2) RisingBubble -# ---------------------------- +# 4) HEXMESH TEST +# --------------- - - name: Build MultiphaseRisingBubble - working-directory: ./Solver/test/Multiphase/RisingBubble/SETUP + - 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 MultiphaseRisingBubble - working-directory: ./Solver/test/Multiphase/RisingBubble + - name: Run HexMesh + working-directory: ./Solver/test/Components/HexMesh run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu RisingBubble.control + ./bin/HexMesh if: '!cancelled()' # -# 3) Pipe -# ---------------------------- +# 5) MESHCONSISTENCY TEST +# ----------------------- - - name: Build MultiphasePipe - working-directory: ./Solver/test/Multiphase/Pipe/SETUP + - 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 MultiphasePipe - working-directory: ./Solver/test/Multiphase/Pipe + - name: Run MeshConsistency + working-directory: ./Solver/test/Components/MeshConsistency run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu AnnularFlow.control + ./bin/MeshConsistency if: '!cancelled()' # -# 4) Entropy conserving test -# ---------------------------- +# 6) NODALSTORAGE TEST +# -------------------- - - name: Build MultiphaseEntropyConservingTest - working-directory: ./Solver/test/Multiphase/EntropyConservingTest/SETUP + - 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 MultiphaseEntropyConservingTest - working-directory: ./Solver/test/Multiphase/EntropyConservingTest + - name: Run NodalStorage + working-directory: ./Solver/test/Components/NodalStorage run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu EntropyConservingTest.control + ./bin/NodalStorage if: '!cancelled()' ######################################################################## -####### INCOMPRESSIBLE ######## +####### EULER ######## ######################################################################## # -# 1) Convergence -# ---------------------------- +# 1) DIFFUSER +# ----------- - - name: Build iNS-Convergence - working-directory: ./Solver/test/IncompressibleNS/Convergence/SETUP + - 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 iNS-Convergence - working-directory: ./Solver/test/IncompressibleNS/Convergence + - name: Run Diffuser + working-directory: ./Solver/test/Euler/Diffuser run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.ins Convergence4P5.control + ./horses3d.ns DiffuserFlow.control if: '!cancelled()' # -# 2) Kovasznay -# ---------------------------- +# 2) UNIFORM FLOW +# --------------- - - name: Build iNS-Kovasznay - working-directory: ./Solver/test/IncompressibleNS/Kovasznay/SETUP + - 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 iNS-Kovasznay - working-directory: ./Solver/test/IncompressibleNS/Kovasznay + - name: Run UniformFlow + working-directory: ./Solver/test/Euler/UniformFlow run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.ins Kovasznay.control + ./horses3d.ns UniformFlow.control if: '!cancelled()' # -# 3) Lid driven cavity -# ---------------------------- +# 3) BOX AROUND CIRCLE +# -------------------- - - name: Build iNS-LidDrivenCavity - working-directory: ./Solver/test/IncompressibleNS/LidDrivenCavity/SETUP + - 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 iNS-LidDrivenCavity - working-directory: ./Solver/test/IncompressibleNS/LidDrivenCavity + - name: Run BoxAroundCircle + working-directory: ./Solver/test/Euler/BoxAroundCircle run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.ins LDCRe7500.control + ./horses3d.ns BoxAroundCircle.control if: '!cancelled()' # -# 4) Taylor Green Vortex -# ---------------------------- +# 4) BOX AROUND CIRCLE PIROZZOLI +# ------------------------------ - - name: Build iNS-TaylorGreenVortex - working-directory: ./Solver/test/IncompressibleNS/TaylorGreen/SETUP + - 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 iNS-TaylorGreenVortex - working-directory: ./Solver/test/IncompressibleNS/TaylorGreen + - name: Run BoxAroundCirclePirozzoli + working-directory: ./Solver/test/Euler/BoxAroundCirclePirozzoli run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.ins TGV_Central.control + ./horses3d.ns BoxAroundCirclePirozzoli.control if: '!cancelled()' # -# 5) Rayleigh-Taylor instability -# ------------------------------- +# 5) Inviscid TGV with KEPEC +# -------------------------- - - name: Build iNS-RayleighTaylor - working-directory: ./Solver/test/IncompressibleNS/RayleighTaylor/SETUP + - 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 iNS-RayleighTaylor - working-directory: ./Solver/test/IncompressibleNS/RayleighTaylor + - name: Run TaylorGreenKEPEC + working-directory: ./Solver/test/Euler/TaylorGreenKEPEC run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.ins RTI.control + ./horses3d.ns TaylorGreenKEPEC.control if: '!cancelled()' +# +# 6) Vortex transport 2D with KEPEC +# --------------------------------- - -######################################################################## -####### ADDONS ######## -######################################################################## +# Outdated test case. # -# 1) Mapping Result - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_MappingResult - working-directory: ./Solver/test/AddOns/horsesConverter/MappingResult +# - 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 - ./horsesConverter + ./horses3d.ns UniformFlowJFNK.control if: '!cancelled()' # -# 2) Horses Mesh to OpenFOAM - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_HorsesMesh2OF - working-directory: ./Solver/test/AddOns/horsesConverter/HorsesMesh2OF +# 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 - ./horsesConverter + make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}} if: '!cancelled()' -# -# 3) OpenFOAM to Horses - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_OF2Horses - working-directory: ./Solver/test/AddOns/horsesConverter/OF2Horses + - name: Run BoxAroundCircle_pAdapted + working-directory: ./Solver/test/Euler/BoxAroundCircle_pAdapted run: | source /opt/intel/oneapi/setvars.sh || true - OMP_NUM_THREADS=4 ./horsesConverter + ./horses3d.ns BoxAroundCircle_pAdapted.control if: '!cancelled()' + diff --git a/.github/workflows/CI_sequential 2.yml b/.github/workflows/CI_sequential 2.yml new file mode 100644 index 000000000..fa7f26b65 --- /dev/null +++ b/.github/workflows/CI_sequential 2.yml @@ -0,0 +1,663 @@ +# This is a basic workflow to help you get started with Actions + +name: CI SEQ NAVIERSTOKES + +######################################################################## +# 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}} + + +######################################################################## +####### NAVIER-STOKES ######## +######################################################################## + +# +# 0) Convergence +# ------------------------------ + + - name: Build Convergence + working-directory: ./Solver/test/NavierStokes/Convergence/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 Convergence + working-directory: ./Solver/test/NavierStokes/Convergence + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns Convergence.control + if: '!cancelled()' + +# +# 0) Convergence energy +# -------------------------- + + - name: Build Convergence_energy + working-directory: ./Solver/test/NavierStokes/Convergence_energy/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 Convergence_energy + working-directory: ./Solver/test/NavierStokes/Convergence_energy + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns Convergence.control + if: '!cancelled()' + +# +# 0) Convergence entropy +# --------------------------------- + + - name: Build Convergence_entropy + working-directory: ./Solver/test/NavierStokes/Convergence_entropy/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 Convergence_entropy + working-directory: ./Solver/test/NavierStokes/Convergence_entropy + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns Convergence.control + if: '!cancelled()' + +# +# 1) CYLINDER +# ----------- + + - name: Build NSCylinder + working-directory: ./Solver/test/NavierStokes/Cylinder/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 NSCylinder + working-directory: ./Solver/test/NavierStokes/Cylinder + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns Cylinder.control + if: '!cancelled()' + +# +# 2) CYLINDER IP +# -------------- + + - name: Build NSCylinderIP + working-directory: ./Solver/test/NavierStokes/CylinderIP/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 NSCylinderIP + working-directory: ./Solver/test/NavierStokes/CylinderIP + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderIP.control + if: '!cancelled()' + +# +# 3) CYLINDER BR2 +# --------------- + + - name: Build NSCylinderBR2 + working-directory: ./Solver/test/NavierStokes/CylinderBR2/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 NSCylinderBR2 + working-directory: ./Solver/test/NavierStokes/CylinderBR2 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderBR2.control + if: '!cancelled()' + +# +# 4) CYLINDER DUCROS +# ------------------ + + - name: Build NSCylinderDucros + working-directory: ./Solver/test/NavierStokes/CylinderDucros/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 NSCylinderDucros + working-directory: ./Solver/test/NavierStokes/CylinderDucros + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderDucros.control + if: '!cancelled()' + +# +# 5) CYLINDER Smagorinsky +# ------------------ + + - name: Build NSCylinderSmagorinsky + working-directory: ./Solver/test/NavierStokes/CylinderSmagorinsky/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 NSCylinderSmagorinsky + working-directory: ./Solver/test/NavierStokes/CylinderSmagorinsky + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderSmagorinsky.control + if: '!cancelled()' + +# +# 6) CYLINDER WALE +# ------------------ + + - name: Build NSCylinderWALE + working-directory: ./Solver/test/NavierStokes/CylinderWALE/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 NSCylinderWALE + working-directory: ./Solver/test/NavierStokes/CylinderWALE + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderWALE.control + if: '!cancelled()' + +# +# 7) CYLINDER Vreman +# ------------------ + + - name: Build NSCylinderVreman + working-directory: ./Solver/test/NavierStokes/CylinderVreman/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 NSCylinderVreman + working-directory: ./Solver/test/NavierStokes/CylinderVreman + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderVreman.control + if: '!cancelled()' + +# +# 8) TAYLOR GREEN VORTEX +# ---------------------- + + - name: Build TaylorGreen + working-directory: ./Solver/test/NavierStokes/TaylorGreen/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 TaylorGreen + working-directory: ./Solver/test/NavierStokes/TaylorGreen + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns TaylorGreen.control + if: '!cancelled()' + +# +# 9) TAYLOR GREEN VORTEX KEP BR2 +# ----------------------------- + + - name: Build TaylorGreenKEP_BR2 + working-directory: ./Solver/test/NavierStokes/TaylorGreenKEP_BR2/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 TaylorGreenKEP_BR2 + working-directory: ./Solver/test/NavierStokes/TaylorGreenKEP_BR2 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns TaylorGreenKEP_BR2.control + if: '!cancelled()' + +# +# 10) TAYLOR GREEN VORTEX KEPEC IP +# ------------------------------- + + - name: Build TaylorGreenKEPEC_IP + working-directory: ./Solver/test/NavierStokes/TaylorGreenKEPEC_IP/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_IP + working-directory: ./Solver/test/NavierStokes/TaylorGreenKEPEC_IP + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns TaylorGreenKEPEC_IP.control + if: '!cancelled()' + +# +# 11) CYLINDER FAS +# --------------- + + - name: Build NSCylinderFAS + working-directory: ./Solver/test/NavierStokes/CylinderFAS/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 NSCylinderFAS + working-directory: ./Solver/test/NavierStokes/CylinderFAS + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderFAS.control + if: '!cancelled()' + +# +# 12) CYLINDER IP+BDF2 +# ------------------- + + #Deactivated because a mismatch in the accuracy + - name: Build NSCylinderIP_BDF2 + working-directory: ./Solver/test/NavierStokes/CylinderIP_BDF2/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 NSCylinderIP_BDF2 + working-directory: ./Solver/test/NavierStokes/CylinderIP_BDF2 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderIP_BDF2.control + if: '!cancelled()' + +# +# 13) CYLINDER DIFFERENT ORDERS +# ---------------------------- + + - name: Build NSCylinderDifferentOrders + working-directory: ./Solver/test/NavierStokes/CylinderDifferentOrders/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 NSCylinderDifferentOrders + working-directory: ./Solver/test/NavierStokes/CylinderDifferentOrders + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderDifferentOrders.control + if: '!cancelled()' + +# +# 14) ENTROPY CONSERVING TEST +# ---------------------------- + + - name: Build EntropyConservingTest + working-directory: ./Solver/test/NavierStokes/EntropyConservingTest/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 EntropyConservingTest + working-directory: ./Solver/test/NavierStokes/EntropyConservingTest + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns EntropyConservingTest.control + if: '!cancelled()' + +# +# 15) ENERGY CONSERVING TEST +# ---------------------------- + + - name: Build EnergyConservingTest + working-directory: ./Solver/test/NavierStokes/EnergyConservingTest/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 EnergyConservingTest + working-directory: ./Solver/test/NavierStokes/EnergyConservingTest + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns EnergyConservingTest.control + if: '!cancelled()' + +# +# 16) NACA0012 Steady +# ---------------------------- + + - name: Build NACA0012 + working-directory: ./Solver/test/NavierStokes/NACA0012/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 NACA0012 + working-directory: ./Solver/test/NavierStokes/NACA0012 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns NACA0012.control + if: '!cancelled()' + +# +# 17) NACA0012 Unsteady Dual Time Stepping +# ---------------------------- + + - name: Build DualTimeStepping + working-directory: ./Solver/test/NavierStokes/DualTimeStepping/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 DualTimeStepping + working-directory: ./Solver/test/NavierStokes/DualTimeStepping + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns DualTimeStepping.control + if: '!cancelled()' + +# +# 18) Manufactured Solution for Spalart-Almaras +# ---------------------------- + + - name: Build ManufacturedSolutionsSA + working-directory: ./Solver/test/NavierStokes/ManufacturedSolutionsSA/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 ManufacturedSolutionsSA + working-directory: ./Solver/test/NavierStokes/ManufacturedSolutionsSA + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.nssa MSSA.control + if: '!cancelled()' + +# +# 19) Flat-Plate test case for Spalart-Almaras +# ---------------------------- + + - name: Build FlatPlateSA + working-directory: ./Solver/test/NavierStokes/FlatPlateSA/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 FlatPlateSA + working-directory: ./Solver/test/NavierStokes/FlatPlateSA + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.nssa FlatPlate.control + if: '!cancelled()' + +# +# 20) Numerical Jacobian for BIRK5 +# -------------------------------- + + - name: Build BIRK5NumJac + working-directory: ./Solver/test/NavierStokes/BIRK5NumJac/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 BIRK5NumJac + working-directory: ./Solver/test/NavierStokes/BIRK5NumJac + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns Cylinder.control + if: '!cancelled()' + +# +# 21) Forward facing step with SVV +# -------------------------------- + + - name: Build ForwardFacingStepSVV + working-directory: ./Solver/test/NavierStokes/ForwardFacingStepSVV/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 ForwardFacingStepSVV + working-directory: ./Solver/test/NavierStokes/ForwardFacingStepSVV + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns FFS_SVV.control + if: '!cancelled()' + +# +# 20) Forward facing step with SSPRK33 and limiter +# ------------------------------------------------ + + - name: Build ForwardFacingStep_SSPRK33 + working-directory: ./Solver/test/NavierStokes/ForwardFacingStep_SSPRK33/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 ForwardFacingStep_SSPRK33 + working-directory: ./Solver/test/NavierStokes/ForwardFacingStep_SSPRK33 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns FFS_SSPRK33.control + if: '!cancelled()' + +# +# 21) Forward facing step with SSPRK43 +# ------------------------------------ + + - name: Build ForwardFacingStep_SSPRK43 + working-directory: ./Solver/test/NavierStokes/ForwardFacingStep_SSPRK43/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 ForwardFacingStep_SSPRK43 + working-directory: ./Solver/test/NavierStokes/ForwardFacingStep_SSPRK43 + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns FFS_SSPRK43.control + if: '!cancelled()' + +# +# 22) Taylor-Green vortex with SVV-LES +# ------------------------------------ + + - name: Build TaylorGreenSVVLES + working-directory: ./Solver/test/NavierStokes/TaylorGreenSVVLES/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 TaylorGreenSVVLES + working-directory: ./Solver/test/NavierStokes/TaylorGreenSVVLES + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns TaylorGreenSVVLES.control + if: '!cancelled()' + +# +# 23) CYLINDER ANIS FAS +# ------------------- + + - name: Build CylinderAnisFAS + working-directory: ./Solver/test/NavierStokes/CylinderAnisFAS/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 CylinderAnisFAS + working-directory: ./Solver/test/NavierStokes/CylinderAnisFAS + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderAnisFAS.control + if: '!cancelled()' + +# +# 24) IBM CYLINDER +# ------------------- + + - name: Build IBM_Cylinder + working-directory: ./Solver/test/NavierStokes/IBM_Cylinder/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 IBM_Cylinder + working-directory: ./Solver/test/NavierStokes/IBM_Cylinder + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns IBMCylinder.control + if: '!cancelled()' + +# +# 25) Mach 2 cylinder with GMM shock capturing +# -------------------------------------------- + + - name: Build CylinderGMM + working-directory: ./Solver/test/NavierStokes/CylinderGMM/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 CylinderGMM + working-directory: ./Solver/test/NavierStokes/CylinderGMM + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.ns CylinderGMM.control + if: '!cancelled()' + diff --git a/.github/workflows/CI_sequential_gnu_debug_multiphase.yml b/.github/workflows/CI_sequential 3.yml similarity index 77% rename from .github/workflows/CI_sequential_gnu_debug_multiphase.yml rename to .github/workflows/CI_sequential 3.yml index 805ed7467..d86cec5f8 100644 --- a/.github/workflows/CI_sequential_gnu_debug_multiphase.yml +++ b/.github/workflows/CI_sequential 3.yml @@ -1,15 +1,15 @@ # This is a basic workflow to help you get started with Actions -name: CI SEQUENTIAL GNU DEBUG MULTIPHASE +name: CI SEQ MULTIPHYSICS ######################################################################## # 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 ] + push: + branches: [ master ] + pull_request: + branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -27,12 +27,32 @@ jobs: strategy: fail-fast: false matrix: - compiler: ['gfortran'] - mode: ['DEBUG'] + compiler: ['gfortran', 'ifort'] + mode: ['RELEASE', 'DEBUG'] comm: ['SEQUENTIAL'] enable_threads: ['YES'] - mkl: ['NO'] - + 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: @@ -95,45 +115,73 @@ jobs: make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}} + ######################################################################## -####### MULTIPHASE ######## +####### PARTICLES ######## ######################################################################## + # -# 3) Pipe +# 1) FreeFall # ---------------------------- - - - name: Build MultiphasePipe - working-directory: ./Solver/test/Multiphase/Pipe/SETUP + - name: Build ParticlesFreeFall + working-directory: ./Solver/test/Particles/FreeFall/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 MultiphasePipe - working-directory: ./Solver/test/Multiphase/Pipe + - name: Run ParticlesFreeFall + working-directory: ./Solver/test/Particles/FreeFall run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu AnnularFlow.control + ./horses3d.ns FreeFall.control if: '!cancelled()' # -# 4) Entropy conserving test +# 2) RadiationHeat # ---------------------------- - - - name: Build MultiphaseEntropyConservingTest - working-directory: ./Solver/test/Multiphase/EntropyConservingTest/SETUP + - name: Build RadiationHeat + working-directory: ./Solver/test/Particles/RadiationHeat/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 MultiphaseEntropyConservingTest - working-directory: ./Solver/test/Multiphase/EntropyConservingTest + - name: Run RadiationHeat + working-directory: ./Solver/test/Particles/RadiationHeat run: | source /opt/intel/oneapi/setvars.sh || true - ./horses3d.mu EntropyConservingTest.control + ./horses3d.ns RadiationHeat.control if: '!cancelled()' +# +# 3) ParticleBoundaryCond +# ---------------------------- + # This case uses a random initialization that affects the solution. + # it only works in Alderaan + # - name: Build ParticleBoundaryCond + # working-directory: ./Solver/test/Particles/ParticleBoundaryCond/SETUP + # run: make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}} + + # - name: Run ParticleBoundaryCond + # working-directory: ./Solver/test/Particles/ParticleBoundaryCond + # run: ./horses3d.ns BoundaryCondition.control +# +# 4) Pouransari +# ---------------------------- + # This case uses a random initialization that affects the solution. + # it only works in Alderaan + # - name: Build Pouransari + # working-directory: ./Solver/test/Particles/Pouransari/SETUP + # run: make MODE=${{matrix.mode}} COMPILER=${{matrix.compiler}} COMM=${{matrix.comm}} ENABLE_THREADS=${{matrix.enable_threads}} WITH_MKL=${{matrix.mkl}} + + # - name: Run Pouransari + # working-directory: ./Solver/test/Particles/Pouransari + # run: ./horses3d.ns Pouransari_St0041.control + +######################################################################## +####### MULTIPHASE ######## +######################################################################## # # 1) Convergence # ---------------------------- @@ -170,6 +218,41 @@ jobs: ./horses3d.mu RisingBubble.control if: '!cancelled()' +# +# 3) Pipe +# ---------------------------- + + - name: Build MultiphasePipe + working-directory: ./Solver/test/Multiphase/Pipe/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 MultiphasePipe + working-directory: ./Solver/test/Multiphase/Pipe + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.mu AnnularFlow.control + if: '!cancelled()' + +# +# 4) Entropy conserving test +# ---------------------------- + + - name: Build MultiphaseEntropyConservingTest + working-directory: ./Solver/test/Multiphase/EntropyConservingTest/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 MultiphaseEntropyConservingTest + working-directory: ./Solver/test/Multiphase/EntropyConservingTest + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horses3d.mu EntropyConservingTest.control + if: '!cancelled()' ######################################################################## ####### INCOMPRESSIBLE ######## @@ -266,35 +349,3 @@ jobs: -######################################################################## -####### ADDONS ######## -######################################################################## -# -# 1) Mapping Result - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_MappingResult - working-directory: ./Solver/test/AddOns/horsesConverter/MappingResult - run: | - source /opt/intel/oneapi/setvars.sh || true - ./horsesConverter - if: '!cancelled()' - -# -# 2) Horses Mesh to OpenFOAM - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_HorsesMesh2OF - working-directory: ./Solver/test/AddOns/horsesConverter/HorsesMesh2OF - run: | - source /opt/intel/oneapi/setvars.sh || true - ./horsesConverter - if: '!cancelled()' - -# -# 3) OpenFOAM to Horses - horsesConverter -# -------------------------------------------- - - name: Run horsesConverter_OF2Horses - working-directory: ./Solver/test/AddOns/horsesConverter/OF2Horses - run: | - source /opt/intel/oneapi/setvars.sh || true - OMP_NUM_THREADS=4 ./horsesConverter - if: '!cancelled()' diff --git a/.github/workflows/CI_sequential 4.yml b/.github/workflows/CI_sequential 4.yml new file mode 100644 index 000000000..aac4793df --- /dev/null +++ b/.github/workflows/CI_sequential 4.yml @@ -0,0 +1,149 @@ +# This is a basic workflow to help you get started with Actions + +name: CI ADDONS + +######################################################################## +# 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}} + + +######################################################################## +####### ADDONS ######## +######################################################################## +# +# 1) Mapping Result - horsesConverter +# -------------------------------------------- + - name: Run horsesConverter_MappingResult + working-directory: ./Solver/test/AddOns/horsesConverter/MappingResult + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horsesConverter + if: '!cancelled()' + +# +# 2) Horses Mesh to OpenFOAM - horsesConverter +# -------------------------------------------- + - name: Run horsesConverter_HorsesMesh2OF + working-directory: ./Solver/test/AddOns/horsesConverter/HorsesMesh2OF + run: | + source /opt/intel/oneapi/setvars.sh || true + ./horsesConverter + if: '!cancelled()' + +# +# 3) OpenFOAM to Horses - horsesConverter +# -------------------------------------------- + - name: Run horsesConverter_OF2Horses + working-directory: ./Solver/test/AddOns/horsesConverter/OF2Horses + run: | + source /opt/intel/oneapi/setvars.sh || true + OMP_NUM_THREADS=4 ./horsesConverter + if: '!cancelled()' diff --git a/.github/workflows/CI_sequential.yml b/.github/workflows/old/CI_sequential latest before splitting.yml similarity index 100% rename from .github/workflows/CI_sequential.yml rename to .github/workflows/old/CI_sequential latest before splitting.yml