injection & ejection problem in a channel

Dear LAMMPS users,

To simulate a channel flow with injection from the left end, and forced ejection from the right end, I have written a script as attached. In order to model that the ejection only happens near the right end, I defined a dynamic group and used it the “fix evaporate” command, like below:

############### ejection
region regID_eje block 39 40 -4 4 0 3
group grpID_eje dynamic all region regID_eje every 5
fix fixID_eje grpID_eje evaporate 5 1 regID_eje 29495

However, at runtime I met error message as below:

WARNING: One or more dynamic groups may not be updated at correct point in timestep (…/fix_group.cpp:149)
ERROR: Fix fixID_eje does not allow use of dynamic group (…/modify.cpp:228)

As it is noted in the manual that, the dynamic group may not be compatible with all fix commands, I would like to borrow your experience to see if the error is indeed caused by the limit of the command, or I made some other silly mistake in the input script.

Thanks in advance!

Best regard,

in.injection_ejection (1.34 KB)

Dear LAMMPS users,

To simulate a channel flow with injection from the left end, and forced
ejection from the right end, I have written a script as attached. In order
to model that the ejection only happens near the right end, I defined a
dynamic group and used it the "fix evaporate" command, like below:

############### ejection
region regID_eje block 39 40 -4 4 0 3
group grpID_eje dynamic all region regID_eje every 5
fix fixID_eje grpID_eje evaporate 5 1 regID_eje 29495

However, at runtime I met error message as below:

WARNING: One or more dynamic groups may not be updated at correct point in
timestep (../fix_group.cpp:149)
ERROR: Fix fixID_eje does not allow use of dynamic group (../modify.cpp:228)

As it is noted in the manual that, the dynamic group may not be compatible
with all fix commands, I would like to borrow your experience to see if the
error is indeed caused by the limit of the command, or I made some other
silly mistake in the input script.

the error message is accurate. there is no need for a dynamic group, too.

Hi Axel,

If I do not specify dynamic group for that region, then the pre-assigned atoms in the group will soon be deleted all, and the new atoms entering the region will not be deleted.

Quote from the manual:
“The dynamic style flags an existing or new group as dynamic. This means atoms will be (re)assigned to the group periodically as a simulation runs. This is in contrast to static groups where atoms are permanently assigned to the group.”

Hi Axel,

If I do not specify dynamic group for that region, then the pre-assigned
atoms in the group will soon be deleted all, and the new atoms entering the
region will not be deleted.

nonsense. see http://lammps.sandia.gov/doc/fix_evaporate.html

The input script is designed as injected atoms = ejected atoms as 1atom/5steps. If I do not use “dynamic” as in the attached input file, then at last, you can see increased total number of atoms.

in.injection_ejection (1.32 KB)

The input script is designed as injected atoms = ejected atoms as
1atom/5steps. If I do not use "dynamic" as in the attached input file, then
at last, you can see increased total number of atoms.

that is because you don't use a group for fix evaporate that does not
include the newly added atoms.

having a dynamic group with parent group all applied to the ejection
region is the same as using fix evaporate on group all. the selection
on the ejection region will be done by fix evaporate anyway.

PEBCAC!

Thanks a lot Axel. Now I understand the proper use of this fix evaporate command.