[gmx-users] afm pulling

Emily Walton ewalton at MIT.EDU
Thu Apr 27 14:56:06 CEST 2006


> I just have another question about the unit vector describing the
> direction of pulling. Should it be always a unit vector (1 1 1 for
> example)? Should I asumme then that the direction of the pulling is  
> the
> one specified by the init vector or could I used that same vector for
> example as afm_dir?

The pull direction should always be a unit vector; however, (1 1 1)  
is not a unit vector.

A unit vector has its length equal to 1. (1 1 1) has a length of sqrt 
(3). I think that having a non-unit vector will change your pull  
velocity, so that in this case, you'll pulling sqrt(3) times as fast  
as you thought you were. I haven't gone through the code, however, so  
this is a conjecture.

afm_init describes only the initial position of the spring. afm_dir  
describes how that position will change with time. You can normalize  
afm_init and use it for afm_dir if you want- you'd be pulling along  
the direction connecting the com of your reference and pull groups.

> Also, I don't know if I am doing something wrong but using afm_ini  
> 1 1 1
> and afm_dir as the vector that connects the two atoms I've chosen (the
> pulled and the ref) I am not able to get the spring and the pulled  
> atom
> at the same coordinates at the beginning of pull.pdo file.

I've noticed that as well- using the coordinates from my input  
structure (using g_dist to find the distance between the com of my  
ref group and the com of the pull group) doesn't give *exactly* the  
same position.

My guess is that the simulations undergoes one time step before  
starting the pulling, because it's always just a tiny bit off. But  
that's just a guess. If I want to get it exact, I'll run just one  
time step of pulling to get the first line of the pull.pdo file (or  
interrupt a run after a few seconds), and then modify the pull.ppa  
based on that. So in your example:

> # Ref. Group 'm'
> # Nr. of pull groups 1
> # Group 1 'a_13586'  afmVec 1.000000 1.000000 1.000000  AfmRate
> 0.020000  AfmK 3000.000000
> #####
> 0.000000        3.713000        5.627000        5.181000  
> 3.694000        3.732000        5.712000        5.542000  
> 4.890000        5.472001

you'd take the initial position (afm_init) as (3.7320000-3.71300000,  
5.712000-5.627000, 4.890000-5.181000) to get the spring in the exact  
position as the pull group when pulling starts. Note that I may have  
messed up the signs there, I always run a second one-step pull to  
double check.

My guess is that you made a sign error with afm_init, since 3.713 
+0.019 gives 3.732 and 3.713-0.019 gives 3.694. It's just arithmetic.

I haven't used absolute coordinates, so I can't comment on why that  
was ok when the other one wasn't.


More information about the gromacs.org_gmx-users mailing list