corrections to numerical and sccor analytical gradient
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 22 Feb 2017 08:32:24 +0000 (09:32 +0100)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 22 Feb 2017 08:32:24 +0000 (09:32 +0100)
source/unres/src_MD-M/checkder_p.F
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/int_to_cart.f
source/unres/src_MD-M/intcartderiv.F
source/unres/src_MD/checkder_p.F
source/unres/src_MD/int_to_cart.f
source/unres/src_MD/intcartderiv.F

index 99f00bc..e21ff54 100644 (file)
@@ -281,7 +281,7 @@ c      rlambd=0.3d0
 c      call intcartderiv
 c      call checkintcartgrad
       call zerograd
-      aincr=1.0D-5
+      aincr=1.0D-4
       write(iout,*) 'Calling CHECK_ECARTINT.'
       nf=0
       icall=0
index fc95e25..03dda37 100644 (file)
@@ -2860,7 +2860,8 @@ c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
 cd        write (iout,*) '*******i',i,' iti1',iti
 cd        write (iout,*) 'b1',b1(:,iti)
 cd        write (iout,*) 'b2',b2(:,iti)
-cd        write (iout,*) 'Ug',Ug(:,:,i-2)
+cd         write (iout,*) "phi(",i,")=",phi(i)," sin1",sin1," cos1",cos1
+cd         write (iout,*) 'Ug',Ug(:,:,i-2)
 c        if (i .gt. iatel_s+2) then
         if (i .gt. nnt+2) then
           call matvec2(Ug(1,1,i-2),b2(1,i-2),Ub2(1,i-2))
@@ -2915,7 +2916,11 @@ c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
           mu(k,i-2)=Ub2(k,i-2)+b1(k,i-1)
         enddo
 C        write (iout,*) 'mumu',i,b1(1,i-1),Ub2(1,i-2)
-c        write (iout,*) 'mu ',mu(:,i-2),i-2
+cd        write (iout,*) 'mu  ',mu(:,i-2),i-2
+cd        write (iout,*) 'b1  ',b1(:,i-1),i-2
+cd        write (iout,*) 'Ub2 ',Ub2(:,i-2),i-2
+cd        write (iout,*) 'Ug  ',Ug(:,:,i-2),i-2
+cd        write (iout,*) 'b2  ',b2(:,i-2),i-2
 cd        write (iout,*) 'mu1',mu1(:,i-2)
 cd        write (iout,*) 'mu2',mu2(:,i-2)
         if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or.wcorr6.gt.0.0d0)
@@ -6295,6 +6300,8 @@ c     &   sumene4,
 c     &   dscp1,dscp2,sumene
 c        sumene = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
         escloc = escloc + sumene
+        if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+     &     'escloc',i,sumene
 c        write (2,*) "i",i," escloc",sumene,escloc,it,itype(i)
 c     & ,zz,xx,yy
 c#define DEBUG
index d3a8a92..2248a3c 100644 (file)
@@ -129,7 +129,7 @@ c   calculating dE/ddc1
   18   continue
 c       do i=1,nres
 c       gloc(i,icg)=0.0D0
-c          write (iout,*) "poczotkoawy",i,gloc_sc(1,i,icg)
+c          write (iout,*) i,gloc_sc(1,i,icg)
 c       enddo
 C       print *,"tu dochodze??"
        if (nres.lt.2) return
index 0b75bf0..a890c0a 100644 (file)
@@ -162,6 +162,12 @@ c           endif
          enddo
         endif                                                                                           
       enddo
+      do i=1,nres-1
+        do j=1,3
+        dc_norm2(j,i+nres)=-dc_norm(j,i+nres)
+cc       write(iout,*) dc_norm2(j,i-2+nres),"dcnorm"
+        enddo
+      enddo
 Calculate derivative of Tauangle
 #ifdef PARINTDER
       do i=itau_start,itau_end
@@ -180,10 +186,6 @@ c the conventional case
         cost=dcos(theta(i))
         cost1=dcos(omicron(2,i-1))
         cosg=dcos(tauangle(1,i))
-        do j=1,3
-        dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
-cc       write(iout,*) dc_norm2(j,i-2+nres),"dcnorm"
-        enddo
         scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1))
         fac0=1.0d0/(sint1*sint)
         fac1=cost*fac0
@@ -209,7 +211,7 @@ c    Obtaining the gamma derivatives from sine derivative
             dsintau(j,1,2,i)=
      &        -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*dtheta(j,1,i))
      &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
-c            write(iout,*) "dsintau", dsintau(j,1,2,i)
+c            write(iout,*) "dsintau", dsintau(j,1,1,i),dsintau(j,1,2,i)
             dtauangle(j,1,2,i)=cosg_inv*dsintau(j,1,2,i)
 c Bug fixed 3/24/05 (AL)
             dsintau(j,1,3,i)=-sing*ctgt*dtheta(j,2,i)
@@ -236,7 +238,7 @@ c         write (iout,*) "else",i
          enddo
         endif
 c        do k=1,3                 
-c        write(iout,*) "tu",i,k,(dtauangle(j,1,k,i),j=1,3)        
+c        write(iout,*) "tu",1,i,k,(dtauangle(j,1,k,i),j=1,3)        
 c        enddo                
       enddo
 CC Second case Ca...Ca...Ca...SC
index 7cf3ed6..1896218 100644 (file)
@@ -284,7 +284,7 @@ C Check the gradient of the energy in Cartesian coordinates.
 c      call intcartderiv
 c      call checkintcartgrad
       call zerograd
-      aincr=1.0D-5
+      aincr=1.0D-4
       write(iout,*) 'Calling CHECK_ECARTINT.'
       nf=0
       icall=0
index 73e8384..2067629 100644 (file)
@@ -127,7 +127,7 @@ c   calculating dE/ddc1
   18   continue
 c       do i=1,nres
 c       gloc(i,icg)=0.0D0
-c          write (iout,*) "poczotkoawy",i,gloc_sc(1,i,icg)
+c          write (iout,*) i,gloc_sc(1,i,icg)
 c       enddo
        if (nres.lt.2) return
        if ((nres.lt.3).and.(itype(1).eq.10)) return
index 889bedd..e3ae39d 100644 (file)
@@ -199,7 +199,7 @@ c    Obtaining the gamma derivatives from sine derivative
             dsintau(j,1,2,i)=
      &        -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*dtheta(j,1,i))
      &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
-c            write(iout,*) "dsintau", dsintau(j,1,2,i)
+c            write(iout,*) "dsintau", dsintau(j,1,1,i),dsintau(j,1,2,i)
             dtauangle(j,1,2,i)=cosg_inv*dsintau(j,1,2,i)
 c Bug fixed 3/24/05 (AL)
             dsintau(j,1,3,i)=-sing*ctgt*dtheta(j,2,i)
@@ -226,7 +226,9 @@ c         write (iout,*) "else",i
          enddo
         endif
 c        do k=1,3                 
-c        write(iout,*) "tu",i,k,(dtauangle(j,1,k,i),j=1,3)        
+c        write(iout,*) "tu",1,i,k,(dtauangle(j,1,k,i),j=1,3)        
+c        write(iout,*) "tu",2,i,k,(dtauangle(j,2,k,i),j=1,3)        
+c        write(iout,*) "tu",3,i,k,(dtauangle(j,3,k,i),j=1,3)        
 c        enddo                
       enddo
 CC Second case Ca...Ca...Ca...SC