~ubuntu-branches/ubuntu/vivid/psicode/vivid

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/sort_ltd_uhf.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2008-06-07 16:49:57 UTC
  • mfrom: (2.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080607164957-8pifvb133yjlkagn
Tags: 3.3.0-3
* debian/rules (DEB_MAKE_CHECK_TARGET): Do not abort test suite on
  failures.
* debian/rules (DEB_CONFIGURE_EXTRA_FLAGS): Set ${bindir} to /usr/lib/psi.
* debian/rules (install/psi3): Move psi3 file to /usr/bin.
* debian/patches/07_464867_move_executables.dpatch: New patch, add
  /usr/lib/psi to the $PATH, so that the moved executables are found.
  (closes: #464867)
* debian/patches/00list: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <libdpd/dpd.h>
 
3
#define EXTERN
 
4
#include "globals.h"
 
5
 
 
6
void sort_ltd_uhf(struct TD_Params S)
 
7
{
 
8
  int h, nirreps, nmo, nfzv, nfzc, nclsd, nopen;
 
9
  int row, col, i, j, I, J, a, b, A, B, p, q;
 
10
  int *aoccpi, *avirtpi, *aocc_off, *avir_off; 
 
11
  int *boccpi, *bvirtpi, *bocc_off, *bvir_off; 
 
12
  int *aocc_sym, *avir_sym;
 
13
  int *bocc_sym, *bvir_sym;
 
14
  int *qt_aocc, *qt_avir;
 
15
  int *qt_bocc, *qt_bvir;
 
16
  double chksum, value;
 
17
  dpdfile2 D;
 
18
 
 
19
  nmo = moinfo.nmo;
 
20
  nfzc = moinfo.nfzc;
 
21
  nfzv = moinfo.nfzv;
 
22
  nclsd = moinfo.nclsd;
 
23
  nopen = moinfo.nopen;
 
24
  nirreps = moinfo.nirreps;
 
25
  aoccpi = moinfo.aoccpi; avirtpi = moinfo.avirtpi;
 
26
  boccpi = moinfo.boccpi; bvirtpi = moinfo.bvirtpi;
 
27
  aocc_off = moinfo.aocc_off; avir_off = moinfo.avir_off;
 
28
  bocc_off = moinfo.bocc_off; bvir_off = moinfo.bvir_off;
 
29
  aocc_sym = moinfo.aocc_sym; avir_sym = moinfo.avir_sym;
 
30
  qt_aocc = moinfo.qt_aocc; qt_avir = moinfo.qt_avir;
 
31
  qt_bocc = moinfo.qt_bocc; qt_bvir = moinfo.qt_bvir;
 
32
 
 
33
  moinfo.ltd_a = block_matrix(nmo,nmo);
 
34
  moinfo.ltd_b = block_matrix(nmo,nmo);
 
35
 
 
36
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 0, "LTDIJ");
 
37
  dpd_file2_mat_init(&D);
 
38
  dpd_file2_mat_rd(&D);
 
39
  for(h=0; h < nirreps; h++) {
 
40
    for(i=0; i < aoccpi[h]; i++) {
 
41
      I = qt_aocc[aocc_off[h] + i];
 
42
      for(j=0; j < aoccpi[h^S.irrep]; j++) {
 
43
        J = qt_aocc[aocc_off[h^S.irrep] + j];
 
44
        moinfo.ltd_a[I][J] += D.matrix[h][i][j];
 
45
      }
 
46
    }
 
47
  }
 
48
  dpd_file2_mat_close(&D);
 
49
  dpd_file2_close(&D);
 
50
 
 
51
  dpd_file2_init(&D, CC_TMP, S.irrep, 1, 1, "LTDAB");
 
52
  dpd_file2_mat_init(&D);
 
53
  dpd_file2_mat_rd(&D);
 
54
  for(h=0; h < nirreps; h++) {
 
55
    for(a=0; a < avirtpi[h]; a++) {
 
56
      A = qt_avir[avir_off[h] + a];
 
57
      for(b=0; b < avirtpi[h^S.irrep]; b++) {
 
58
        B = qt_avir[avir_off[h^S.irrep] + b];
 
59
        moinfo.ltd_a[A][B] += D.matrix[h][a][b];
 
60
      }
 
61
    }
 
62
  }
 
63
  dpd_file2_mat_close(&D);
 
64
  dpd_file2_close(&D);
 
65
 
 
66
  /* Note that this component of the density is stored occ-vir */
 
67
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 1, "LTDAI");
 
68
  dpd_file2_mat_init(&D);
 
69
  dpd_file2_mat_rd(&D);
 
70
  for(h=0; h < nirreps; h++) {
 
71
    for(i=0; i < aoccpi[h]; i++) {
 
72
      I = qt_aocc[aocc_off[h] + i];
 
73
      for(a=0; a < avirtpi[h^S.irrep]; a++) {
 
74
        A = qt_avir[avir_off[h^S.irrep] + a];
 
75
        moinfo.ltd_a[A][I] += D.matrix[h][i][a];
 
76
      }
 
77
    }
 
78
  }
 
79
  dpd_file2_mat_close(&D);
 
80
  dpd_file2_close(&D);
 
81
 
 
82
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 1, "LTDIA");
 
