Skip to content

Commit f7fbe4b

Browse files
authored
Add documentation to build GauXC (#14)
- add installation instructions for GauXC library - with OpenMP - with MPI - with CUDA - list dependencies of GauXC (libtorch, ExchCXX, IntegratorXX, HDF5, HighFive, nlohmann_json, gau2grid, BLAS, ...) - add instructions for obtaining checkpoints from Huggingface - provide minimal example on how to use GauXC Skala library
1 parent b2a48a3 commit f7fbe4b

28 files changed

Lines changed: 1925 additions & 2 deletions

.github/workflows/examples.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Examples
2+
3+
on:
4+
push:
5+
branches: [ main, dev ]
6+
pull_request:
7+
branches: [ main, dev ]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
gauxc:
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
toolchain: ["openmp", "mpi"]
19+
gauxc: ["release", "main"]
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
path: skala
25+
26+
- name: Setup micromamba
27+
uses: mamba-org/setup-micromamba@v1
28+
with:
29+
environment-file: skala/examples/cpp/gauxc_integration/environment-${{ matrix.toolchain }}.yml
30+
environment-name: gauxc-dev
31+
cache-environment: true
32+
cache-downloads: true
33+
34+
- uses: actions/checkout@v4
35+
with:
36+
repository: wavefunction91/gauxc
37+
ref: skala
38+
path: gauxc
39+
40+
- name: Configure GauXC
41+
if: ${{ matrix.gauxc == 'release' }}
42+
run: >-
43+
cmake
44+
-B build_gauxc
45+
-S gauxc
46+
-G Ninja
47+
-DGAUXC_ENABLE_OPENMP=${{ matrix.toolchain == 'openmp' }}
48+
-DGAUXC_ENABLE_MPI=${{ matrix.toolchain == 'mpi' }}
49+
-DGAUXC_ENABLE_CUDA=${{ matrix.toolchain == 'cuda' }}
50+
-DGAUXC_ENABLE_ONEDFT=ON
51+
-DBUILD_SHARED_LIBS=ON
52+
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
53+
shell: micromamba-shell {0}
54+
55+
- name: Build GauXC
56+
if: ${{ matrix.gauxc == 'release' }}
57+
run: cmake --build build_gauxc
58+
shell: micromamba-shell {0}
59+
60+
- name: Install GauXC
61+
if: ${{ matrix.gauxc == 'release' }}
62+
run: cmake --install build_gauxc
63+
shell: micromamba-shell {0}
64+
65+
- name: Configure project
66+
run: >-
67+
cmake
68+
-B build_example
69+
-S skala/examples/cpp/gauxc_integration
70+
-G Ninja
71+
-DSkala_GauXC_ENABLE_OPENMP=${{ matrix.toolchain == 'openmp' }}
72+
-DSkala_GauXC_ENABLE_MPI=${{ matrix.toolchain == 'mpi' }}
73+
-DSkala_GauXC_ENABLE_CUDA=${{ matrix.toolchain == 'cuda' }}
74+
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
75+
shell: micromamba-shell {0}
76+
77+
- name: Build project
78+
run: cmake --build build_example
79+
shell: micromamba-shell {0}
80+
81+
- name: Install project
82+
run: cmake --install build_example
83+
shell: micromamba-shell {0}
84+
85+
- name: Run example
86+
run: >-
87+
Skala
88+
./gauxc/tests/ref_data/onedft_he_def2qzvp_tpss_uks.hdf5
89+
--model TPSS
90+
shell: micromamba-shell {0}

docs/_static/bib/gauxc.bib

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
@article{becke1988,
2+
title={A multicenter numerical integration scheme for polyatomic molecules},
3+
author={Becke, Axel D},
4+
journal={The Journal of chemical physics},
5+
volume={88},
6+
number={4},
7+
pages={2547--2553},
8+
year={1988},
9+
doi={10.1063/1.454033},
10+
publisher={American Institute of Physics}
11+
}
12+
13+
@article{mura1996,
14+
title={Improved radial grids for quadrature in molecular density-functional calculations},
15+
author={Mura, Michael E and Knowles, Peter J},
16+
journal={The Journal of Chemical Physics},
17+
volume={104},
18+
number={24},
19+
pages={9848--9858},
20+
year={1996},
21+
doi={10.1063/1.471749},
22+
publisher={AIP Publishing}
23+
}
24+
25+
@article{murray1993,
26+
title={Quadrature schemes for integrals of density functional theory},
27+
author={Murray, Christopher W and Handy, Nicholas C and Laming, Gregory J},
28+
journal={Molecular Physics},
29+
volume={78},
30+
number={4},
31+
pages={997--1014},
32+
year={1993},
33+
doi={10.1080/00268979300100651},
34+
publisher={Taylor \& Francis}
35+
}
36+
37+
@article{treutler1995,
38+
title={Efficient molecular numerical integration schemes},
39+
author={Treutler, Oliver and Ahlrichs, Reinhart},
40+
journal={The Journal of Chemical Physics},
41+
volume={102},
42+
number={1},
43+
pages={346--354},
44+
year={1995},
45+
doi={10.1063/1.469408},
46+
publisher={American Institute of Physics}
47+
}

docs/conf.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
extensions = [
88
"myst_nb",
99
"sphinx_book_theme",
10+
"sphinx_design",
1011
"sphinx.ext.autodoc",
12+
"sphinxcontrib.bibtex",
1113
]
1214

1315
nb_execution_timeout = 300 # 5 minutes, set to -1 for no timeout
1416
nb_merge_streams = True # Merge multiple outputs from the same cell into one box
1517

18+
bibtex_bibfiles = [
19+
"_static/bib/gauxc.bib",
20+
]
21+
1622
html_theme = "sphinx_book_theme"
1723
html_title = project
1824
html_logo = "_static/img/density.png"

0 commit comments

Comments
 (0)