How is IMSD for diffusion coefficient implemented?

Joined: Feb 2006
Posts: 33
Forum Member

OP
Forum Member
Joined: Feb 2006
Posts: 33 
I was hoping someone might have a simple explanation for how the estimation of a translational diffusion coefficient is accomplished using IMSD. In particular, when calculating D for water, some waters may leave or enter the specified radial zone during the progression of frames of the trajectory being analyzed, so I wanted to know how the dynamic nature of the water population in the specified radial zone is handled in the calculation of the translational diffusion coefficient.
What happens when a water leaves or enters the specified range for calculating D?
Here's the input I'm using to do this:
coor anal select type oh2 end site select segid vxam end multi firstu 51 nunit 1 begin 100 skip 50 imsd 37 rspin 8.0 rspout 10.0 ncors 15 xbox 49.7 ybox 51.64 zbox 52.5
Thanks!



Re: How is IMSD for diffusion coefficient implemented?

Joined: Sep 2003
Posts: 4,797 Likes: 2
Forum Member

Forum Member
Joined: Sep 2003
Posts: 4,797 Likes: 2 
Diffusion in a restricted volume is less straightforward (less well defined) than in bulk. When analyzing diffusion in a shell with COOR ANAL as in your example water molecules contribute to the total MSD(t) only when they are in the shell, ie if water molecule A enters the shell at time t1 and leaves again at time t2 its contribution to the total MSD(t) will be proportional to the square root of <(r(t+T)r(T))**2> where < ... > indicates averaging over variable T, which in this case starts at t1 and ends at (t2t). At each step of the analysis all waters in the system are checked to see if they enter/exit zone of interest.
Lennart Nilsson Karolinska Institutet Stockholm, Sweden



Re: How is IMSD for diffusion coefficient implemented?

Joined: Feb 2006
Posts: 33
Forum Member

OP
Forum Member
Joined: Feb 2006
Posts: 33 
Excellent, thanks Prof. Nilsson!
An additional question:
I was also wondering about the variable NCORs. Clearly, from CORMAN.DOC, "NCORs = number of steps to compute vac or msd," but that's not quite enough information for me. In obtaining D from the slope of a least squares fit of points representing the time evolution of the selected molecule (water) positions, what role is the value of NCORs playing? Is it the number of points of that plot that precede the linear portion of the fitted line, or something like that?
Thanks!



Re: How is IMSD for diffusion coefficient implemented?

Joined: Sep 2003
Posts: 4,797 Likes: 2
Forum Member

Forum Member
Joined: Sep 2003
Posts: 4,797 Likes: 2 
Try the command and see what the resulting data file looks like; I am sure you will be able to figure things out. From one of the examples in corman.doc: ncors 20  ! compute MSD to NCORS*SKIP NCORS is the TOTAL number of points in MSD(t) vs t, out to NCORS*SKIP, and the separation of the points is SKIP*dt.
Lennart Nilsson Karolinska Institutet Stockholm, Sweden



Re: How is IMSD for diffusion coefficient implemented?

Joined: Feb 2006
Posts: 33
Forum Member

OP
Forum Member
Joined: Feb 2006
Posts: 33 
Here's what I did:
set 1 6.0 set 2 6.5
open unit 37 writ form name msd.test.@1@2.dat coor anal select type oh2 end site select segid vxam end multi firstu 51 nunit 1 begin 50 skip 1 imsd 37 rspin @1 rspout @2 ncors 15 xbox 49.700000 ybox 51.648240 zbox 52.500000 close unit 37
And here's what I got:
0.00000E+00 0.00000E+00 0.10000E+00 0.20190E+00 0.20000E+00 0.46315E+00 0.30000E+00 0.71621E+00 0.40000E+00 0.95839E+00 0.50000E+00 0.11913E+01 0.60000E+00 0.14156E+01 0.70000E+00 0.16484E+01 0.80000E+00 0.18786E+01 0.90000E+00 0.20616E+01 0.10000E+01 0.21883E+01 0.11000E+01 0.23693E+01 0.12000E+01 0.24601E+01 0.13000E+01 0.25306E+01 0.14000E+01 0.21968E+01
ESTIMATE of diffusion coefficient from 12 last points of MSD(t): D= 0.26742 [A**2/ps] (or 0.26742E04 [cm**2/s]) SD= 0.28533E01 R=0.9475 Yintercept= 0.43744
There do not appear to be any problems.



Re: How is IMSD for diffusion coefficient implemented?

Joined: Feb 2006
Posts: 33
Forum Member

OP
Forum Member
Joined: Feb 2006
Posts: 33 
For the diffusion calculation within a specified volume or range of radii, is there a way to obtain the number of atoms or molecules used for the calculation? I've looked through the builtin variables and couldn't find what I need.
Thanks a lot!
Last edited by Keith; 10/20/10 03:57 PM.



Re: How is IMSD for diffusion coefficient implemented?

Joined: Sep 2003
Posts: 4,797 Likes: 2
Forum Member

Forum Member
Joined: Sep 2003
Posts: 4,797 Likes: 2 
The number of points printed out just before the snippet you posted is the sum of the number of atoms used in all the starting time frames used. Any given combination of atom and starting time frame may be used just for some subset of time points in MSD(t). It should be relatively straightforward to count the number of atoms used in subroutine corfuncb in source/correl/solana.src
Last edited by lennart; 10/20/10 06:53 PM.
Lennart Nilsson Karolinska Institutet Stockholm, Sweden



Re: How is IMSD for diffusion coefficient implemented?

Joined: Feb 2006
Posts: 33
Forum Member

OP
Forum Member
Joined: Feb 2006
Posts: 33 
I see. Thanks Prof. Nilsson!



Re: How is IMSD for diffusion coefficient implemented?

Joined: Feb 2008
Posts: 41
Forum Member

Forum Member
Joined: Feb 2008
Posts: 41 
If I choose a group of atoms to do the IMSD analysis, will that gives the diffusion of the center of mass of the group of atoms?



Re: How is IMSD for diffusion coefficient implemented?

Joined: Sep 2003
Posts: 4,797 Likes: 2
Forum Member

Forum Member
Joined: Sep 2003
Posts: 4,797 Likes: 2 
No, MSD(t) is computed for each selected atom individually, and finally an average of all the individual MSDs is calculated.
Lennart Nilsson Karolinska Institutet Stockholm, Sweden




