question about apply force using SMD

Hi All,
I have a question about how to use fix smd command to apply a pulling force on a group of atoms. The problem I am working on is simplified as following:
I have an atom at (0, 0, 10) position. I want to apply a pulling force to drag it to the z_positive direction. Then I use
fix 1 atom smd cvel 0.1 1.0 tether NULL NULL 15.0 0.0
to tether the atom to a spring ended at z=15 and moving to the z_positive direction with speed of 1.0 and a spring constant of 0.1
However, when I looked at the results, it seemed that the atom had been “pushed” to the z_negative direction instead of “pulled” to the z_positive direction.
I also printed out the arrays this fix computed. f_1[3] (the computed force in z by the fix command) also showed a negative value.
So I must misunderstood how the smd works. My questions are
1). What the fix command should be for my calculation? Should I change the spring constant to -0.1? or should I also change the velocity to -1.0?
2). What is the effect of the position of the tethered point (NULL, NULL, 15) ? or the z position of the tethered point can be any value larger than 10 (above the atom’s position in z_direction)?
3). What is the effect of R0? or it can be any value without changing the result?
4). In the array this fix computed, what are the meanings of the 5th and 6th scalars? The manual simply says the 5th is “the equilibrium distance of the spring”, and the 6th is “the distance between the two reference points”. Does the equilibrium distance of the spring mean when the distance between the atom and the tethered point equals this value, there will be no pulling? For the 6th scalar, what are “the two reference points”??

Thanks a lot!

Xiaoding

hi xiaoding,

up front, thanks a _lot_ for your well formulated and detailed
questions. you are setting a great example for others. this
style of inquiry is something that would be nice to see more often.

Hi All,
I have a question about how to use fix smd command to apply a pulling force
on a group of atoms. The problem I am working on is simplified as following:
I have an atom at (0, 0, 10) position. I want to apply a pulling force to
drag it to the z_positive direction. Then I use

fix 1 atom smd cvel 0.1 1.0 tether NULL NULL 15.0 0.0

to tether the atom to a spring ended at z=15 and moving to the z_positive
direction with speed of 1.0 and a spring constant of 0.1

However, when I looked at the results, it seemed that the atom had been
"pushed" to the z_negative direction instead of "pulled" to the z_positive
direction.

your velocity indeed has the wrong sign. please check out the
examples. the documentation says:

"In 'cvel' mode the distance R is incremented or decremented
monotonously according to the pulling (or pushing) velocity."
so your distance is 5 length units and it will be and every time unit
(not timestep!) one length unit will be added to the distance.

the syntax of fix smd is a bit quirky. in part this is due to keeping
it simple, in part due to the code inherited from fix spring.

I also printed out the arrays this fix computed. f_1[3] (the computed force
in z by the fix command) also showed a negative value.
So I must misunderstood how the smd works. My questions are

the logic was meant to be simple: if you want the draw an atom closer
to the reference point,
you have to use a negative velocity and if you want to push it away,
you need to use a positive velocity.

1). What the fix command should be for my calculation? Should I change the
spring constant to -0.1? or should I also change the velocity to -1.0?

you need to change the sign of the velocity. what units are you using?

2). What is the effect of the position of the tethered point (NULL, NULL,
15) ? or the z position of the tethered point can be any value larger than
10 (above the atom's position in z_direction)?

yes. all it is used for is to define a direction. what fix smd does is
more or less the same thing than what fix spring does, only that
the point that your spring is attached to is moving (at a constant
velocity in your case). if you use a NULL NULL <number> reference,
then only a force component in the z-direction is applied.

3). What is the effect of R0? or it can be any value without changing the
result?

please just set it to zero. it is a leftover of fix spring and has no real use.

4). In the array this fix computed, what are the meanings of the 5th and 6th
scalars? The manual simply says the 5th is "the equilibrium distance of the
spring", and the 6th is "the distance between the two reference points".
Does the equilibrium distance of the spring mean when the distance between
the atom and the tethered point equals this value, there will be no pulling?

again, just imagine fix smd to be fix spring with a moving reference point.
every time step the point in space, that the spring is attached to, will be
moved by a constant increment. then this position is compared to the
position of the tethered atom (or group of atoms) and a harmonic restoring
force is computed. if you want to plot the restoring force vs. pulling distance,
this would be the x-axis. the restoring force is zero, if the reference point
and the position of your atom is zero. but the pulling will continue at a
constant rate. the 6th value on the other hand is the actual distance of
the atom to the reference point. those will coincide, if there is no restoring
force, but that is rare. usually it will fluctuate around the value
for the equilibrium
distance. fix smd offers access to both values, since there are different
opinions about which of the two would be the better way to compute
a potential of mean force from.

For the 6th scalar, what are "the two reference points"??

the atom and the tether point. the wording is oriented at the couple mode.

HTH,
    axel.