From 7ac044004baeac41c3c91c38a1b3c3546287e624 Mon Sep 17 00:00:00 2001 From: Adam Sieradzan Date: Tue, 8 Sep 2015 11:13:17 +0200 Subject: [PATCH] Shielding part 2 --- source/unres/src_MD-M/energy_p_new_barrier.F | 19 +++++++++++++++++-- source/unres/src_MD-M/gradient_p.F | 7 +++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/source/unres/src_MD-M/energy_p_new_barrier.F b/source/unres/src_MD-M/energy_p_new_barrier.F index 49676d8..109af35 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -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 diff --git a/source/unres/src_MD-M/gradient_p.F b/source/unres/src_MD-M/gradient_p.F index acd4472..9961837 100644 --- a/source/unres/src_MD-M/gradient_p.F +++ b/source/unres/src_MD-M/gradient_p.F @@ -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 -- 1.7.9.5