GQCP
Loading...
Searching...
No Matches
IntegralEngine.hpp
Go to the documentation of this file.
1// This file is part of GQCG-GQCP.
2//
3// Copyright (C) 2017-2020 the GQCG developers
4//
5// GQCG-GQCP is free software: you can redistribute it and/or modify
6// it under the terms of the GNU Lesser General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// GQCG-GQCP is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU Lesser General Public License for more details.
14//
15// You should have received a copy of the GNU Lesser General Public License
16// along with GQCG-GQCP. If not, see <http://www.gnu.org/licenses/>.
17
18#pragma once
19
20
35#include "Utilities/aliases.hpp"
36
37
38namespace GQCP {
39
40
45public:
46 /*
47 * MARK: GQCP ("In-house") integral engines
48 *
49 * These integral engines can only calculate integrals over Cartesian d-shells, not over spherical d-shells.
50 */
51
63 template <typename Shell>
65
67 }
68
69
81 template <typename Shell>
83
85 }
86
87
99 template <typename Shell>
101
103 }
104
105
117 template <typename Shell>
119
121 }
122
123
135 template <typename Shell>
137
139 }
140
141
153 template <typename Shell>
155
157 }
158
159
171 template <typename Shell>
173
175 };
176
177
189 template <typename Shell>
191
193 }
194
195
196 /*
197 * LIBINT
198 */
199
207 static auto Libint(const CoulombRepulsionOperator& op, const size_t max_nprim, const size_t max_l) -> LibintTwoElectronIntegralEngine<CoulombRepulsionOperator::NumberOfComponents>;
208
216 static auto Libint(const ElectronicDipoleOperator& op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine<ElectronicDipoleOperator::NumberOfComponents>;
217
225 static auto Libint(const NuclearAttractionOperator& op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine<NuclearAttractionOperator::NumberOfComponents>;
226
234 static auto Libint(const KineticOperator& op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine<KineticOperator::NumberOfComponents>;
235
243 static auto Libint(const OverlapOperator& op, const size_t max_nprim, const size_t max_l) -> LibintOneElectronIntegralEngine<OverlapOperator::NumberOfComponents>;
244
245
246 /*
247 * LIBCINT
248 */
249
257
265
273
281
289};
290
291
292} // namespace GQCP
Definition: AngularMomentumOperator.hpp:35
Definition: CoulombRepulsionOperator.hpp:31
Definition: ElectronicDipoleOperator.hpp:33
Definition: ElectronicQuadrupoleOperator.hpp:33
Definition: IntegralEngine.hpp:44
static auto InHouse(const LinearMomentumOperator &op) -> OneElectronIntegralEngine< PrimitiveLinearMomentumIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:100
static auto InHouse(const OverlapOperator &op) -> OneElectronIntegralEngine< PrimitiveOverlapIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:64
static auto InHouse(const ElectronicDipoleOperator &op) -> OneElectronIntegralEngine< PrimitiveElectronicDipoleIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:82
static auto InHouse(const ElectronicQuadrupoleOperator &op) -> OneElectronIntegralEngine< PrimitiveElectronicQuadrupoleIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:154
static auto InHouse(const NuclearAttractionOperator &op) -> OneElectronIntegralEngine< PrimitiveNuclearAttractionIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:172
static auto InHouse(const KineticOperator &op) -> OneElectronIntegralEngine< PrimitiveCanonicalKineticEnergyIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:118
static auto InHouse(const CoulombRepulsionOperator &op) -> TwoElectronIntegralEngine< PrimitiveCoulombRepulsionIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:190
static auto Libint(const CoulombRepulsionOperator &op, const size_t max_nprim, const size_t max_l) -> LibintTwoElectronIntegralEngine< CoulombRepulsionOperator::NumberOfComponents >
Definition: IntegralEngine.cpp:35
static auto Libcint(const CoulombRepulsionOperator &op, const ShellSet< GTOShell > &shell_set) -> LibcintTwoElectronIntegralEngine< GTOShell, CoulombRepulsionOperator::NumberOfComponents, double >
Definition: IntegralEngine.cpp:103
static auto InHouse(const AngularMomentumOperator &op) -> OneElectronIntegralEngine< PrimitiveAngularMomentumIntegralEngine< Shell > >
Definition: IntegralEngine.hpp:136
Definition: KineticOperator.hpp:31
Definition: LibcintOneElectronIntegralEngine.hpp:46
Definition: LibcintTwoElectronIntegralEngine.hpp:42
Definition: LibintOneElectronIntegralEngine.hpp:36
Definition: LibintTwoElectronIntegralEngine.hpp:35
Definition: LinearMomentumOperator.hpp:33
Definition: NuclearAttractionOperator.hpp:33
Definition: OneElectronIntegralEngine.hpp:35
Definition: OverlapOperator.hpp:31
Definition: PrimitiveAngularMomentumIntegralEngine.hpp:39
Definition: PrimitiveCanonicalKineticEnergyIntegralEngine.hpp:41
Definition: PrimitiveCoulombRepulsionIntegralEngine.hpp:42
Definition: PrimitiveElectronicDipoleIntegralEngine.hpp:42
Definition: PrimitiveElectronicQuadrupoleIntegralEngine.hpp:43
Definition: PrimitiveLinearMomentumIntegralEngine.hpp:38
Definition: PrimitiveNuclearAttractionIntegralEngine.hpp:40
Definition: PrimitiveOverlapIntegralEngine.hpp:43
Definition: ShellSet.hpp:41
Definition: TwoElectronIntegralEngine.hpp:35
Definition: BaseOneElectronIntegralBuffer.hpp:25