[gmx-users] afm pulling
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
> 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
> 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
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
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