Hi,
I am trying to do essentially a FCI dump so I can use one- and two-body matrix elements from
NWchem for my own code. It seems like this is not strictly possible yet but being considered:
https://github.com/nwchemgit/nwchem/issues/8
I am trying to use the rimp2 module to do this. The '4c ints' print flag nearly does this, except I need the matrix els for all indices i,j,k,l, not just for occupied-virtual transitions. If I have these, I can construct the one-body elements myself using the HF eigenvalues.
I have tried to simply adjust the bounds set in rimp2.F to do this. It looks like this sets the range for everything that follows. I just set both lower bounds to 1 and both upper bounds to the number of orbitals.
C Determine ranges to transform.
C
Do I = 1, TopSpin
Call Occ_Ranges( NCorBF(I), Dbl_MB(I_Occ + MxNCorBF * (I-1) ),
$ ILo(I), IHi(I), ALo(I), AHi(I) )
EndDo
! mdvorak
ILo(1) = 1
IHi(1) = 28
ALo(1) = 1
AHi(1) = 28
This works fine (I am testing with N2). However, if I change the lower bound to a different value, I get a bunch of zero matrix elements written out before a seemingly OK partial set of matrix elements. I have traced through rimp2_v_e2.F, rimp2_xf.F, etc. but cannot find where the problem happens. For example, if I set
ILo(1) = 7
IHi(1) = 7
ALo(1) = 7
AHi(1) = 7
the one matrix element written out is exactly zero, but it should be the mat el of the 7th orbital of N2. Nothing is running out of bounds, everything appears to be allocated to the size I want (which is 1), and the calculation finishes without any problem. Can anyone offer some tips?
Thanks!
Marc Dvorak
|