From: Adam Sieradzan Date: Mon, 16 Feb 2015 12:34:30 +0000 (+0100) Subject: Poprawiony src_MD-M gradient X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?p=unres.git;a=commitdiff_plain;h=73e0a2bb0df237ed85b93166e47c497fa22ea30d Poprawiony src_MD-M gradient --- diff --git a/source/unres/src_MD-M/intcartderiv.F b/source/unres/src_MD-M/intcartderiv.F index 94b3989..c80ee01 100644 --- a/source/unres/src_MD-M/intcartderiv.F +++ b/source/unres/src_MD-M/intcartderiv.F @@ -161,6 +161,11 @@ c Obtaining the gamma derivatives from cosine derivative enddo endif enddo + do i=1,nres-1 + do j=1,3 + dc_norm2(j,i+nres)=-dc_norm(j,i+nres) + enddo + enddo Calculate derivative of Tauangle #ifdef PARINTDER do i=itau_start,itau_end @@ -179,10 +184,10 @@ 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) +C do j=1,3 +C dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres) cc write(iout,*) dc_norm2(j,i-2+nres),"dcnorm" - enddo +C enddo scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1)) fac0=1.0d0/(sint1*sint) fac1=cost*fac0 @@ -253,9 +258,9 @@ c the conventional case cost=dcos(omicron(1,i)) cost1=dcos(theta(i-1)) cosg=dcos(tauangle(2,i)) -c do j=1,3 -c dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres) -c enddo +C do j=1,3 +C dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres) +C enddo scalp=scalar(dc_norm(1,i-3),dc_norm(1,i-1+nres)) fac0=1.0d0/(sint1*sint) fac1=cost*fac0 @@ -269,27 +274,32 @@ c Obtaining the gamma derivatives from sine derivative call vecpr(dc_norm2(1,i-1+nres),dc_norm(1,i-2),vp1) call vecpr(dc_norm(1,i-3),dc_norm(1,i-1+nres),vp2) call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3) +C print *,"chuj" do j=1,3 ctgt=cost/sint ctgt1=cost1/sint1 cosg_inv=1.0d0/cosg dsintau(j,2,1,i)=-sing*ctgt1*dtheta(j,1,i-1) & +(fac0*vp1(j)-sing*dc_norm(j,i-3))*vbld_inv(i-2) -c write(iout,*) i,j,dsintau(j,2,1,i),sing*ctgt1*dtheta(j,1,i-1), -c &fac0*vp1(j),sing*dc_norm(j,i-3),vbld_inv(i-2),"dsintau(2,1)" + +C write(12,*) i,j,dc_norm2(1,i-1+nres),dc_norm(1,i-2) + dtauangle(j,2,1,i)=cosg_inv*dsintau(j,2,1,i) + dsintau(j,2,2,i)= & -sing*(ctgt1*dtheta(j,2,i-1)+ctgt*domicron(j,1,1,i)) & -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1) -c write(iout,*) "sprawdzenie",i,j,sing*ctgt1*dtheta(j,2,i-1), -c & sing*ctgt*domicron(j,1,2,i), -c & (fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1) + dtauangle(j,2,2,i)=cosg_inv*dsintau(j,2,2,i) -c Bug fixed 3/24/05 (AL) + dsintau(j,2,3,i)=-sing*ctgt*domicron(j,1,2,i) & +(fac0*vp3(j)-sing*dc_norm(j,i-1+nres))*vbld_inv(i-1+nres) + c & +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1) dtauangle(j,2,3,i)=cosg_inv*dsintau(j,2,3,i) + + + enddo c Obtaining the gamma derivatives from cosine derivative else @@ -327,10 +337,10 @@ c the conventional case cost=dcos(omicron(1,i)) cost1=dcos(omicron(2,i-1)) cosg=dcos(tauangle(3,i)) - do j=1,3 - dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres) -c dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres) - enddo +C do j=1,3 +C dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres) +C dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres) +C enddo scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres)) fac0=1.0d0/(sint1*sint) fac1=cost*fac0 @@ -362,6 +372,8 @@ c Bug fixed 3/24/05 (AL) & *vbld_inv(i-1+nres) c & +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1) dtauangle(j,3,3,i)=cosg_inv*dsintau(j,3,3,i) + + enddo c Obtaining the gamma derivatives from cosine derivative else diff --git a/source/unres/src_MD/CMakeLists.txt b/source/unres/src_MD/CMakeLists.txt index fadf9ca..c210fdc 100644 --- a/source/unres/src_MD/CMakeLists.txt +++ b/source/unres/src_MD/CMakeLists.txt @@ -166,14 +166,14 @@ set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} ) #========================================= if(UNRES_MD_FF STREQUAL "GAB" ) # set preprocesor flags - set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB") + set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC") #========================================= # Settings for E0LL2Y force field #========================================= elseif(UNRES_MD_FF STREQUAL "E0LL2Y") # set preprocesor flags - set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DSCCORPDB" ) + set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" ) endif(UNRES_MD_FF STREQUAL "GAB") #========================================= diff --git a/source/unres/src_MD/readpdb.F b/source/unres/src_MD/readpdb.F index 80c3fa3..48e0abd 100644 --- a/source/unres/src_MD/readpdb.F +++ b/source/unres/src_MD/readpdb.F @@ -252,20 +252,7 @@ ctest stop vbld(i+1)=dist(i,i+1) vbld_inv(i+1)=1.0d0/vbld(i+1) if (i.gt.1) theta(i+1)=alpha(i-1,i,i+1) - if (i.gt.2) then - if (i.le.nres) phi(i+1)=beta(i-2,i-1,i,i+1) - if ((itype(i).ne.10).and.(itype(i-1).ne.10)) then - tauangle(3,i+1)=beta(i+nres-1,i-1,i,i+nres) - endif - if (itype(i-1).ne.10) then - tauangle(1,i+1)=beta(i-1+nres,i-1,i,i+1) - omicron(1,i)=alpha(i-2,i-1,i-1+nres) - omicron(2,i)=alpha(i-1+nres,i-1,i) - endif - if (itype(i).ne.10) then - tauangle(2,i+1)=beta(i-2,i-1,i,i+nres) - endif - endif + if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1) enddo c if (unres_pdb) then c if (itype(1).eq.21) then diff --git a/source/unres/src_MIN/CMakeLists.txt b/source/unres/src_MIN/CMakeLists.txt index ed0bb6e..d8eb8de 100644 --- a/source/unres/src_MIN/CMakeLists.txt +++ b/source/unres/src_MIN/CMakeLists.txt @@ -139,7 +139,7 @@ set_property(SOURCE ${UNRES_MIN_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} ) set_property(SOURCE ${UNRES_MIM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} ) # set preprocesor flags -set(CPPFLAGS "PROCOR -DLINUX -DISNAN -DSPLITELE -DLANG0" ) +set(CPPFLAGS "PROCOR -DLINUX -DISNAN -DSPLITELE -DLANG0 -DSCCORPDB" ) if (Fortran_COMPILER_NAME STREQUAL "ifort") # Add ifort preprocessor flags