83
  dpd_file2_mat_init(&D);
 
84
  dpd_file2_mat_rd(&D);
 
85
  for(h=0; h < nirreps; h++) {
 
86
    for(i=0; i < aoccpi[h]; i++) {
 
87
      I = qt_aocc[aocc_off[h] + i];
 
88
      for(a=0; a < avirtpi[h^S.irrep]; a++) {
 
89
        A = qt_avir[avir_off[h^S.irrep] + a];
 
90
        moinfo.ltd_a[I][A] += D.matrix[h][i][a];
 
91
      }
 
92
    }
 
93
  }
 
94
  dpd_file2_mat_close(&D);
 
95
  dpd_file2_close(&D);
 
96
 
 
97
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 2, "LTDij");
 
98
  dpd_file2_mat_init(&D); 
 
99
  dpd_file2_mat_rd(&D);
 
100
  for(h=0; h < nirreps; h++) {
 
101
    for(i=0; i < boccpi[h]; i++) { 
 
102
      I = qt_bocc[bocc_off[h] + i];
 
103
      for(j=0; j < boccpi[h^S.irrep]; j++) {
 
104
        J = qt_bocc[bocc_off[h^S.irrep] + j];
 
105
        moinfo.ltd_b[I][J] += D.matrix[h][i][j];
 
106
      }
 
107
    }
 
108
  }
 
109
  dpd_file2_mat_close(&D);
 
110
  dpd_file2_close(&D);
 
111
 
 
112
  dpd_file2_init(&D, CC_TMP, S.irrep, 3, 3, "LTDab");
 
113
  dpd_file2_mat_init(&D);
 
114
  dpd_file2_mat_rd(&D);
 
115
  for(h=0; h < nirreps; h++) {
 
116
    for(a=0; a < bvirtpi[h]; a++) {
 
117
      A = qt_bvir[bvir_off[h] + a];
 
118
      for(b=0; b < bvirtpi[h^S.irrep]; b++) {
 
119
        B = qt_bvir[bvir_off[h^S.irrep] + b];
 
120
        moinfo.ltd_b[A][B] += D.matrix[h][a][b];
 
121
      }
 
122
    }
 
123
  }
 
124
  dpd_file2_mat_close(&D);
 
125
  dpd_file2_close(&D);
 
126
 
 
127
  /* Note that this component of the density is stored occ-vir */
 
128
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 3, "LTDai");
 
129
  dpd_file2_mat_init(&D);
 
130
  dpd_file2_mat_rd(&D);
 
131
  for(h=0; h < nirreps; h++) {
 
132
    for(i=0; i < boccpi[h]; i++) {
 
133
      I = qt_bocc[bocc_off[h] + i];
 
134
      for(a=0; a < bvirtpi[h^S.irrep]; a++) {
 
135
        A = qt_bvir[bvir_off[h^S.irrep] + a];
 
136
        moinfo.ltd_b[A][I] += D.matrix[h][i][a];
 
137
      }
 
138
    }
 
139
  }
 
140
  dpd_file2_mat_close(&D);
 
141
  dpd_file2_close(&D);
 
142
 
 
143
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 3, "LTDia");
 
144
  dpd_file2_mat_init(&D);
 
145
  dpd_file2_mat_rd(&D);
 
146
  for(h=0; h < nirreps; h++) {
 
147
    for(i=0; i < boccpi[h]; i++) {
 
148
      I = qt_bocc[bocc_off[h] + i];
 
149
      for(a=0; a < bvirtpi[h^S.irrep]; a++) {
 
150
        A = qt_bvir[bvir_off[h^S.irrep] + a];
 
151
        moinfo.ltd_b[I][A] += D.matrix[h][i][a];
 
152
      }
 
153
    }
 
154
  }
 
155
  dpd_file2_mat_close(&D);
 
156
  dpd_file2_close(&D);
 
157
 
 
158
  /*mat_print(moinfo.ltd_a,nmo,nmo,outfile);*/
 
159
  /*mat_print(moinfo.ltd_b,nmo,nmo,outfile);*/
 
160
 
 
161
  return;
 
162
}