Shielding part 2
authorAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Tue, 8 Sep 2015 09:13:17 +0000 (11:13 +0200)
committerAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Tue, 8 Sep 2015 09:13:17 +0000 (11:13 +0200)
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/gradient_p.F

index 49676d8..109af35 100644 (file)
@@ -10567,7 +10567,7 @@ C Lets add him to the list for gradient
         ishield_list(i)=ishield_list(i)+1
 C ishield_list is a list of non 0 side-chain that contribute to factor gradient
 C this list is essential otherwise problem would be O3
-        shield_list(ishield_list)=k
+        shield_list(ishield_list(i))=k
 C Lets have the sscale value
         if (sh_frac_dist.gt.1.0) then
          scale_fac_dist=1.0d0
@@ -10590,7 +10590,7 @@ C this is what is now we have the distance scaling now volume...
       long=long_r_sidechain(itype(k))
       costhet=1.0d0/dsqrt(1+short**2/dist_pep_side**2)
 C now costhet_grad
-       costhet_fac=costhet**3*short**2*(-0.5)/dist_pep_side
+       costhet_fac=costhet**3*short**2*(-0.5)/dist_pep_side**3
        do j=1,3
          costhet_grad(j)=costhet_fac*pep_side(j)
        enddo
@@ -10609,6 +10609,21 @@ C pep_side0pept_group is vector multiplication
       cosphi=1.0d0/dsqrt(1+rkprim**2/dist_pep_side**2)
       VofOverlap=VSolvSphere/2.0d0*(1.0-costhet)*(1.0-cosphi)
      &                    /VSolvSphere_div
+C now the gradient...
+C grad_shield is gradient of Calfa for peptide groups
+      do j=1,3
+      grad_shield(j,i)=grad_shield(j,i)
+C gradient po skalowaniu
+     &                +sh_frac_dist_grad(j)*VofOverlap
+C  gradient po costhet
+     &+scale_fac_dist*costhet_grad(j)
+C grad_shield_side is Cbeta sidechain gradient
+      grad_shield_side(j,ishield_list(i),i)=
+     &        sh_frac_dist_grad(j)*VofOverlap*2.0d0
+     &       +scale_fac_dist*costhet_grad(j)*2.0d0
+C grad_shield_side_ca is Calfa sidechain gradient
+      grad_shield_side_ca(j,ishield_list(i),i)=
+      enddo
       VolumeTotal=VolumeTotal+VofOverlap*scale_fac_dist
 C      if ((cosphi.le.0.0).or.(costhet.le.0.0)) write(iout,*) "ERROR",
 C     & cosphi,costhet
index acd4472..9961837 100644 (file)
@@ -384,6 +384,13 @@ C
           gliptranc(j,i)=0.0d0
           gliptranx(j,i)=0.0d0
           gradafm(j,i)=0.0d0
+          grad_shield(j,i)=0.0d0
+C grad_shield_side is Cbeta sidechain gradient
+          do kk=1,maxshieldlist
+           grad_shield_side(j,kk,i)=0.0d0
+C grad_shield_side_ca is Calfa sidechain gradient
+           grad_shield_side_ca(j,kk,i)=0.0d0
+          enddo
           do intertyp=1,3
            gloc_sc(intertyp,i,icg)=0.0d0
           enddo