small change to remove testing statement in drag terms #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Test (Push) | |
on: [push] | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
omp: [ON,OFF] | |
mpi: [ON,OFF] | |
compiler: | |
[ "GCC" ] | |
env: | |
OMP_NUM_THREADS: 4 | |
name: "Ubuntu 24.04 ( ${{ matrix.compiler }} OpenMP ( ${{ matrix.omp }} ) , MPI ( ${{ matrix.mpi }} ))" | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt install -y libopenblas-dev liblapack-dev libhdf5-dev libhdf5-openmpi-dev libscalapack-openmpi-dev python3-pip gfortran cmake -o Acquire::Retries=3 --fix-missing | |
pip3 install numpy --break-system-packages | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: "Set up output var: CC_VERSION" | |
id: extract_matrix | |
run: | | |
CC_VERSION=$( echo "${{ matrix.compiler }}" | awk '{ print $2; }') | |
echo "CC_VERSION=${CC_VERSION}" >> "$GITHUB_OUTPUT" | |
- name: Install GCC | |
if: ${{ startsWith(matrix.compiler, 'GCC') }} | |
run: sudo apt install -y g++ #-${{ steps.extract_matrix.outputs.CC_VERSION }} | |
- name: Install Clang | |
if: ${{ startsWith(matrix.compiler, 'Clang') }} | |
run: | | |
sudo apt install -y clang #-${{ steps.extract_matrix.outputs.CC_VERSION }} | |
sudo apt install -y libomp-dev #${{ steps.extract_matrix.outputs.CC_VERSION }}-dev | |
- name: Configure | |
run: | | |
CC_NAME=$(echo "${{ matrix.compiler }}" | awk '{ print tolower($1); }') | |
CC_VER=$( echo "${{ matrix.compiler }}" | awk '{ print $2; }') | |
test "${CC_NAME}" = "gcc" && CC_EXE="g++" | |
test "${CC_NAME}" = "clang" && CC_EXE="clang++" | |
cmake -S . -B build -DCMAKE_CXX_COMPILER="${CC_EXE}" -DOMP_AVAIL=${{ matrix.omp }} -DKokkos_ENABLE_OPENMP=${{ matrix.omp }} -DMPI_AVAIL=${{ matrix.mpi }} -DHDF5_AVAIL=ON | |
- name: Build | |
run: cmake --build build -- -j4 | |
- name: Build Test | |
run: cmake --build build --target runTests | |
- name: RunTests | |
run: | | |
cd build | |
./runTests | |
- name: Download test data | |
if: ${{ matrix.compiler == 'GCC' }} | |
run: | | |
wget github.com/mir-group/phoebe-data/archive/master.zip | |
unzip -j master.zip "phoebe-data-master/example/Silicon-ph/qe-phonons/*" -d "example/Silicon-ph/qe-phonons" | |
unzip -j master.zip "phoebe-data-master/example/Silicon-ph/qe-ph-anharmonic/*" -d "example/Silicon-ph/thirdorder.py-anharmonic" | |
unzip -j master.zip "phoebe-data-master/example/Silicon-el/qe-elph/*" -d "example/Silicon-el/qe-elph" | |
unzip 'example/Silicon-el/qe-elph/silicon.phoebe.*.dat.zip' -d example/Silicon-el/qe-elph/ | |
cp example/Silicon-el/qe-elph/* example/Silicon-epa/qe-elph | |
mkdir example/Silicon-epa/qe-elph/out | |
unzip -j master.zip "phoebe-data-master/example/Silicon-epa/qe-elph/out/*" -d "example/Silicon-epa/qe-elph/out" | |
- name: Run epa example without MPI | |
if: ${{ matrix.compiler == 'GCC' }} | |
working-directory: example/Silicon-epa | |
run: | | |
../../build/phoebe -in qeToPhoebeEPA.in | |
../../build/phoebe -in epaTransport.in | |
../../build/phoebe -in electronFourierBands.in | |
../../build/phoebe -in electronFourierDos.in | |
python3 reference/run_check.py | |
- name: Run epa example with MPI | |
if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'ON'}} | |
working-directory: example/Silicon-epa | |
run: | | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in epaTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronFourierBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronFourierDos.in | |
python3 reference/run_check.py | |
- name: Run ph example without MPI | |
if: ${{ matrix.compiler == 'GCC' }} | |
working-directory: example/Silicon-ph | |
run: | | |
../../build/phoebe -in phononTransport.in | |
../../build/phoebe -in phononBands.in | |
../../build/phoebe -in phononDos.in | |
../../build/phoebe -in phononLifetimes.in | |
python3 reference/run_check.py | |
- name: Run ph example with MPI | |
if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'ON' }} | |
working-directory: example/Silicon-ph | |
run: | | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononDos.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononLifetimes.in | |
python3 reference/run_check.py | |
- name: Run el example without MPI | |
if: ${{ matrix.compiler == 'GCC' }} | |
working-directory: example/Silicon-el | |
run: | | |
../../build/phoebe -in qeToPhoebeWannier.in | |
../../build/phoebe -in electronWannierTransport.in | |
../../build/phoebe -in electronWannierBands.in | |
../../build/phoebe -in electronWannierDos.in | |
../../build/phoebe -in electronLifetimes.in | |
python3 reference/run_check.py | |
- name: Run el example with MPI | |
if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'ON' }} | |
working-directory: example/Silicon-el | |
run: | | |
# Note: don't run this as it runs out-of-memory on the VM | |
#mpirun -np 4 --oversubscribe ../../build/phoebe -in qeToPhoebeWannier.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierDos.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronLifetimes.in | |
python3 reference/run_check.py | |
mpirun -np 4 --oversubscribe ../../build/phoebe -ps 2 -in electronWannierTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -ps 2 -in electronLifetimes.in | |
python3 reference/run_check.py |