LIBINT 2.7.2
master_rrs_list.h
1/*
2 * Copyright (C) 2004-2021 Edward F. Valeev
3 *
4 * This file is part of Libint.
5 *
6 * Libint is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * Libint is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with Libint. If not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21#ifndef _libint2_src_bin_libint_masterrrslist_h_
22#define _libint2_src_bin_libint_masterrrslist_h_
23
24#include <boost/mpl/list.hpp>
25
26#include <libint2/config.h>
27#include <master_ints_list.h>
28#include <hrr.h>
29#include <vrr_1_onep_1.h>
30#include <vrr_11_twoprep_11.h>
31#include <vrr_11_r12kg12_11.h>
32#include <itr_11_twoprep_11.h>
33#include <comp_11_r12kr12lg12_11.h>
34#include <comp_11_tig12_11.h>
35#include <comp_11_g12tig12_11.h>
36#include <comp_11_DivG12prime_xTx_11.h>
37#include <comp_deriv_gauss.h>
38#include <comp_xyz.h>
39#include <generic_rr.h>
40
41// master list of types and typedefs that describe capabilities of Libint2
42// should not be used unless absolutely necessary.
43// exception: strategy.cc and build_libint.cc, which depend on the entire typelist
44
45namespace libint2 {
46
47 // skip derivatives with respect to B in (A|B)
48 constexpr auto trinvskip1_part = 0;
49 constexpr auto trinvskip1_where = InKet;
50 // skip derivatives with respect to C or D in (AB|CD)
51 constexpr auto trinvskip2_part = 1;
52 constexpr auto trinvskip2_where = (LIBINT_SHELL_SET == LIBINT_SHELL_SET_ORCA) ? InKet : InBra;
53
55 // RRs
57 typedef HRR<TwoPRep_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_TwoPRep_11_sh;
58 typedef HRR<TwoPRep_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_TwoPRep_11_sh;
59 typedef HRR<TwoPRep_11_11_sq,CGShell,0,InKet,0,InBra,0> HRR_ba_11_TwoPRep_11_sh;
60 typedef HRR<TwoPRep_11_11_sq,CGShell,1,InKet,0,InBra,0> HRR_dc_11_TwoPRep_11_sh;
61 typedef HRR<R12kG12_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_R12kG12_11_sh;
62 typedef HRR<R12kG12_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_R12kG12_11_sh;
63 typedef HRR<R12kG12_11_11_sq,CGShell,0,InKet,0,InBra,0> HRR_ba_11_R12kG12_11_sh;
64 typedef HRR<R12kG12_11_11_sq,CGShell,1,InKet,0,InBra,0> HRR_dc_11_R12kG12_11_sh;
65 typedef HRR<R12kR12lG12_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_R12kR12lG12_11_sh;
66 typedef HRR<R12kR12lG12_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_R12kR12lG12_11_sh;
67 typedef HRR<TiG12_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_TiG12_11_sh;
68 typedef HRR<TiG12_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_TiG12_11_sh;
69 typedef HRR<G12TiG12_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_G12TiG12_11_sh;
70 typedef HRR<G12TiG12_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_G12TiG12_11_sh;
71 typedef HRR<DivG12prime_xTx_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_DivG12prime_xTx_sh;
72 typedef HRR<DivG12prime_xTx_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_DivG12prime_xTx_sh;
73
74 typedef HRR<TwoPRep_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_TwoPRep_11_int;
75 typedef HRR<TwoPRep_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_TwoPRep_11_int;
76 typedef HRR<TwoPRep_11_11_int,CGF,0,InKet,0,InBra,0> HRR_ba_11_TwoPRep_11_int;
77 typedef HRR<TwoPRep_11_11_int,CGF,1,InKet,0,InBra,0> HRR_dc_11_TwoPRep_11_int;
78 typedef HRR<R12kG12_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_R12kG12_11_int;
79 typedef HRR<R12kG12_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_R12kG12_11_int;
80 typedef HRR<R12kG12_11_11_int,CGF,0,InKet,0,InBra,0> HRR_ba_11_R12kG12_11_int;
81 typedef HRR<R12kG12_11_11_int,CGF,1,InKet,0,InBra,0> HRR_dc_11_R12kG12_11_int;
82 typedef HRR<R12kR12lG12_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_R12kR12lG12_11_int;
83 typedef HRR<R12kR12lG12_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_R12kR12lG12_11_int;
84 typedef HRR<TiG12_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_TiG12_11_int;
85 typedef HRR<TiG12_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_TiG12_11_int;
86 typedef HRR<G12TiG12_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_G12TiG12_11_int;
87 typedef HRR<G12TiG12_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_G12TiG12_11_int;
88 typedef HRR<DivG12prime_xTx_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_DivG12prime_xTx_int;
89 typedef HRR<DivG12prime_xTx_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_DivG12prime_xTx_int;
90
91 typedef HRR<DummySymmIntegral_11_11_sq,CGShell,0,InBra,0,InKet,0> HRR_ab_11_Dummy_11_sh;
92 typedef HRR<DummySymmIntegral_11_11_sq,CGShell,1,InBra,0,InKet,0> HRR_cd_11_Dummy_11_sh;
93 typedef HRR<DummySymmIntegral_11_11_sq,CGShell,0,InKet,0,InBra,0> HRR_ba_11_Dummy_11_sh;
94 typedef HRR<DummySymmIntegral_11_11_sq,CGShell,1,InKet,0,InBra,0> HRR_dc_11_Dummy_11_sh;
95 typedef HRR<DummySymmIntegral_11_11_int,CGF,0,InBra,0,InKet,0> HRR_ab_11_Dummy_11_int;
96 typedef HRR<DummySymmIntegral_11_11_int,CGF,1,InBra,0,InKet,0> HRR_cd_11_Dummy_11_int;
97 typedef HRR<DummySymmIntegral_11_11_int,CGF,0,InKet,0,InBra,0> HRR_ba_11_Dummy_11_int;
98 typedef HRR<DummySymmIntegral_11_11_int,CGF,1,InKet,0,InBra,0> HRR_dc_11_Dummy_11_int;
99
100#if LIBINT_SUPPORT_ONEBODYINTS
101 typedef HRR<Overlap_1_1_sh,CGShell,0,InBra,0,InKet,0> HRR_ab_1_Overlap_1_sh;
102 typedef HRR<Overlap_1_1_int,CGF,0,InBra,0,InKet,0> HRR_ab_1_Overlap_1_int;
103 typedef HRR<Overlap_1_1_sh,CGShell,0,InKet,0,InBra,0> HRR_ba_1_Overlap_1_sh;
104 typedef HRR<Overlap_1_1_int,CGF,0,InKet,0,InBra,0> HRR_ba_1_Overlap_1_int;
105
106 typedef HRR<ElecPot_1_1_sh,CGShell,0,InBra,0,InKet,0> HRR_ab_1_ElecPot_1_sh;
107 typedef HRR<ElecPot_1_1_int,CGF,0,InBra,0,InKet,0> HRR_ab_1_ElecPot_1_int;
108 typedef HRR<ElecPot_1_1_sh,CGShell,0,InKet,0,InBra,0> HRR_ba_1_ElecPot_1_sh;
109 typedef HRR<ElecPot_1_1_int,CGF,0,InKet,0,InBra,0> HRR_ba_1_ElecPot_1_int;
110
111 typedef VRR_1_Overlap_1<CGShell,InBra> VRR_a_1_Overlap_1_sh;
112 typedef VRR_1_Overlap_1<CGF,InBra> VRR_a_1_Overlap_1_int;
113 typedef VRR_1_Overlap_1<CGShell,InKet> VRR_b_1_Overlap_1_sh;
114 typedef VRR_1_Overlap_1<CGF,InKet> VRR_b_1_Overlap_1_int;
115
116 typedef VRR_1_Overlap_1_1d<CartesianAxis_X,InBra> VRR_a_1_Overlap_1_int_x;
117 typedef VRR_1_Overlap_1_1d<CartesianAxis_Y,InBra> VRR_a_1_Overlap_1_int_y;
118 typedef VRR_1_Overlap_1_1d<CartesianAxis_Z,InBra> VRR_a_1_Overlap_1_int_z;
119 typedef VRR_1_Overlap_1_1d<CartesianAxis_X,InKet> VRR_b_1_Overlap_1_int_x;
120 typedef VRR_1_Overlap_1_1d<CartesianAxis_Y,InKet> VRR_b_1_Overlap_1_int_y;
121 typedef VRR_1_Overlap_1_1d<CartesianAxis_Z,InKet> VRR_b_1_Overlap_1_int_z;
122
123 typedef VRR_1_Kinetic_1<CGShell,InBra> VRR_a_1_Kinetic_1_sh;
124 typedef VRR_1_Kinetic_1<CGF,InBra> VRR_a_1_Kinetic_1_int;
125 typedef VRR_1_Kinetic_1<CGShell,InKet> VRR_b_1_Kinetic_1_sh;
126 typedef VRR_1_Kinetic_1<CGF,InKet> VRR_b_1_Kinetic_1_int;
127
128 typedef VRR_1_ElecPot_1<CGShell,InBra> VRR_a_1_ElecPot_1_sh;
129 typedef VRR_1_ElecPot_1<CGF,InBra> VRR_a_1_ElecPot_1_int;
130 typedef VRR_1_ElecPot_1<CGShell,InKet> VRR_b_1_ElecPot_1_sh;
131 typedef VRR_1_ElecPot_1<CGF,InKet> VRR_b_1_ElecPot_1_int;
132
133 // TODO investigate whether need to stay away from HRR for now to be sure that multipoles are computed as precisely as possible
134 typedef HRR<SMultipole_1_1_sh,CGShell,0,InBra,0,InKet,0> HRR_ab_1_SMultipole_1_sh;
135 typedef HRR<SMultipole_1_1_int,CGF,0,InBra,0,InKet,0> HRR_ab_1_SMultipole_1_int;
136 typedef HRR<SMultipole_1_1_sh,CGShell,0,InKet,0,InBra,0> HRR_ba_1_SMultipole_1_sh;
137 typedef HRR<SMultipole_1_1_int,CGF,0,InKet,0,InBra,0> HRR_ba_1_SMultipole_1_int;
138 typedef VRR_1_SMultipole_1<CGShell,InBra> VRR_a_1_SMultipole_1_sh;
139 typedef VRR_1_SMultipole_1<CGF,InBra> VRR_a_1_SMultipole_1_int;
140 typedef VRR_1_SMultipole_1<CGShell,InKet> VRR_b_1_SMultipole_1_sh;
141 typedef VRR_1_SMultipole_1<CGF,InKet> VRR_b_1_SMultipole_1_int;
142#endif
143
144 typedef VRR_11_TwoPRep_11<CGShell,0,InBra> VRR_a_11_TwoPRep_11_sh;
145 typedef VRR_11_TwoPRep_11<CGShell,1,InBra> VRR_c_11_TwoPRep_11_sh;
146 typedef VRR_11_TwoPRep_11<CGF,0,InBra> VRR_a_11_TwoPRep_11_int;
147 typedef VRR_11_TwoPRep_11<CGF,1,InBra> VRR_c_11_TwoPRep_11_int;
148 typedef VRR_11_TwoPRep_11<CGShell,0,InKet> VRR_b_11_TwoPRep_11_sh;
149 typedef VRR_11_TwoPRep_11<CGShell,1,InKet> VRR_d_11_TwoPRep_11_sh;
150 typedef VRR_11_TwoPRep_11<CGF,0,InKet> VRR_b_11_TwoPRep_11_int;
151 typedef VRR_11_TwoPRep_11<CGF,1,InKet> VRR_d_11_TwoPRep_11_int;
152
153 typedef VRR_11_R12kG12_11<CGShell,0,InBra> VRR_a_11_R12kG12_11_sh;
154 typedef VRR_11_R12kG12_11<CGShell,1,InBra> VRR_c_11_R12kG12_11_sh;
155 typedef VRR_11_R12kG12_11<CGF,0,InBra> VRR_a_11_R12kG12_11_int;
156 typedef VRR_11_R12kG12_11<CGF,1,InBra> VRR_c_11_R12kG12_11_int;
157 typedef VRR_11_R12kG12_11<CGShell,0,InKet> VRR_b_11_R12kG12_11_sh;
158 typedef VRR_11_R12kG12_11<CGShell,1,InKet> VRR_d_11_R12kG12_11_sh;
159 typedef VRR_11_R12kG12_11<CGF,0,InKet> VRR_b_11_R12kG12_11_int;
160 typedef VRR_11_R12kG12_11<CGF,1,InKet> VRR_d_11_R12kG12_11_int;
161
162 typedef CR_11_R12kR12lG12_11<CGShell> CR_11_R12kR12lG12_11_sh;
163 typedef CR_11_R12kR12lG12_11<CGF> CR_11_R12kR12lG12_11_int;
164
165 typedef CR_11_TiG12_11<CGShell> CR_11_TiG12_11_sh;
166 typedef CR_11_TiG12_11<CGF> CR_11_TiG12_11_int;
167
168 typedef CR_11_G12TiG12_11<CGShell> CR_11_G12TiG12_11_sh;
169 typedef CR_11_G12TiG12_11<CGF> CR_11_G12TiG12_11_int;
170
171 typedef CR_11_DivG12prime_xTx_11<CGShell> CR_11_DivG12prime_xTx_11_sh;
172 typedef CR_11_DivG12prime_xTx_11<CGF> CR_11_DivG12prime_xTx_11_int;
173
174 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGShell,0,InBra> ITR_a_11_TwoPRep_11_sh;
175 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGF,0,InBra> ITR_a_11_TwoPRep_11_int;
176 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGShell,0,InKet> ITR_b_11_TwoPRep_11_sh;
177 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGF,0,InKet> ITR_b_11_TwoPRep_11_int;
178 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGShell,1,InBra> ITR_c_11_TwoPRep_11_sh;
179 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGF,1,InBra> ITR_c_11_TwoPRep_11_int;
180 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGShell,1,InKet> ITR_d_11_TwoPRep_11_sh;
181 typedef ITR_11_TwoPRep_11<GenIntegralSet_11_11,CGF,1,InKet> ITR_d_11_TwoPRep_11_int;
182
183 typedef CR_DerivGauss<TwoPRep_11_11_sq,0,InBra,trinvskip2_part,trinvskip2_where> Deriv_a_11_TwoPRep_11_sh;
184 typedef CR_DerivGauss<TwoPRep_11_11_sq,0,InKet,trinvskip2_part,trinvskip2_where> Deriv_b_11_TwoPRep_11_sh;
185 typedef CR_DerivGauss<TwoPRep_11_11_sq,1,InBra,trinvskip2_part,trinvskip2_where> Deriv_c_11_TwoPRep_11_sh;
186 typedef CR_DerivGauss<TwoPRep_11_11_sq,1,InKet,trinvskip2_part,trinvskip2_where> Deriv_d_11_TwoPRep_11_sh;
187 typedef CR_DerivGauss<TwoPRep_11_11_int,0,InBra,trinvskip2_part,trinvskip2_where> Deriv_a_11_TwoPRep_11_int;
188 typedef CR_DerivGauss<TwoPRep_11_11_int,0,InKet,trinvskip2_part,trinvskip2_where> Deriv_b_11_TwoPRep_11_int;
189 typedef CR_DerivGauss<TwoPRep_11_11_int,1,InBra,trinvskip2_part,trinvskip2_where> Deriv_c_11_TwoPRep_11_int;
190 typedef CR_DerivGauss<TwoPRep_11_11_int,1,InKet,trinvskip2_part,trinvskip2_where> Deriv_d_11_TwoPRep_11_int;
191
192};
193
194#endif // header guard
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24