1+ /* *
2+ * GauXC Copyright (c) 2020-2024, The Regents of the University of California,
3+ * through Lawrence Berkeley National Laboratory (subject to receipt of
4+ * any required approvals from the U.S. Dept. of Energy).
5+ *
6+ * (c) 2024-2025, Microsoft Corporation
7+ *
8+ * All rights reserved.
9+ *
10+ * See LICENSE.txt for details
11+ */
12+ #pragma once
13+
14+ #ifdef __cplusplus
15+ extern " C" {
16+ namespace GauXC ::C {
17+ #endif
18+
19+ /* *
20+ * @brief GauXC specific enums for the specification of radial quadratures
21+ *
22+ * Generally mapped to equivalent enums in IntegratorXX
23+ */
24+ enum GauXC_RadialQuad {
25+ GauXC_RadialQuad_Becke, // /< Becke radial quadrature
26+ GauXC_RadialQuad_MuraKnowles, // /< Mura-Knowles radial quadrature
27+ GauXC_RadialQuad_MurrayHandyLaming, // /< Murray-Handy-Laming radial quadrature
28+ GauXC_RadialQuad_TreutlerAhlrichs // /< Treutler-Ahlrichs radial quadrature
29+ };
30+
31+ /* *
32+ * @brief Specifications of grid defaults for atomic integration
33+ *
34+ * See https://gaussian.com/integral for specification
35+ */
36+ enum GauXC_AtomicGridSizeDefault {
37+ GauXC_AtomicGridSizeDefault_FineGrid, // /< Fine grid (least accurate)
38+ GauXC_AtomicGridSizeDefault_UltraFineGrid, // /< Ultrafine grid (appropriate accuracy)
39+ GauXC_AtomicGridSizeDefault_SuperFineGrid, // /< Superfine grid (most accurate)
40+ GauXC_AtomicGridSizeDefault_GM3, // /< Treutler-Ahlrichs GM3
41+ GauXC_AtomicGridSizeDefault_GM5, // /< Treutler-Ahlrichs GM5
42+ GauXC_AtomicGridSizeDefault_PySCF0, // /< PySCF default level 0
43+ GauXC_AtomicGridSizeDefault_PySCF1, // /< PySCF default level 1
44+ GauXC_AtomicGridSizeDefault_PySCF2, // /< PySCF default level 2 (angular points ~ fine grid)
45+ GauXC_AtomicGridSizeDefault_PySCF3, // /< PySCF default level 3
46+ GauXC_AtomicGridSizeDefault_PySCF4, // /< PySCF default level 4 (radial points ~ fine grid, angular points ~ ultrafine grid)
47+ GauXC_AtomicGridSizeDefault_PySCF5, // /< PySCF default level 5
48+ GauXC_AtomicGridSizeDefault_PySCF6, // /< PySCF default level 6 (radial points ~ ultrafine grid, angular points ~ superfine grid)
49+ GauXC_AtomicGridSizeDefault_PySCF7, // /< PySCF default level 7
50+ GauXC_AtomicGridSizeDefault_PySCF8, // /< PySCF default level 8
51+ GauXC_AtomicGridSizeDefault_PySCF9 // /< PySCF default level 9 (radial points ~ superfine grid)
52+ };
53+
54+ /* *
55+ * @brief Specifications of atomic partitioning scheme for the
56+ * molecular integration
57+ */
58+ enum GauXC_XCWeightAlg {
59+ GauXC_XCWeightAlg_NOTPARTITIONED, // /< Not partitioned
60+ GauXC_XCWeightAlg_Becke, // /< The original Becke weighting scheme
61+ GauXC_XCWeightAlg_SSF, // /< The Stratmann-Scuseria-Frisch weighting scheme
62+ GauXC_XCWeightAlg_LKO // /< The Lauqua-Kuessman-Ochsenfeld weighting scheme
63+ };
64+
65+ /* *
66+ * @brief Specification of the execution space for various operations
67+ */
68+ enum GauXC_ExecutionSpace {
69+ GauXC_ExecutionSpace_Host, // /< Execute task on the host
70+ GauXC_ExecutionSpace_Device // /< Execute task on the device (e.g. GPU)
71+ };
72+
73+ // / Supported Algorithms / Integrands
74+ enum GauXC_SupportedAlg {
75+ GauXC_SupportedAlg_XC, // /< Exchange-correlation integration
76+ GauXC_SupportedAlg_DEN, // /< Density integration
77+ GauXC_SupportedAlg_SNLINK // /< Seminumerical Coulomb/exchange (snLinK)
78+ };
79+
80+ // / High-level specification of pruning schemes for atomic quadratures
81+ enum GauXC_PruningScheme {
82+ GauXC_PruningScheme_Unpruned, // /< Unpruned atomic quadrature
83+ GauXC_PruningScheme_Robust, // /< The "Robust" scheme of Psi4
84+ GauXC_PruningScheme_Treutler // /< The Treutler-Ahlrichs scheme
85+ };
86+
87+
88+ #ifdef __cplusplus
89+ } // namespace GauXC::C
90+ } // extern "C"
91+ #endif
0 commit comments