add_ref_ROHF.cc

Go to the documentation of this file.
00001 
00005 #include <stdio.h>
00006 #include <libiwl/iwl.h>
00007 #include "MOInfo.h"
00008 #include "Params.h"
00009 #include "Frozen.h"
00010 #define EXTERN
00011 #include "globals.h"
00012 
00013 namespace psi { namespace ccdensity {
00014 
00015 void add_ref_ROHF(struct iwlbuf *OutBuf)
00016 {
00017   int i,j;
00018   int nfzc, nclsd, nopen;
00019 
00020   nfzc = moinfo.nfzc;
00021   nclsd = moinfo.nclsd;
00022   nopen = moinfo.nopen;
00023 
00024   /*** One-electron component ***/
00025 
00026   for(i=0; i < (nfzc + nclsd); i++)
00027       moinfo.opdm[i][i] += 2.0;
00028 
00029   for(i=nfzc + nclsd; i < (nfzc + nclsd + nopen); i++)
00030       moinfo.opdm[i][i] += 1.0;
00031 
00032 
00033   /*** Two-electron component ***/
00034 
00035   /* docc-docc */
00036   for(i=0; i < (nfzc + nclsd); i++) {
00037       iwl_buf_wrt_val(OutBuf, i, i, i, i, 1.0, 0, outfile, 0);
00038       for(j=0; j < i; j++) {
00039           iwl_buf_wrt_val(OutBuf, i, i, j, j, 2.0, 0, outfile, 0);
00040           iwl_buf_wrt_val(OutBuf, i, j, j, i,-1.0, 0, outfile, 0);
00041         }
00042     }
00043 
00044   /* socc-docc && socc-socc*/
00045   for(i=(nfzc + nclsd); i < (nfzc + nclsd + nopen); i++) {
00046       for(j=0; j < (nfzc + nclsd); j++) {
00047           iwl_buf_wrt_val(OutBuf, i, i, j, j, 1.0, 0, outfile, 0);
00048           iwl_buf_wrt_val(OutBuf, i, j, j, i,-0.5, 0, outfile, 0);
00049         }
00050       for(j=(nfzc + nclsd); j < i; j++) {
00051           iwl_buf_wrt_val(OutBuf, i, i, j, j, 0.5, 0, outfile, 0);
00052           iwl_buf_wrt_val(OutBuf, i, j, j, i,-0.5, 0, outfile, 0);
00053         }
00054     }
00055 }
00056 
00057 }} // namespace psi::ccdensity

Generated on Wed Feb 13 16:35:39 2008 for PSI by  doxygen 1.5.4