Difference in allowed ICCUT values: rangular vs rangular_mpi
For Breit-Wigner SCF/CI+RMBPT calculations, there's a difference between allowed ICCUT values (zero-order space block sizes) in rangular and rangular_mpi. The latter does not accept ICCUT blocks of size 1, while the first serial version does. Why zero-order blocks of unit size wouldn't be ok seems weird, and I guess this was fixed/realized at some point, but only implemented in the serial version - maybe related to the EAL modifications?
I'm not sure if I can just comment out the ICCUT <= 1 if statement in the MPI code, like it is done in the serial, or if doing so would also affect rmcdhf. I'll do some testing.
Maybe @gaigalas @tspejo or @bieronjacek knows the answer to this directly?
The relevant code sections are in getinf.f90. The serial version looks:
44 ! Determine the physical effects specifications
45 !
46 ! Commenting out the EAL option
47 ! IF (NDEF .NE. 0) THEN
48 ! WRITE (istde,*) 'Generate MCP coefficients only for'
49 ! & , ' diagonal matrix elements? '
50 ! WRITE (istde,*) '(This is appropriate to (E)AL calculation):'
51 ! DIAG = GETYN ()
52 ! ELSE
53 ! DIAG = .FALSE.
54 ! ENDIF
55 DIAG = .FALSE.
56 IF (DIAG) THEN
57 LFORDR = .FALSE.
58 do i = 1,100
59 ICCUT(i) = 0
60 end do
61 ELSE
62 IF (NDEF .NE. 0) THEN
63 ! WRITE (istde,*) 'Treat contributions of some CSFs', &
64 ! ' as first-order perturbations?'
65 ! LFORDR = GETYN ()
66 LFORDR = .TRUE.
67 ELSE
68 LFORDR = .FALSE.
69 ENDIF
70 IF (LFORDR) THEN
71 WRITE (istde,*) 'The contribution of CSFs 1 -- ICCUT will',&
72 ' be treated variationally;'
73 WRITE (istde,*) 'the remainder perturbatively; enter ICCUT:'
74 do i = 1,nblock
75 write(istde,*) 'Give ICCUT for block',i
76 READ *, ICCUT(i)
77 write(739,*) ICCUT(i), '! ICCUT FOR BLOCK',i
78 ! 1 READ *, ICCUT(i)
79 ! IF ((ICCUT(i).LE.1).OR.(ICCUT(i).GE.ncfblk(i))) THEN
80 ! WRITE (istde,*) 'GETINF: ICCUT must be greater than 1', &
81 ! ' and less than ',ncfblk(i)
82 ! WRITE (istde,*) ' please reenter ICCUT:'
83 ! GOTO 1
84 ! ENDIF
85 end do
86 ENDIF
87 ENDIF
and the corresponding section in the the mpi version:
42 ! Determine the physical effects specifications
43 !
44 DIAG = .FALSE.
45 IF (DIAG) THEN
46 LFORDR = .FALSE.
47 do i = 1,100
48 ICCUT(i) = 0
49 end do
50 ELSE
51 IF (NDEF /= 0) THEN
52 LFORDR = .TRUE.
53 ELSE
54 LFORDR = .FALSE.
55 ENDIF
56 IF (LFORDR) THEN
57 WRITE (istde,*) 'The contribution of CSFs 1 -- ICCUT will',&
58 ' be treated variationally;'
59 WRITE (istde,*) 'the remainder perturbatively; enter ICCUT:'
60 do i = 1,nblock
61 write(istde,*) 'Give ICCUT for block',i
62 1 READ *, ICCUT(i)
63 IF ((ICCUT(i) <= 1).OR.(ICCUT(i) >= ncfblk(i))) THEN
64 WRITE (istde,*) 'GETINF: ICCUT must be greater than 1',&
65 ' and less than ',ncfblk(i)
66 WRITE (istde,*) ' please reenter ICCUT:'
67 GOTO 1
68 ENDIF
69 end do
70 ENDIF
71 ENDIF
Dear Jon,
Sorry if I missed modifying the MPI version but, on the other hand, sometimes when I sent the Masterfile to Lund, changes got lost. GitHub would have prevented such situations.
ICCUT <= 1 should be allowed. ICCUT =1 gives you the EAL calculation with no off-diagonal matrix elements. The MPI version should be the same as non-MPI.
Charlotte
-------------------------------%0D%0ACharlotte.F.Fischer%40Comcast.Net%0D%0A401 King Farm Blvd%2C %23402%0D%0ARockville%2C MD 20850%0D%0A%0D%0APhone%3A 301-963-4134
On April 24, 2019 at 3:14 PM Jon Grumer [email protected] wrote:
For Breit-Wigner SCF/CI+RMBPT calculations, there's a difference between allowed ICCUT values (zero-order space block sizes) in RANGULAR and RANGULAR_MPI. The latter does not accept ICCUT blocks of size 1, while the first serial version does. Why zero-order blocks of unit size wouldn't be ok seems weird, and I guess this was fixed/realized at some point, but only implemented in the serial version. I'm not sure if I can just comment out the ICCUT <= 1 if statement in the MPI code, like it is done in the serial, or if doing so would also affect RMCDHF. I'll do some testing. Maybe @gaigalas https://github.com/gaigalas @tspejo https://github.com/tspejo or @bieronjacek https://github.com/bieronjacek knows? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/compas/grasp/issues/16 , or mute the thread https://github.com/notifications/unsubscribe-auth/ADDK3SEX4OGKJ45WQFAEX4TPSDLTBANCNFSM4HIIJR4A .
Ok great! I'll fix it then! Thanks Charlotte! :)