[gmx-users] Re: Re: Re: Definition of "polarization"
David van der Spoel
spoel at xray.bmc.uu.se
Fri Dec 16 09:07:30 CET 2005
Yinghong wrote:
> David:
>
> >/
> />/ /
> />/ />/ >/ Dear Gmx'ers:
> />/ />/ />/
> />/ />/ />/ As mentioned in the publication about shell water model, a shell
> />/ />/ />/ particle is connected to a dummy atom by a spring-like
> />/ connection with
> />/ />/ />/ the following relationship:
> />/ />/ />/
> />/ />/ />/ 1. K=sqr(qS)/(4*PHI*Epsilon*alpha),
> />/ />/ />/ 2. rsd=(4*PHI*Epsilon*alpha)*E / qS; (rsd is the distance
> between
> />/ />/ shell
> />/ />/ />/ and dummy particles at any moment, and E is refered to
> />/ electrical field/
> />/
> />/ >/ />/ strength).
> />/ />/ />/
> />/ />/ />/ Anyone can tell me where is the definition of two equations
> above,
> />/ />/ />/ especially in the case of* "isotropic polarization",* in GMX
> source/
> >/ />/ code.
> />/ />/ />/ Because in my simulation, what I want to polarized is not a
> water
> />/ />/ />/ molecule. So I need a definite instruction, any suggestion?
> />/ />/ /
> />/ />/ >gmx/src/gmxlib/bondfree.c
> />/ />/
> />/ />/ In this file, I can only locate the definition of K, and where is
> />/ />/ the formula for calculating rsd? Pls see the following code, it is
> />/ />/ refered to the case of isotropic polarization, ok?
> />/ /rsd is the input for the equation, as it is just the instantaneous
> />/ distance between shell and particle.
> />/ >/
> />/ />/
> />/ />/ />/ Secondly, how can I read the calculated value of spring
> constant
> />/ K by
> />/ />/ />/ GMX after I defined "alpha" and "qS"? Can "debug" realize
> it? If
> />/ yes,
> />/ />/ />/ how? Although I have used GMX for a long time, but that is
> the first />/ />/ />/ time for me to encounter such a problem.
> />/ />/ /
> />/ />/ >gmxdump -s topol.tpr | less
> />/ />/ >search for POL
> />/ />/ Yes, I can find the defined value for "polarization: alpha", is it
> />/ />/ possible for me to know the calculated value of spring constant
> K? If
> />/ />/ yes, how?
> />/ /
> />/
> />/ > It is not printed anywhere. If you want to see it you have to turn on
> />/ > the debug flag for mdrun.
> />/
> />/ Very sorry to bother you again, could you point it out much more
> />/ detailed? I have never used the "-debug" flag.
> />/
> />/ For example, in original, I used "mdrun -v -s full -e full -o full -c
> />/ after_full -g full" to run my simulation.
> />/
> />/ Where should "-debug" flag put in? And, where or which file can I find
> />/ the calculated value of spring constant K?
> /
> > mdrun -debug (other options)
> > you will get a file mdrun.log contaning lots of debug information,
> > search for ksh.
>
> I have tried "mdrun -debug", but I can not find out "ksh" item in
> mdrun.log. Because what I adopt is "isotropic polarization", maybe,
> there is no output for "ksh" in mdrun.log? At least, I can not find
> relevant information about the "ksh" output while debugging in the
> following code:
>
> real polarize(int nbonds,
> t_iatom forceatoms[],t_iparams forceparams[],
> rvec x[],rvec f[],t_forcerec *fr,t_graph *g,
> matrix box,real lambda,real *dvdlambda,
> t_mdatoms *md,int ngrp,real egnb[],real egcoul[],
> t_fcdata *fcd)
> {
> int i,m,ki,ai,aj,type;
> real dr,dr2,fbond,vbond,fij,vtot,ksh;
> rvec dx;
> ivec dt;
>
> vtot = 0.0;
> for(i=0; (i<nbonds); ) {
> type = forceatoms[i++];
> ai = forceatoms[i++];
> aj = forceatoms[i++];
> ksh =
> sqr(md->chargeT[aj])*ONE_4PI_EPS0/forceparams[type].polarize.alpha;
Weird, my 3.3 code has this extra line, please
add this line here and recompile:
if (debug)
fprintf(debug,"POL: ai + %d aj = %d ksh = %.3f\n",ai,aj,ksh);
>
> ki = pbc_rvec_sub(x[ai],x[aj],dx); /* 3 */
> dr2 = iprod(dx,dx); /* 5 */
> dr = dr2*invsqrt(dr2); /* 10 */
>
> *dvdlambda += harmonic(ksh,ksh,0,0,dr,lambda,&vbond,&fbond); /* 19 */
>
> if (dr2 == 0.0)
> continue;
>
> vtot += vbond;/* 1*/
> fbond *= invsqrt(dr2); /* 6 */
>
> if (g) {
> ivec_sub(SHIFT_IVEC(g,ai),SHIFT_IVEC(g,aj),dt);
> ki=IVEC2IS(dt);
> }
> for (m=0; (m<DIM); m++) { /* 15 */
> fij=fbond*dx[m];
> f[ai][m]+=fij;
> f[aj][m]-=fij;
> fr->fshift[ki][m]+=fij;
> fr->fshift[CENTRAL][m]-=fij;
> }
> } /* 59 TOTAL */
> return vtot;
> }
>
>
>
> Thanks and regards,
> Xie Yinghong
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gmx-users mailing list
> gmx-users at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-users
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
--
David.
________________________________________________________________________
David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596, 75124 Uppsala, Sweden
phone: 46 18 471 4205 fax: 46 18 511 755
spoel at xray.bmc.uu.se spoel at gromacs.org http://xray.bmc.uu.se/~spoel
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
More information about the gromacs.org_gmx-users
mailing list