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+ };
43+
44+ /* *
45+ * @brief Specifications of atomic partitioning scheme for the
46+ * molecular integration
47+ */
48+ enum GauXC_XCWeightAlg {
49+ GauXC_XCWeightAlg_NOTPARTITIONED, // /< Not partitioned
50+ GauXC_XCWeightAlg_Becke, // /< The original Becke weighting scheme
51+ GauXC_XCWeightAlg_SSF, // /< The Stratmann-Scuseria-Frisch weighting scheme
52+ GauXC_XCWeightAlg_LKO // /< The Lauqua-Kuessman-Ochsenfeld weighting scheme
53+ };
54+
55+ /* *
56+ * @brief Specification of the execution space for various operations
57+ */
58+ enum GauXC_ExecutionSpace {
59+ GauXC_ExecutionSpace_Host, // /< Execute task on the host
60+ GauXC_ExecutionSpace_Device // /< Execute task on the device (e.g. GPU)
61+ };
62+
63+ // / Supported Algorithms / Integrands
64+ enum GauXC_SupportedAlg {
65+ GauXC_SupportedAlg_XC, // /< Exchange-correlation integration
66+ GauXC_SupportedAlg_DEN, // /< Density integration
67+ GauXC_SupportedAlg_SNLINK // /< Seminumerical Coulomb/exchange (snLinK)
68+ };
69+
70+ // / High-level specification of pruning schemes for atomic quadratures
71+ enum GauXC_PruningScheme {
72+ GauXC_PruningScheme_Unpruned, // /< Unpruned atomic quadrature
73+ GauXC_PruningScheme_Robust, // /< The "Robust" scheme of Psi4
74+ GauXC_PruningScheme_Treutler // /< The Treutler-Ahlrichs scheme
75+ };
76+
77+
78+ #ifdef __cplusplus
79+ } // namespace GauXC::C
80+ } // extern "C"
81+ #endif
0 commit comments