Skip to content

236 investigate and separate current dependencies between observations module and the rest of the solver #601

236 investigate and separate current dependencies between observations module and the rest of the solver

236 investigate and separate current dependencies between observations module and the rest of the solver #601

Workflow file for this run

name: ubuntu
on:
push:
branches:
- main
pull_request:
branches:
- main
- dev
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
builds-and-test:
strategy:
matrix:
os: [ubuntu-latest]
compiler: [
{name: 'intel', version: '2025.1'},
{name: 'gcc', version: 11}
]
build-type: ["Release"]
mpi: ["Yes", "No"]
mtln: ["Yes", "No"]
hdf: ["Yes"]
double-precision: ["No"]
include:
- os: ubuntu-22.04
compiler: {name: 'intel-classic', version: '2021.10'}
build-type: "Release"
mpi: "No"
mtln: "No"
hdf: "Yes"
double-precision: "No"
# - os: ubuntu-22.04
# compiler: {name: 'intel-classic', version: '2021.10'}
# build-type: "Release"
# mpi: "No"
# mtln: "Yes"
# hdf: "Yes"
# double-precision: "No"
# Disable by lack of space on github action
# - os: ubuntu-latest
# compiler: {name: 'nvidia-hpc', version: '24.5'}
# build-type: "Release"
# mpi: "No"
# mtln: "No"
# hdf: "No"
# double-precision: "No"
- os: ubuntu-latest # This is the only test with double precision.
compiler: {name: 'intel', version: '2025.1'}
build-type: "Release"
mpi: "Yes"
mtln: "No"
hdf: "Yes"
double-precision: "Yes"
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{matrix.os}} / ${{matrix.compiler.name}} / ${{matrix.build-type}}-mpi(${{matrix.mpi}})-mtln(${{matrix.mtln}})-hdf(${{matrix.hdf}})-double(${{matrix.double-precision}})
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install python wrapper requirements
run: python -m pip install -r requirements.txt
- name: Setup MPI
if: matrix.mpi=='Yes' && matrix.compiler.name=='intel'
uses: mpi4py/setup-mpi@v1
with:
mpi: 'intelmpi'
- name: Install gcc required packages
if: matrix.compiler.name=='gcc'
run: |
sudo apt update
sudo apt install libhdf5-dev libopenmpi-dev
- name: Setup fortran compiler
uses: fortran-lang/setup-fortran@v1
id: setup-fortran
with:
compiler: ${{matrix.compiler.name}}
version: ${{matrix.compiler.version}}
- name: Build application
run: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=${{matrix.build-type}} \
-DSEMBA_FDTD_ENABLE_MPI=${{matrix.mpi}} \
-DSEMBA_FDTD_ENABLE_HDF=${{matrix.hdf}} \
-DSEMBA_FDTD_ENABLE_MTLN=${{matrix.mtln}} \
-DSEMBA_FDTD_ENABLE_DOUBLE_PRECISION=${{matrix.double-precision}}
cmake --build build -j
- name: Run unit tests
run: build/bin/fdtd_tests
- name: Run python tests
env:
SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }}
SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }}
SEMBA_FDTD_ENABLE_HDF: ${{ matrix.hdf }}
run: python -m pytest test/