problems with command fix rigid

Dear lammps users,

I am having problems simulating two rigid walls in a bath of fluid particles.

I went through the respective parts of the manual and tried different combinations of keywords. I also checked corresponding threads in the mailing list, so I guess I do avoid the usual pitfalls, however apparently I must still be doing something wrong. (See my input in the end of this mail.)

My system consists of LJ particles interacting through the same potential. The walls are made of type 1 particles (having no interaction between them) while the fluid contains type 2 particles (interacting with each other as well as with wall atoms).

My idea is to use the fix rigid command for the walls and use a separate fix nvt for the fluid. I need to remove certain components of the force and all components of the torque acting on the walls.

The below input runs without any problem on my laptop however the simulation explodes (loses atoms) on my desktop machine.

I tried using fix rigid/nvt for the walls thermostatting thorough an external thermostat, or using fix rigid/nve and getting them thermostatted by the fluid. I tried to decrease the time step which didn’t help either.

I use fix recenter to avoid that the walls start drifting (can this cause any problem?).

I have the impression that the problem might arise when lammps tries to integrate the equations of motion of the rigid walls.

I am using the 16Feb2016 version of lammps.

What totally confuses me is the fact that the same simulation is fine on my laptop while it explodes on my desktop.
I guess the mistake should be something trivial. Can you spot it?

Thank you in advance.
Gyorgy

my input:

units lj
dimension 3
boundary p p p
atom_style atomic

read_data walls.conf

pair_style lj/cut 3.5
pair_coeff 1 1 0.0 0.0
pair_coeff 1 2 1.0 1.0
pair_coeff 2 2 1.0 1.0
mass 1 1.0
mass 2 1.0

neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
neigh_modify exclude type 1 1

group wall1 id <= 512
group wall2 id 513:1024
group walls union wall1 wall2
group liquid subtract all wall1 wall2

thermo 1000
thermo_style custom step atoms etotal ke pe temp

dump myDump all custom 1000 dump1.dat id type x y z
dump_modify myDump sort id

velocity liquid create 1 87287 loop geom

fix rig_wall1 wall1 rigid/nvt single temp 1 1 10 force * on off off torque * off off off
fix rig_wall2 wall2 rigid/nvt single temp 1 1 10 force * on off off torque * off off off
fix fix_liq liquid nvt temp 1 1 10
fix fix_rec walls recenter INIT NULL NULL

run 100000

Dear lammps users,

I am having problems simulating two rigid walls in a bath of fluid
particles.

I went through the respective parts of the manual and tried different
combinations of keywords. I also checked corresponding threads in the
mailing list, so I guess I do avoid the usual pitfalls, however apparently I
must still be doing something wrong. (See my input in the end of this mail.)

My system consists of LJ particles interacting through the same potential.
The walls are made of type 1 particles (having no interaction between them)
while the fluid contains type 2 particles (interacting with each other as
well as with wall atoms).

My idea is to use the fix rigid command for the walls and use a separate fix
nvt for the fluid. I need to remove certain components of the force and all
components of the torque acting on the walls.

why do you do any time integration on those particles at all?
if you want to immobilize the wall particles, that is the easiest and
most effective way to do it.
the term "rigid" is often used in this context, but actually incorrect
and misleading.

The below input runs without any problem on my laptop however the simulation
explodes (loses atoms) on my desktop machine.

I tried using fix rigid/nvt for the walls thermostatting thorough an
external thermostat, or using fix rigid/nve and getting them thermostatted
by the fluid. I tried to decrease the time step which didn't help either.

i don't understand this part. if you turn your wall into rigid
objects, you cannot "thermostat the wall". the thermostat in fix
rigid/nvt applied to the center of mass and rotational motions of the
entire rigid object, but you want to disable those, if i understood
your correctly.

if you want the wall particles to be *stationary* but contain
vibrational kinetic energy, you'd have to use fix spring/self (with a
suitable force constant) and then do regular time integration (and
thermostatting) on them.

I use fix recenter to avoid that the walls start drifting (can this cause
any problem?).

I have the impression that the problem might arise when lammps tries to
integrate the equations of motion of the rigid walls.

I am using the 16Feb2016 version of lammps.

as usual, you may want to try the very latest patchlevel to make
certain, that you are not running into an issue that has since been
addressed.

What totally confuses me is the fact that the same simulation is fine on my
laptop while it explodes on my desktop.

are you using the *exact* same version of LAMMPS and the same settings/input.

the different behavior can also be caused by a bug, where data is not
properly initialized. different flavors or linux or even different
kernel patch levels can cause differences in the memory layout.

I guess the mistake should be something trivial. Can you spot it?

you input deck is incomplete, so it is difficult to confirm or
disprove anything. your neighbor list update only every 20 steps seems
quite aggressive... if you are having difficulties with time
integration or something related, you should use safe settings
everywhere.

axel.