[lammps-users] velocity set for interface study

If you want atoms to start moving at v, and keep moving
at v, then turn off the forces on them (fix setforce) and
initialize their v, and they will continue to move, assuming
you integrate them with fix nve.

Compute com works on groups of atoms, not regions. You
can make a group that is a region. As the compute com doc
page explains, it uses "unwrapped" coords to compute a c-o-m.
You have the freedom to set the image flags that affect
the unwrapping for systems with periodic BC, so its up
to you to figure out if the c-o-m it will compute is what
you want.

Steve

2010/3/31 Débora Marques <[email protected]>:

Hi,

The problem is that the NVT boundary condition is intrinsic to the phenomena I’m researching. In fact, I’m trying to reproduce some paper results, that means I cannot change the velocity neither cancel the force acting on the solids. In friction simulations it’s really important to have constant velocity. Usually, it’s done applying a spring to the block by one end and pulling at constant velocity by the other end. Since I read that this was not possible to simulate with Lammps in older emails from the users list, I’ve been trying to do it with “fix smd” and “fix tether”, besides “set velocity”. Can “fix smd” be used in NVT conditions? What other commands do you suggest?

Best regards,
Débora Marques

2010/4/1 Steve Plimpton <[email protected]>

2010/4/6 Débora Marques <[email protected]>:

Hi,

The problem is that the NVT boundary condition is intrinsic to the phenomena
I'm researching. In fact, I'm trying to reproduce some paper results, that
means I cannot change the velocity neither cancel the force acting on the
solids. In friction simulations it's really important to have constant
velocity. Usually, it's done applying a spring to the block by one end and
pulling at constant velocity by the other end. Since I read that this was
not possible to simulate with Lammps in older emails from the users list,
I've been trying to do it with "fix smd" and "fix tether", besides "set
velocity". Can "fix smd" be used in NVT conditions? What other commands do
you suggest?

what you describe is exactly what fix spring and fix smd are meant to do.
they are compatible with fix nvt, but there is no accounting for the additional
energy inserted into your system due to fix smd. fix nvt will happily thermostat
away to keep the kinetic energy of the group it is acting close to the desired
target.

just using set velocity and not computing the forces on these atoms (note the
force _due_ to these atoms on other are still computed) while integrating their
equations of motion with nve, would be equivalent to using fix spring
and fix smd
with an infinitely large spring constant.

hope that helps to clear up matters.

cheers,
axel.

You can do fix nvt on top of a background velocity. You just need
to bias the thermostat, to subtract out the constant velocity field,
leaving the thermal motion to thermostat. See the doc page
doc/Section_howto.html, section 4.16 for a discussion of thermostats
and biasing.

Steve

2010/4/6 Débora Marques <[email protected]>:

Dear Steve and Axel

I’ll comment directly in your answers to make it easier, if you don’t mind.
_“You can do fix nvt on top of a background velocity.” What is a background velocity? Do you mean this “velocity set” command?
_“You just need to bias the thermostat”: I’m already doing it as you can see by my input script. The lines:
fix 3 boundary nvt 0.033 0.033 0.75
fix_modify 3 temp temperatura

where “temperatura” is a compute that consider velocities only in y for temperature calculation, (the displacement is in x direction), “compute temperatura boundary temp/partial 0 1 0”.
_ “As the compute com doc page explains, it uses “unwrapped” coords to compute a c-o-m. You have the freedom to set the image flags that affect the unwrapping for systems with periodic BC, so its up to you to figure out if the c-o-m it will compute is what you want.”
Not really. According to the dump page, I cannot dump my c-o-m coords because it’s a global quantity, that’s why I’m using thermo_style. As I read in the thermo_modify and thermo_style page, it’s not possible to set the image flags in this output style. So, how can I be sure about the com output?

Thank you again,
Débora

2010/4/7 Steve Plimpton <[email protected]>

Steve

2010/4/12 Débora Marques <[email protected]>:

Dear Steve and Axel

I'll comment directly in your answers to make it easier, if you don't mind.
_"You can do fix nvt on top of a background velocity." What is a background
velocity? Do you mean this "velocity set" command?
_"You just need to bias the thermostat": I'm already doing it as you can see
by my input script. The lines:
fix 3 boundary nvt 0.033 0.033 0.75
fix_modify 3 temp temperatura

where "temperatura" is a compute that consider velocities only in y for
temperature calculation, (the displacement is in x direction), "compute
temperatura boundary temp/partial 0 1 0".

Imagine you have a group of atoms drifting with a velocity vx.
On top of this (superposed), each has a thermal velocity. The
c-o-m velocity is vx. Then you can thermostat just the
thermal part of the velocity by the commands you have above
if you defined "compute termperatura boundary temp/com". This
would take out the c-o-m velocity as a "bias" before computing the
T and doing the thermostattings. If you want to thermostat
in y, then use compute_style temp/partial as your bias.

_ "As the compute com doc page explains, it uses "unwrapped" coords to
compute a c-o-m. You have the freedom to set the image flags that affect the
unwrapping for systems with periodic BC, so its up to you to figure out if
the c-o-m it will compute is what you want."
Not really. According to the dump page, I cannot dump my c-o-m coords
because it's a global quantity, that's why I'm using thermo_style. As I read
in the thermo_modify and thermo_style page, it's not possible to set the
image flags in this output style. So, how can I be sure about the com
output?

The c-o-m of a group of atoms is a global quantity, just 3 numbers, x y z.
The image flags of a particular atom are set by you (e.g. in the data file),
and contribute to the calculation of the c-o-m if that atom is in the group.
The positional c-o-m doesn't contribute to the velocity c-o-m, which is
what is used in the temperature discussion above, so I'm not clear
on what you are asking regarding the x,y,z c-o-m.