LIBINT  2.6.0
master_rrs_list.h
1 /*
2  * Copyright (C) 2004-2019 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 
45 namespace 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