1
#include <libmoinfo/libmoinfo.h>
2
#include <liboptions/liboptions.h>
8
namespace psi{ namespace psimrcc{
10
void MP2_CCSD::build_mp2_t2_iJaB_amplitudes()
12
blas->solve("t2_eqns[oO][vV]{u} = <[oo]|[vv]>");
14
blas->solve("t2_eqns[oO][vV]{u} += #3214# t2[V][vOo]{u} 1@2 offdiagonal_F[v][v]{u}");
15
blas->solve("t2_eqns[oO][vV]{u} += #4123# t2[v][VoO]{u} 1@2 offdiagonal_F[v][v]{u}");
17
blas->solve("t2_eqns[oO][vV]{u} += #1432# - t2[O][oVv]{u} 1@1 offdiagonal_F[o][o]{u}");
18
blas->solve("t2_eqns[oO][vV]{u} += #2341# - t2[o][OvV]{u} 1@1 offdiagonal_F[o][o]{u}");
20
blas->solve("t2_delta[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u} - t2[oO][vV]{u}");
23
blas->solve("t2[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u}");
26
blas->solve("t2_eqns[oo][vv]{u} = t2_eqns[oO][vV]{u}");
27
blas->solve("t2_eqns[oo][vv]{u} += #2134# - t2_eqns[oO][vV]{u}");
28
blas->solve("t2[oo][vv]{u} = t2_eqns[oo][vv]{u} / d2[oo][vv]{u}");
31
blas->solve("t2[OO][VV]{u} = t2[oo][vv]{u}");
34
void MP2_CCSD::build_t2_iJaB_amplitudes()
36
START_TIMER(1,"Building the T2_iJaB Amplitudes");
39
blas->solve("HiJaB[aA][aA]{u} = <[aa]|[aa]>");
40
blas->solve("HiJaB[aA][aA]{u} += #3214# t2_VvOo[V][aAa]{u} 1@2 F'_AE[A][V]{u}");
41
blas->solve("HiJaB[aA][aA]{u} += #4123# t2_vVoO[v][AaA]{u} 1@2 F'_ae[a][v]{u}");
42
blas->solve("HiJaB[aA][aA]{u} += #1432# - t2_OoVv[O][aAa]{u} 1@1 F'_MI[O][A]{u}");
43
blas->solve("HiJaB[aA][aA]{u} += #2341# - t2_oOvV[o][AaA]{u} 1@1 F'_mi[o][a]{u}");
45
blas->solve("HiJaB[aA][aA]{u} += W_mNiJ[oO][aA]{u} 1@1 tau_oOvV[oO][aA]{u}");
47
blas->solve("HiJaB[aA][aA]{u} += tau_oOvV[aA][vV]{u} 2@2 <[aa]|[vv]>");
49
blas->solve("HiJaB[aA][aA]{u} += #1234# - Z_iJaM[aAa][O]{u} 2@1 t1_OV[O][A]{u}");
50
blas->solve("HiJaB[aA][aA]{u} += #1243# Z_iJAm[aAA][o]{u} 2@1 t1_ov[o][a]{u}");
52
blas->solve("HiJaB[aA][aA]{u} += #2413# W_jbME[aa][OV]{u} 2@2 t2_ovov[aa][ov]{u}");
53
blas->solve("HiJaB[aA][aA]{u} += #2413# W_jbme[aa][ov]{u} 2@2 t2_ovOV[aa][OV]{u}");
54
blas->solve("HiJaB[aA][aA]{u} += #2314# W_jBmE[aA][oV]{u} 2@2 t2_oVOv[aA][Ov]{u}");
55
blas->solve("HiJaB[aA][aA]{u} += #1423# W_jBmE[aA][oV]{u} 2@1 t2_oVOv[oV][Aa]{u}");
56
blas->solve("HiJaB[aA][aA]{u} += #1324# W_jbME[aa][OV]{u} 2@2 t2_OVOV[AA][OV]{u}");
57
blas->solve("HiJaB[aA][aA]{u} += #1324# W_jbme[aa][ov]{u} 2@1 t2_ovOV[ov][AA]{u}");
59
blas->solve("HiJaB[aA][aA]{u} += #4213# - ([ov]|[aa]) 1@2 t1t1_iame[aa][ov]{u}");
60
blas->solve("HiJaB[aA][aA]{u} += #2314# - <[ov]|[aa]> 1@2 t1t1_iAMe[aA][Ov]{u}");
61
blas->solve("HiJaB[aA][aA]{u} += #1423# - <[ov]|[aa]> 1@1 t1t1_iAMe[oV][Aa]{u}");
62
blas->solve("HiJaB[aA][aA]{u} += #3124# - ([ov]|[aa]) 1@2 t1t1_IAME[AA][OV]{u}");
64
blas->solve("HiJaB[aA][aA]{u} += #1234# t1_ov[a][v]{u} 2@1 <[v]|[aaa]>");
65
blas->solve("HiJaB[aA][aA]{u} += #2143# t1_OV[A][V]{u} 2@1 <[v]|[aaa]>");
66
blas->solve("HiJaB[aA][aA]{u} += #3412# - t1_ov[o][a]{u} 1@1 <[o]|[aaa]>");
67
blas->solve("HiJaB[aA][aA]{u} += #4321# - t1_OV[O][A]{u} 1@1 <[o]|[aaa]>");
69
if(options_get_str("MP2_CCSD_METHOD")=="II"){
71
blas->solve("HiJaB[oA][aA]{u} = <[oa]|[aa]>");
72
blas->solve("HiJaB[oA][aA]{u} += #3214# t2_VvOo[V][aAo]{u} 1@2 F'_AE[A][V]{u}");
73
blas->solve("HiJaB[oA][aA]{u} += #4123# t2_vVoO[v][AoA]{u} 1@2 F'_ae[a][v]{u}");
74
blas->solve("HiJaB[oA][aA]{u} += #1432# - t2_OoVv[O][oAa]{u} 1@1 F'_MI[O][A]{u}");
75
blas->solve("HiJaB[oA][aA]{u} += #2341# - t2_oOvV[o][AaA]{u} 1@1 F'_mi[o][o]{u}");
77
blas->solve("HiJaB[oA][aA]{u} += W_mNiJ[oO][oA]{u} 1@1 tau_oOvV[oO][aA]{u}");
79
blas->solve("HiJaB[oA][aA]{u} += tau_oOvV[oA][vV]{u} 2@2 <[aa]|[vv]>");
81
blas->solve("HiJaB[oA][aA]{u} += #1234# - Z_iJaM[oAa][O]{u} 2@1 t1_OV[O][A]{u}");
82
blas->solve("HiJaB[oA][aA]{u} += #1243# Z_iJAm[oAA][o]{u} 2@1 t1_ov[o][a]{u}");
84
blas->solve("HiJaB[oA][aA]{u} += #2413# W_jbME[aa][OV]{u} 2@2 t2_ovov[oa][ov]{u}");
85
blas->solve("HiJaB[oA][aA]{u} += #2413# W_jbme[aa][ov]{u} 2@2 t2_ovOV[oa][OV]{u}");
86
blas->solve("HiJaB[oA][aA]{u} += #2314# W_jBmE[aA][oV]{u} 2@2 t2_oVOv[oA][Ov]{u}");
87
blas->solve("HiJaB[oA][aA]{u} += #1423# W_jBmE[oA][oV]{u} 2@1 t2_oVOv[oV][Aa]{u}");
88
blas->solve("HiJaB[oA][aA]{u} += #1324# W_jbME[oa][OV]{u} 2@2 t2_OVOV[AA][OV]{u}");
89
blas->solve("HiJaB[oA][aA]{u} += #1324# W_jbme[oa][ov]{u} 2@1 t2_ovOV[ov][AA]{u}");
91
blas->solve("HiJaB[oA][aA]{u} += #4213# - ([ov]|[aa]) 1@2 t1t1_iame[oa][ov]{u}");
92
blas->solve("HiJaB[oA][aA]{u} += #2314# - <[ov]|[aa]> 1@2 t1t1_iAMe[oA][Ov]{u}");
93
blas->solve("HiJaB[oA][aA]{u} += #1423# - <[ov]|[oa]> 1@1 t1t1_iAMe[oV][Aa]{u}");
94
blas->solve("HiJaB[oA][aA]{u} += #3124# - ([ov]|[ao]) 1@2 t1t1_IAME[AA][OV]{u}");
96
blas->solve("HiJaB[oA][aA]{u} += #1234# t1[o][v]{u} 2@1 <[v]|[aaa]>");
97
blas->solve("HiJaB[oA][aA]{u} += #2143# t1_OV[A][V]{u} 2@1 <[v]|[oaa]>");
98
blas->solve("HiJaB[oA][aA]{u} += #3412# - t1_ov[o][a]{u} 1@1 <[o]|[aoa]>");
99
blas->solve("HiJaB[oA][aA]{u} += #4321# - t1_OV[O][A]{u} 1@1 <[o]|[aao]>");
101
blas->solve("HiJaB[aO][aA]{u} = #2143# HiJaB[oA][aA]{u}");
104
blas->solve("HiJaB[aA][vA]{u} = <[aa]|[va]>");
105
blas->solve("HiJaB[aA][vA]{u} += #3214# t2_VvOo[V][vAa]{u} 1@2 F'_AE[A][V]{u}");
106
blas->solve("HiJaB[aA][vA]{u} += #4123# t2_vVoO[v][AaA]{u} 1@2 F'_ae[v][v]{u}");
107
blas->solve("HiJaB[aA][vA]{u} += #1432# - t2_OoVv[O][aAv]{u} 1@1 F'_MI[O][A]{u}");
108
blas->solve("HiJaB[aA][vA]{u} += #2341# - t2_oOvV[o][AvA]{u} 1@1 F'_mi[o][a]{u}");
110
blas->solve("HiJaB[aA][vA]{u} += W_mNiJ[oO][aA]{u} 1@1 tau_oOvV[oO][vA]{u}");
112
blas->solve("HiJaB[aA][vA]{u} += tau_oOvV[aA][vV]{u} 2@2 <[va]|[vv]>");
114
blas->solve("HiJaB[aA][vA]{u} += #1234# - Z_iJaM[aAv][O]{u} 2@1 t1_OV[O][A]{u}");
115
blas->solve("HiJaB[aA][vA]{u} += #1243# Z_iJAm[aAA][o]{u} 2@1 t1[o][v]{u}");
117
blas->solve("HiJaB[aA][vA]{u} += #2413# W_jbME[aa][OV]{u} 2@2 t2_ovov[av][ov]{u}");
118
blas->solve("HiJaB[aA][vA]{u} += #2413# W_jbme[aa][ov]{u} 2@2 t2_ovOV[av][OV]{u}");
119
blas->solve("HiJaB[aA][vA]{u} += #2314# W_jBmE[aV][oV]{u} 2@2 t2_oVOv[aA][Ov]{u}");
120
blas->solve("HiJaB[aA][vA]{u} += #1423# W_jBmE[aA][oV]{u} 2@1 t2_oVOv[oV][Av]{u}");
121
blas->solve("HiJaB[aA][vA]{u} += #1324# W_jbME[av][OV]{u} 2@2 t2_OVOV[AA][OV]{u}");
122
blas->solve("HiJaB[aA][vA]{u} += #1324# W_jbme[av][ov]{u} 2@1 t2_ovOV[ov][AA]{u}");
124
blas->solve("HiJaB[aA][vA]{u} += #4213# - ([ov]|[aa]) 1@2 t1t1_iame[av][ov]{u}");
125
blas->solve("HiJaB[aA][vA]{u} += #2314# - <[ov]|[av]> 1@2 t1t1_iAMe[aA][Ov]{u}");
126
blas->solve("HiJaB[aA][vA]{u} += #1423# - <[ov]|[aa]> 1@1 t1t1_iAMe[oV][Av]{u}");
127
blas->solve("HiJaB[aA][vA]{u} += #3124# - ([ov]|[va]) 1@2 t1t1_IAME[AA][OV]{u}");
129
blas->solve("HiJaB[aA][vA]{u} += #1234# t1_ov[a][v]{u} 2@1 <[v]|[ava]>");
130
blas->solve("HiJaB[aA][vA]{u} += #2143# t1_OV[A][V]{u} 2@1 <[v]|[aav]>");
131
blas->solve("HiJaB[aA][vA]{u} += #3412# - t1[o][v]{u} 1@1 <[o]|[aaa]>");
132
blas->solve("HiJaB[aA][vA]{u} += #4321# - t1_OV[O][A]{u} 1@1 <[o]|[vaa]>");
134
blas->solve("HiJaB[aA][aV]{u} = #2143# HiJaB[aA][vA]{u}");
136
blas->expand_spaces("HiJaB[oA][aA]{u}","t2_eqns[oO][vV]{u}");
137
blas->expand_spaces("HiJaB[aO][aA]{u}","t2_eqns[oO][vV]{u}");
139
blas->expand_spaces("HiJaB[aA][vA]{u}","t2_eqns[oO][vV]{u}");
140
blas->expand_spaces("HiJaB[aA][aV]{u}","t2_eqns[oO][vV]{u}");
143
blas->expand_spaces("HiJaB[aA][aA]{u}","t2_eqns[oO][vV]{u}");
145
blas->solve("t2_delta[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u} - t2[oO][vV]{u}");
147
blas->solve("t2[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u}");
151
void MP2_CCSD::build_t2_ijab_amplitudes()
153
START_TIMER(1,"Building the T2_ijab Amplitudes");
154
blas->solve("t2_eqns[oo][vv]{u} = t2_eqns[oO][vV]{u}");
155
blas->solve("t2_eqns[oo][vv]{u} += #2134# - t2_eqns[oO][vV]{u}");
156
blas->solve("t2[oo][vv]{u} = t2_eqns[oo][vv]{u} / d2[oo][vv]{u}");
160
void MP2_CCSD::build_t2_IJAB_amplitudes()
162
START_TIMER(1,"Building the T2_IJAB Amplitudes");
163
blas->solve("t2[OO][VV]{u} = t2[oo][vv]{u}");
167
}} /* End Namespaces */