~ubuntu-branches/ubuntu/quantal/psicode/quantal

« back to all changes in this revision

Viewing changes to src/bin/psimrcc/mp2_ccsd_t2_amps.cc

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2009-02-23 00:12:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090223001202-rutldoy3dimfpesc
Tags: 3.4.0-1
* New upstream release.

[ Michael Banck ]
* debian/patches/01_DESTDIR.dpatch: Refreshed.
* debian/patches/02_FHS.dpatch: Removed, applied upstream.
* debian/patches/03_debian_docdir: Likewise.
* debian/patches/04_man.dpatch: Likewise.
* debian/patches/06_466828_fix_gcc_43_ftbfs.dpatch: Likewise.
* debian/patches/07_464867_move_executables: Fixed and refreshed.
* debian/patches/00list: Adjusted.
* debian/control: Improved description.
* debian/patches-held: Removed.
* debian/rules (install/psi3): Do not ship the ruby bindings for now.

[ Daniel Leidert ]
* debian/rules: Fix txtdir via DEB_MAKE_INSTALL_TARGET.
* debian/patches/01_DESTDIR.dpatch: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <libmoinfo/libmoinfo.h>
 
2
#include <liboptions/liboptions.h>
 
3
 
 
4
#include "mp2_ccsd.h"
 
5
#include "blas.h"
 
6
#include "debugging.h"
 
7
 
 
8
namespace psi{ namespace psimrcc{
 
9
 
 
10
void MP2_CCSD::build_mp2_t2_iJaB_amplitudes()
 
11
{
 
12
  blas->solve("t2_eqns[oO][vV]{u}   = <[oo]|[vv]>");
 
13
 
 
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}");
 
16
 
 
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}");
 
19
 
 
20
  blas->solve("t2_delta[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u} - t2[oO][vV]{u}");
 
21
 
 
22
  // alpha,beta
 
23
  blas->solve("t2[oO][vV]{u}  = t2_eqns[oO][vV]{u} / d2[oO][vV]{u}");
 
24
 
 
25
  // alpha,alpha
 
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}");
 
29
 
 
30
  // beta, beta
 
31
  blas->solve("t2[OO][VV]{u}  = t2[oo][vv]{u}");
 
32
}
 
33
 
 
34
void MP2_CCSD::build_t2_iJaB_amplitudes()
 
35
{
 
36
  START_TIMER(1,"Building the T2_iJaB Amplitudes");
 
37
 
 
38
  // AAAA case (CCSD)
 
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}");
 
44
 
 
45
  blas->solve("HiJaB[aA][aA]{u} += W_mNiJ[oO][aA]{u} 1@1 tau_oOvV[oO][aA]{u}");
 
46
 
 
47
  blas->solve("HiJaB[aA][aA]{u} += tau_oOvV[aA][vV]{u} 2@2 <[aa]|[vv]>");
 
48
 
 
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}");
 
51
 
 
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}");
 
58
 
 
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}");
 
63
 
 
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]>");
 
68
 
 
69
  if(options_get_str("MP2_CCSD_METHOD")=="II"){
 
70
    // RAAA case (CCSD)
 
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}");
 
76
  
 
77
    blas->solve("HiJaB[oA][aA]{u} += W_mNiJ[oO][oA]{u} 1@1 tau_oOvV[oO][aA]{u}");
 
78
  
 
79
    blas->solve("HiJaB[oA][aA]{u} += tau_oOvV[oA][vV]{u} 2@2 <[aa]|[vv]>");
 
80
  
 
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}");
 
83
  
 
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}");
 
90
  
 
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}");
 
95
  
 
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]>");
 
100
  
 
101
    blas->solve("HiJaB[aO][aA]{u} = #2143# HiJaB[oA][aA]{u}");
 
102
  
 
103
    // AARA case (CCSD)
 
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}");
 
109
  
 
110
    blas->solve("HiJaB[aA][vA]{u} += W_mNiJ[oO][aA]{u} 1@1 tau_oOvV[oO][vA]{u}");
 
111
  
 
112
    blas->solve("HiJaB[aA][vA]{u} += tau_oOvV[aA][vV]{u} 2@2 <[va]|[vv]>");
 
113
  
 
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}");
 
116
  
 
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}");
 
123
  
 
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}");
 
128
  
 
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]>");
 
133
  
 
134
    blas->solve("HiJaB[aA][aV]{u} = #2143# HiJaB[aA][vA]{u}");
 
135
  
 
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}");
 
138
  
 
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}");
 
141
  }
 
142
 
 
143
  blas->expand_spaces("HiJaB[aA][aA]{u}","t2_eqns[oO][vV]{u}");
 
144
 
 
145
  blas->solve("t2_delta[oO][vV]{u} = t2_eqns[oO][vV]{u} / d2[oO][vV]{u} - t2[oO][vV]{u}");
 
146
 
 
147
  blas->solve("t2[oO][vV]{u}  = t2_eqns[oO][vV]{u} / d2[oO][vV]{u}");
 
148
  END_TIMER(1);
 
149
}
 
150
 
 
151
void MP2_CCSD::build_t2_ijab_amplitudes()
 
152
{
 
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}");
 
157
  END_TIMER(1);
 
158
}
 
159
 
 
160
void MP2_CCSD::build_t2_IJAB_amplitudes()
 
161
{
 
162
  START_TIMER(1,"Building the T2_IJAB Amplitudes");
 
163
  blas->solve("t2[OO][VV]{u}  = t2[oo][vv]{u}");
 
164
  END_TIMER(1);
 
165
}
 
166
 
 
167
}} /* End Namespaces */