Skip to content

flare

flare #469

Workflow file for this run

name: flare
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
schedule:
- cron: '0 0 * * 0'
jobs:
build:
strategy:
matrix:
omp: [OFF, ON]
lapack: [OFF, ON]
python-version: ["3.7", "3.8"]
name: "(OpenMP, Lapack, Python) ="
runs-on: ubuntu-latest
env:
BUILD_DIR: build_${{ matrix.omp }}_${{ matrix.lapack }}
CC: gcc-9
CXX: g++-9
steps:
- 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: 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: Run Doxygen
uses: mattnotmitt/[email protected]
with:
doxyfile-path: "./Doxyfile"
working-directory: "./docs"
- name: Run Sphinx
run: |
sudo apt-get install pandoc
export PYTHONPATH=$PYTHONPATH:$PWD/lammps/python
cd docs
pwd
ls
make html
- name: Publish the docs
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/build/html
if: github.event_name == 'pull_request' && matrix.lapack == 'on' && matrix.omp == 'on'