Merge branch 'master' into multichain
authorAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Tue, 24 Feb 2015 11:10:50 +0000 (12:10 +0100)
committerAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Tue, 24 Feb 2015 11:10:50 +0000 (12:10 +0100)
Conflicts:
.gitignore
source/unres/src_MD-M/energy_p_new_barrier.F

1  2 
.gitignore
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/parmread.F

diff --cc .gitignore
@@@ -12,10 -12,8 +12,15 @@@ cinfo.
  # ignore build dir
  build/
  build2/
++<<<<<<< HEAD
 +build_prere/
 +period_build/
 +period_build2/
 +build_*/
++=======
+ build_*/
+ period_*/
++>>>>>>> master
  
  # latex files in documentation 
  doc/*/*.aux
@@@ -2554,15 -2465,15 +2631,15 @@@ c        if (i.gt. iatel_s+1 .and. i.lt
            if (itype(i-1).le.ntyp) then
              iti1 = itortyp(itype(i-1))
            else
 -            iti1=ntortyp+1
 +            iti1=ntortyp
            endif
          else
 -          iti1=ntortyp+1
 +          iti1=ntortyp
          endif
          do k=1,2
-           mu(k,i-2)=Ub2(k,i-2)+b1(k,iti1)
+           mu(k,i-2)=Ub2(k,i-2)+b1(k,i-1)
          enddo
- cd        write (iout,*) 'mu ',mu(:,i-2)
+ c        write (iout,*) 'mu ',mu(:,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)
@@@ -3014,39 -2909,8 +3091,40 @@@ C 14/01/2014 TURN3,TUNR4 does no go und
          xmedi=c(1,i)+0.5d0*dxi
          ymedi=c(2,i)+0.5d0*dyi
          zmedi=c(3,i)+0.5d0*dzi
 +C Return atom into box, boxxsize is size of box in x dimension
 +c  194   continue
 +c        if (xmedi.gt.((0.5d0)*boxxsize)) xmedi=xmedi-boxxsize
 +c        if (xmedi.lt.((-0.5d0)*boxxsize)) xmedi=xmedi+boxxsize
 +C Condition for being inside the proper box
 +c        if ((xmedi.gt.((0.5d0)*boxxsize)).or.
 +c     &       (xmedi.lt.((-0.5d0)*boxxsize))) then
 +c        go to 194
 +c        endif
 +c  195   continue
 +c        if (ymedi.gt.((0.5d0)*boxysize)) ymedi=ymedi-boxysize
 +c        if (ymedi.lt.((-0.5d0)*boxysize)) ymedi=ymedi+boxysize
 +C Condition for being inside the proper box
 +c        if ((ymedi.gt.((0.5d0)*boxysize)).or.
 +c     &       (ymedi.lt.((-0.5d0)*boxysize))) then
 +c        go to 195
 +c        endif
 +c  196   continue
 +c        if (zmedi.gt.((0.5d0)*boxzsize)) zmedi=zmedi-boxzsize
 +c        if (zmedi.lt.((-0.5d0)*boxzsize)) zmedi=zmedi+boxzsize
 +C Condition for being inside the proper box
 +c        if ((zmedi.gt.((0.5d0)*boxzsize)).or.
 +c     &       (zmedi.lt.((-0.5d0)*boxzsize))) then
 +c        go to 196
 +c        endif
 +          xmedi=mod(xmedi,boxxsize)
 +          if (xmedi.lt.0) xmedi=xmedi+boxxsize
 +          ymedi=mod(ymedi,boxysize)
 +          if (ymedi.lt.0) ymedi=ymedi+boxysize
 +          zmedi=mod(zmedi,boxzsize)
 +          if (zmedi.lt.0) zmedi=zmedi+boxzsize
 +
          num_conti=num_cont_hb(i)
+ c        write(iout,*) "JESTEM W PETLI"
          call eelecij(i,i+3,ees,evdw1,eel_loc)
          if (wturn4.gt.0.0d0 .and. itype(i+2).ne.ntyp1) 
       &   call eturn4(i,eello_turn4)
@@@ -3637,8 -3380,51 +3727,53 @@@ cgrad            endi
  C Contribution to the local-electrostatic energy coming from the i-j pair
            eel_loc_ij=a22*muij(1)+a23*muij(2)+a32*muij(3)
       &     +a33*muij(4)
 +c          write (iout,*) 'i',i,' j',j,itype(i),itype(j),
 +c     &                     ' eel_loc_ij',eel_loc_ij
+ c          write(iout,*) 'muije=',muij(1),muij(2),muij(3),muij(4)
+ C Calculate patrial derivative for theta angle
+ #ifdef NEWCORR
+          geel_loc_ij=a22*gmuij1(1)
+      &     +a23*gmuij1(2)
+      &     +a32*gmuij1(3)
+      &     +a33*gmuij1(4)         
+ c         write(iout,*) "derivative over thatai"
+ c         write(iout,*) a22*gmuij1(1), a23*gmuij1(2) ,a32*gmuij1(3),
+ c     &   a33*gmuij1(4) 
+          gloc(nphi+i,icg)=gloc(nphi+i,icg)+
+      &      geel_loc_ij*wel_loc
+ c         write(iout,*) "derivative over thatai-1" 
+ c         write(iout,*) a22*gmuij2(1), a23*gmuij2(2) ,a32*gmuij2(3),
+ c     &   a33*gmuij2(4)
+          geel_loc_ij=
+      &     a22*gmuij2(1)
+      &     +a23*gmuij2(2)
+      &     +a32*gmuij2(3)
+      &     +a33*gmuij2(4)
+          gloc(nphi+i-1,icg)=gloc(nphi+i-1,icg)+
+      &      geel_loc_ij*wel_loc
+ c  Derivative over j residue
+          geel_loc_ji=a22*gmuji1(1)
+      &     +a23*gmuji1(2)
+      &     +a32*gmuji1(3)
+      &     +a33*gmuji1(4)
+ c         write(iout,*) "derivative over thataj" 
+ c         write(iout,*) a22*gmuji1(1), a23*gmuji1(2) ,a32*gmuji1(3),
+ c     &   a33*gmuji1(4)
+         gloc(nphi+j,icg)=gloc(nphi+j,icg)+
+      &      geel_loc_ji*wel_loc
+          geel_loc_ji=
+      &     +a22*gmuji2(1)
+      &     +a23*gmuji2(2)
+      &     +a32*gmuji2(3)
+      &     +a33*gmuji2(4)
+ c         write(iout,*) "derivative over thataj-1"
+ c         write(iout,*) a22*gmuji2(1), a23*gmuji2(2) ,a32*gmuji2(3),
+ c     &   a33*gmuji2(4)
+          gloc(nphi+j-1,icg)=gloc(nphi+j-1,icg)+
+      &      geel_loc_ji*wel_loc
+ #endif
+ cd          write (iout,*) 'i',i,' j',j,' eel_loc_ij',eel_loc_ij
  
            if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
       &            'eelloc',i,j,eel_loc_ij
@@@ -4023,21 -3829,83 +4180,88 @@@ c        write(iout,*) "iti1",iti1," it
          call transpose2(EUg(1,1,i+1),e1t(1,1))
          call transpose2(Eug(1,1,i+2),e2t(1,1))
          call transpose2(Eug(1,1,i+3),e3t(1,1))
+ C Ematrix derivative in theta
+         call transpose2(gtEUg(1,1,i+1),gte1t(1,1))
+         call transpose2(gtEug(1,1,i+2),gte2t(1,1))
+         call transpose2(gtEug(1,1,i+3),gte3t(1,1))
          call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
+ c       eta1 in derivative theta
+         call matmat2(gte1t(1,1),a_temp(1,1),gte1a(1,1))
          call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
-         s1=scalar2(b1(1,iti2),auxvec(1))
+ c       auxgvec is derivative of Ub2 so i+3 theta
+         call matvec2(e1a(1,1),gUb2(1,i+3),auxgvec(1)) 
+ c       auxalary matrix of E i+1
+         call matvec2(gte1a(1,1),Ub2(1,i+3),auxgEvec1(1))
+ c        s1=0.0
+ c        gs1=0.0    
+         s1=scalar2(b1(1,i+2),auxvec(1))
+ c derivative of theta i+2 with constant i+3
+         gs23=scalar2(gtb1(1,i+2),auxvec(1))
+ c derivative of theta i+2 with constant i+2
+         gs32=scalar2(b1(1,i+2),auxgvec(1))
+ c derivative of E matix in theta of i+1
+         gsE13=scalar2(b1(1,i+2),auxgEvec1(1))
          call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
+ c       ea31 in derivative theta
+         call matmat2(a_temp(1,1),gte3t(1,1),gtae3(1,1))
          call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
-         s2=scalar2(b1(1,iti1),auxvec(1))
+ c auxilary matrix auxgvec of Ub2 with constant E matirx
+         call matvec2(ae3(1,1),gUb2(1,i+2),auxgvec(1))
+ c auxilary matrix auxgEvec1 of E matix with Ub2 constant
+         call matvec2(gtae3(1,1),Ub2(1,i+2),auxgEvec3(1))
+ c        s2=0.0
+ c        gs2=0.0
+         s2=scalar2(b1(1,i+1),auxvec(1))
+ c derivative of theta i+1 with constant i+3
+         gs13=scalar2(gtb1(1,i+1),auxvec(1))
+ c derivative of theta i+2 with constant i+1
+         gs21=scalar2(b1(1,i+1),auxgvec(1))
+ c derivative of theta i+3 with constant i+1
+         gsE31=scalar2(b1(1,i+1),auxgEvec3(1))
+ c        write(iout,*) gs1,gs2,'i=',i,auxgvec(1),gUb2(1,i+2),gtb1(1,i+2),
+ c     &  gtb1(1,i+1)
          call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
+ c two derivatives over diffetent matrices
+ c gtae3e2 is derivative over i+3
+         call matmat2(gtae3(1,1),e2t(1,1),gtae3e2(1,1))
+ c ae3gte2 is derivative over i+2
+         call matmat2(ae3(1,1),gte2t(1,1),ae3gte2(1,1))
          call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
+ c three possible derivative over theta E matices
+ c i+1
+         call matmat2(ae3e2(1,1),gte1t(1,1),gtEpizda1(1,1))
+ c i+2
+         call matmat2(ae3gte2(1,1),e1t(1,1),gtEpizda2(1,1))
+ c i+3
+         call matmat2(gtae3e2(1,1),e1t(1,1),gtEpizda3(1,1))
          s3=0.5d0*(pizda(1,1)+pizda(2,2))
+         gsEE1=0.5d0*(gtEpizda1(1,1)+gtEpizda1(2,2))
+         gsEE2=0.5d0*(gtEpizda2(1,1)+gtEpizda2(2,2))
+         gsEE3=0.5d0*(gtEpizda3(1,1)+gtEpizda3(2,2))
          eello_turn4=eello_turn4-(s1+s2+s3)
 +c             write(iout,*)'chujOWO', auxvec(1),b1(1,iti2)
 +        if (energy_dec) write (iout,'(a6,2i5,0pf7.3,3f7.3)')
 +     &      'eturn4',i,j,-(s1+s2+s3),s1,s2,s3
 +cd        write (2,*) 'i,',i,' j',j,'eello_turn4',-(s1+s2+s3),
 +cd     &    ' eello_turn4_num',8*eello_turn4_num
+ #ifdef NEWCORR
+         gloc(nphi+i,icg)=gloc(nphi+i,icg)
+      &                  -(gs13+gsE13+gsEE1)*wturn4
+         gloc(nphi+i+1,icg)= gloc(nphi+i+1,icg)
+      &                    -(gs23+gs21+gsEE2)*wturn4
+         gloc(nphi+i+2,icg)= gloc(nphi+i+2,icg)
+      &                    -(gs32+gsE31+gsEE3)*wturn4
+ c         gloc(nphi+i+1,icg)=gloc(nphi+i+1,icg)-
+ c     &   gs2
+ #endif
+         if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
+      &      'eturn4',i,j,-(s1+s2+s3)
+ c        write (iout,*) 'i,',i,' j',j,'eello_turn4',-(s1+s2+s3),
+ c     &    ' eello_turn4_num',8*eello_turn4_num
  C Derivatives in gamma(i)
          call transpose2(EUgder(1,1,i+1),e1tder(1,1))
          call matmat2(e1tder(1,1),a_temp(1,1),auxmat(1,1))
@@@ -4655,9 -4304,6 +4879,8 @@@ cmc        if (ii.gt.nres .and. itype(i
  C 18/07/06 MC: Use the convention that the first nss pairs are SS bonds
          if (.not.dyn_ss .and. i.le.nss) then
  C 15/02/13 CC dynamic SSbond - additional check
 +         if (ii.gt.nres 
 +     &       .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then 
- >>>>>>> f5379d3246c4bd95e946c4d35d4a1c13e329c4cb
            call ssbond_ene(iii,jjj,eij)
            ehpb=ehpb+2*eij
           endif
Simple merge