Fixed the homology gradient in finegrain mode
authorAdam Liwo <adam@piasek4.chem.univ.gda.pl>
Fri, 12 Jun 2015 14:23:42 +0000 (16:23 +0200)
committerAdam Liwo <adam@piasek4.chem.univ.gda.pl>
Fri, 12 Jun 2015 14:23:42 +0000 (16:23 +0200)
source/unres/src_MD/Makefile_MPICH_ifort
source/unres/src_MD/energy_p_new_barrier.F
source/unres/src_MD/gradient_p.F
source/wham/src/enecalc1.F

index a747321..d6ae5dd 100644 (file)
@@ -1,6 +1,6 @@
 ###################################################################
-#INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh
-INSTALL_DIR = /users/software/mpich2-1.4.1p1_intel
+INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh
+#INSTALL_DIR = /users/software/mpich2-1.4.1p1_intel
 
 
 FC= ifort
@@ -15,8 +15,8 @@ FFLAGSE = -c  -O3 -ipo  -opt_report -I$(INSTALL_DIR)/include
 #FFLAGSE = ${FFLAGS1}
 
 # -lmpl necessary in mpich
-LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -lmpl -CB
-#LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -CB
+#LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -lmpl -CB
+LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -CB
 
 ARCH = LINUX
 PP = /lib/cpp -P
@@ -68,8 +68,8 @@ GAB: ${object} xdrf/libxdrf.a
 
 E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
        -DSPLITELE -DLANG0
-E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH2_E0LL2Y.exe
-#E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH_E0LL2Y.exe
+#E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH2_E0LL2Y.exe
+E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH_E0LL2Y.exe
 E0LL2Y: ${object} xdrf/libxdrf.a
        cc -o compinfo compinfo.c
        ./compinfo | true
index 60cb90b..002f211 100644 (file)
@@ -543,6 +543,7 @@ cMS$ATTRIBUTES C ::  proc_proc
       include 'COMMON.TIME1'
       include 'COMMON.MAXGRAD'
       include 'COMMON.SCCOR'
+      include 'COMMON.MD'
 #ifdef TIMING
 #ifdef MPI
       time01=MPI_Wtime()
@@ -813,6 +814,14 @@ c      enddo
 #endif
         enddo
       enddo 
+      if (constr_homology.gt.0) then
+        do i=1,nct
+          do j=1,3
+            gradc(j,i,icg)=gradc(j,i,icg)+duscdiff(j,i)
+            gradx(j,i,icg)=gradx(j,i,icg)+duscdiffx(j,i)
+          enddo
+        enddo
+      endif
 #ifdef DEBUG
       write (iout,*) "gloc before adding corr"
       do i=1,4*nres
@@ -6330,8 +6339,11 @@ c       grad_theta3=sum_sgtheta/sum_gtheta 1/*theta(i)? s. line below
 c       grad_theta3=sum_sgtheta/sum_gtheta
 c
 c       Final value of gradient using same var as in Econstr_back
-        dutheta(i-2)=sum_sgtheta/sum_gtheta*waga_theta
+        gloc(nphi+i-2,icg)=gloc(nphi+i-2,icg)
+     &      +sum_sgtheta/sum_gtheta*waga_theta
      &               *waga_homology(iset)
+c        dutheta(i-2)=sum_sgtheta/sum_gtheta*waga_theta
+c     &               *waga_homology(iset)
 c       dutheta(i)=sum_sgtheta/sum_gtheta
 c
 c       Uconst_back=Uconst_back+waga_theta*utheta(i) ! waga_theta added as weight
index 8606ba4..dd59b31 100644 (file)
@@ -318,15 +318,15 @@ c If performing constraint dynamics, add the gradients of the constraint energy
         write (iout,*) i,(duscdiffx(j,i),j=1,3)
       enddo
 #endif
-c     if(usampl.and.totT.gt.eq_time) then
-      if(usampl.and.totT.gt.eq_time .or. constr_homology.gt.0) then
+      if(usampl.and.totT.gt.eq_time) then
+c      if(usampl.and.totT.gt.eq_time .or. constr_homology.gt.0) then
 c
 c     Setting suited bounds for HM restrs
 c
          do i=1,nct
            do j=1,3
-             gradc(j,i,icg)=gradc(j,i,icg)+dudconst(j,i)+duscdiff(j,i)
-             gradx(j,i,icg)=gradx(j,i,icg)+dudxconst(j,i)+duscdiffx(j,i)
+             gradc(j,i,icg)=gradc(j,i,icg)+dudconst(j,i)
+             gradx(j,i,icg)=gradx(j,i,icg)+dudxconst(j,i)
            enddo
 #ifdef DEBUG
          write (iout,*) "i",i," gradc",(gradc(j,i,icg),j=1,3)
index c8901ad..0f7d34c 100644 (file)
@@ -519,7 +519,7 @@ c        else
 c     &    potE(i,iparm),-entfac(i),rms_nat,iscore
      &    potE(i,nparmset),-entfac(i),rms_nat,iscore
 c        endif
-        write (iout,'(2i5,3e15.5)') i,me,potE(i,iparm),-entfac(i)
+c        write (iout,'(2i5,3e15.5)') i,me,potE(i,iparm),-entfac(i)
 #ifndef MPI
         if (cxfile) call cxwrite(ixdrf,csingle,potE(i,nparmset),
      &    -entfac(i),rms_nat,iscore)