From 49a7edde2e4dd6d4560b91eaf5ed4ee3040e901b Mon Sep 17 00:00:00 2001 From: Jonathan Vandermause Date: Mon, 16 Sep 2024 16:33:43 -0400 Subject: [PATCH] full build --- .github/workflows/flare.yml | 171 +++++++++++++++++------------------- 1 file changed, 80 insertions(+), 91 deletions(-) diff --git a/.github/workflows/flare.yml b/.github/workflows/flare.yml index cae76c36..7cc108a0 100644 --- a/.github/workflows/flare.yml +++ b/.github/workflows/flare.yml @@ -1,12 +1,8 @@ -# Adapted from: https://github.com/satu0king/Github-Documentation-With-Doxygen -# This is a basic workflow to help you get started with Actions - name: flare on: [push, pull_request] jobs: - # This workflow contains a single job called "build" build: strategy: matrix: @@ -15,7 +11,6 @@ jobs: python-version: ["3.8"] name: "(OpenMP, Lapack, Python) =" - # The type of runner that the job will run on runs-on: ubuntu-latest env: @@ -23,107 +18,103 @@ jobs: CC: gcc-9 CXX: g++-9 - # 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@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - # - name: Build - # run: | - # sudo apt install liblapacke liblapacke-dev libopenmpi-dev - # mkdir ${BUILD_DIR} - # cd ${BUILD_DIR} - - # if [ "${{ matrix.omp }}" = "ON" ]; then - # unset NO_OMP - # else - # export NO_OMP=1 - # fi - - # if [ "${{ matrix.lapack }}" = "ON" ]; then - # unset NO_LAPACK - # else - # export NO_LAPACK=1 - # fi - - # echo "OpenMP ${{ matrix.omp }}" - # echo "Lapack ${{ matrix.lapack }}" - - # cmake .. - # cmake --build . -j4 - # cd ctests - # ./tests - - # - name: Install LAMMPS - # run: | - # git clone --depth 1 https://github.com/lammps/lammps.git lammps - - # cd lammps/src - # cp pair_hybrid.* pair_lj_cut.* .. - # rm pair_*.cpp pair_*.h - # mv ../pair_hybrid.* ../pair_lj_cut.* . - # cp MANYBODY/pair_tersoff.* . - # rm MANYBODY/pair_*.* - # rm MANYBODY/fix_*.* - # mv pair_tersoff.* MANYBODY/ - # cp KOKKOS/pair_kokkos.* . - # rm KOKKOS/pair_*.* - # mv pair_kokkos.* KOKKOS/ - # cd ../.. - - # cd lammps_plugins - # ./install.sh $(pwd)/../lammps - # cd .. - # sudo cp -r ${BUILD_DIR}/External/Eigen3/Eigen /usr/include - # cd lammps - # mkdir build - # cd build - # cmake ../cmake -DPKG_KOKKOS=ON -DKokkos_ENABLE_OPENMP=ON -DPKG_MANYBODY=ON - # make -j4 + - name: Build + run: | + sudo apt install liblapacke liblapacke-dev libopenmpi-dev + mkdir ${BUILD_DIR} + cd ${BUILD_DIR} + + if [ "${{ matrix.omp }}" = "ON" ]; then + unset NO_OMP + else + export NO_OMP=1 + fi + + if [ "${{ matrix.lapack }}" = "ON" ]; then + unset NO_LAPACK + else + export NO_LAPACK=1 + fi + + echo "OpenMP ${{ matrix.omp }}" + echo "Lapack ${{ matrix.lapack }}" + + cmake .. + cmake --build . -j4 + cd ctests + ./tests + + - name: Install LAMMPS + run: | + git clone --depth 1 https://github.com/lammps/lammps.git lammps + + cd lammps/src + cp pair_hybrid.* pair_lj_cut.* .. + rm pair_*.cpp pair_*.h + mv ../pair_hybrid.* ../pair_lj_cut.* . + cp MANYBODY/pair_tersoff.* . + rm MANYBODY/pair_*.* + rm MANYBODY/fix_*.* + mv pair_tersoff.* MANYBODY/ + cp KOKKOS/pair_kokkos.* . + rm KOKKOS/pair_*.* + mv pair_kokkos.* KOKKOS/ + cd ../.. + + cd lammps_plugins + ./install.sh $(pwd)/../lammps + cd .. + sudo cp -r ${BUILD_DIR}/External/Eigen3/Eigen /usr/include + cd lammps + mkdir build + cd build + cmake ../cmake -DPKG_KOKKOS=ON -DKokkos_ENABLE_OPENMP=ON -DPKG_MANYBODY=ON + make -j4 - name: Pip install run: | pip install -e .[docs,tests] - # - name: Patch ASE - # run: | - # ase_file="$(dirname $(python3 -c 'import ase; print(ase.__file__)'))/calculators/lammpsrun.py" - # sed -i 's/line.startswith(_custom_thermo_mark)/line.strip\(\).startswith\("Step"\)/g' $ase_file - - # - name: Run tests - # run: | - # export lmp=$(pwd)/lammps/build/lmp - # cd tests - # pytest - - # - name: Run LAMMPS tests with Kokkos - # run: | - # export lmp="$(pwd)/lammps/build/lmp -k on t 4 -sf kk -pk kokkos newton on neigh full" - # cd tests - # pytest test_lammps.py - - # - name: Run tutorial - # run: | - # pip install -U jupyter nbconvert - # cp tutorials/sparse_gp_tutorial.ipynb tutorial.ipynb - # jupyter nbconvert --to script tutorial.ipynb - # sed -i '/^get_ipython()/s/^/# /' tutorial.py - # sed -i '/^plt/s/^/# /' tutorial.py - # wget http://quantum-machine.org/gdml/data/npz/md17_aspirin.npz - # wget https://www.ctcms.nist.gov/potentials/Download/1999--Mishin-Y-Farkas-D-Mehl-M-J-Papaconstantopoulos-D-A--Al/2/Al99.eam.alloy - # python tutorial.py - # rm Al* aluminum.txt aspirin.txt md17_aspirin.npz tutorial.ipynb tutorial.py + - name: Patch ASE + run: | + ase_file="$(dirname $(python3 -c 'import ase; print(ase.__file__)'))/calculators/lammpsrun.py" + sed -i 's/line.startswith(_custom_thermo_mark)/line.strip\(\).startswith\("Step"\)/g' $ase_file + + - name: Run tests + run: | + export lmp=$(pwd)/lammps/build/lmp + cd tests + pytest + + - name: Run LAMMPS tests with Kokkos + run: | + export lmp="$(pwd)/lammps/build/lmp -k on t 4 -sf kk -pk kokkos newton on neigh full" + cd tests + pytest test_lammps.py + + - name: Run tutorial + run: | + pip install -U jupyter nbconvert + cp tutorials/sparse_gp_tutorial.ipynb tutorial.ipynb + jupyter nbconvert --to script tutorial.ipynb + sed -i '/^get_ipython()/s/^/# /' tutorial.py + sed -i '/^plt/s/^/# /' tutorial.py + wget http://quantum-machine.org/gdml/data/npz/md17_aspirin.npz + wget https://www.ctcms.nist.gov/potentials/Download/1999--Mishin-Y-Farkas-D-Mehl-M-J-Papaconstantopoulos-D-A--Al/2/Al99.eam.alloy + python tutorial.py + rm Al* aluminum.txt aspirin.txt md17_aspirin.npz tutorial.ipynb tutorial.py - name: Run Doxygen uses: mattnotmitt/doxygen-action@v1.9.8 with: - # Path to Doxyfile doxyfile-path: "./Doxyfile" # default is ./Doxyfile - # Working directory working-directory: "./docs" # default is . - name: Run Sphinx @@ -140,7 +131,5 @@ jobs: uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} - # Default Doxyfile build documentation to html directory. - # Change the directory if changes in Doxyfile publish_dir: ./docs/build/html if: github.event_name == 'pull_request' && matrix.lapack == 'on' && matrix.omp == 'on'