add MRTA to test suite for el calculation #45
Workflow file for this run
This file contains hidden or 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 | |
| cd path_lifetimes | |
| ../../../build/phoebe -in phononLifetimes.in | |
| cd ../ | |
| 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 | |
| cd path_lifetimes | |
| mpirun -np 4 --oversubscribe ../../../build/phoebe -in phononLifetimes.in | |
| cd ../ | |
| 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 | |
| cd path_lifetimes | |
| ../../../build/phoebe -in electronLifetimes.in | |
| cd ../ | |
| 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 | |
| cd path_lifetimes | |
| mpirun -np 4 --oversubscribe ../../../build/phoebe -in electronLifetimes.in | |
| cd ../ | |
| python3 reference/run_check.py | |
| mpirun -np 4 --oversubscribe ../../build/phoebe -ps 2 -in electronWannierTransport.in | |
| cd path_lifetimes | |
| mpirun -np 4 --oversubscribe ../../../build/phoebe -ps 2 -in electronLifetimes.in | |
| cd ../ | |
| python3 reference/run_check.py | |
| # run coupled BTE ------------------ | |
| - name: Run coupled BTE example with MPI | |
| if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'ON' && matrix.omp == 'OFF' }} | |
| working-directory: example/Silicon-coupled | |
| run: | | |
| mpirun -np 4 --oversubscribe ../../build/phoebe -in coupledTransport.in | |
| python3 reference/run_check.py | |
| - name: Run coupled BTE example without MPI | |
| if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'OFF' && matrix.omp == 'ON' }} | |
| working-directory: example/Silicon-coupled | |
| run: | | |
| mpirun -np 4 --oversubscribe ../../build/phoebe -in coupledTransport.in | |
| python3 reference/run_check.py | |
| # run rta kappa with phph and phel ------------------ | |
| - name: Run RTA kappa with phph and phel with MPI and OMP | |
| if: ${{ matrix.compiler == 'GCC' && matrix.mpi == 'ON' && matrix.omp == 'ON' }} | |
| working-directory: example/Silicon-ph/kappa_phph-phel/ | |
| run: | | |
| mpirun -np 2 --oversubscribe ../../../build/phoebe -in phononTransport.in | |
| python3 reference/run_check.py |