fix with cutoff larger then pair cutoff

Hello,

I am interested in modifying one of lammps fix to change atom type
which are sufficiently far away from another type of atom on the fly.
I am planning to use fix bond/create fix as the template but to my
understanding this fix just calls already build neighbour-list and do
the necessary calculations.
what i would like to do is checking surrounding neighbours of a
special type of atom with cutoff twice as big as pair cutoff and
check any specified atom type is with in the neighbour list. if there
exist none change the atom type.

So the question is can i modify any fix to generate a neighbour list
with a specified cutoff which is different then the cutoff given in
neighbour command?
Best Regards
Murat

Hello,

I am interested in modifying one of lammps fix to change atom type
which are sufficiently far away from another type of atom on the fly.
I am planning to use fix bond/create fix as the template but to my
understanding this fix just calls already build neighbour-list and do
the necessary calculations.
what i would like to do is checking surrounding neighbours of a
special type of atom with cutoff twice as big as pair cutoff and
check any specified atom type is with in the neighbour list. if there
exist none change the atom type.

So the question is can i modify any fix to generate a neighbour list
with a specified cutoff which is different then the cutoff given in
neighbour command?

my suggestion would be to implement a variant of the
neighbor list code that finds the pairs that you are looking
for. with a neighbor list at twice the cutoff, you probably have
far too many "false positives". an important question also is,
how often you want to do this test.

cheers,
   axel.

I am planing to call the fix, app. at every 10000 md steps which maybe
more frequently depending on the system conformations (eg. every
1000).

I am planing to call the fix, app. at every 10000 md steps which maybe
more frequently depending on the system conformations (eg. every
1000).

as i wrote before, you'll have to build and maintain
your own neighbor list then. there are precedents for that.
it will be _very_ time consuming nevertheless.

axel.

So the question is can i modify any fix to generate a neighbour list
with a specified cutoff which is different then the cutoff given in
neighbour command?

No, you can't currently do that. The closest thing would
be to set a long neighbor skin distance.

Steve

Thnx for the information, I have already start some runs with various
neighbor skins but I also run a small script to check if i can
manipulate bin through putting the command into a loop,something like
given below.
2 loops, inner one is to change the bin size at specific run time,
outer loop for the length of the run.

label LOOP
variable Trun loop 20

label LOOPinner
variable Eachrunlength loop 100

if "${Eachrunlength} == 100" then "variable binadd equal 5.3" &
else "variable binadd equal 0.3"

neighbor ${binadd} bin
neigh_modify every 10 exclude type 2 3 exclude type 2 4 exclude type 3 4
communicate single vel yes

thermo_style custom step c_TempPoly
fix reaction all reaction 1 2 1 1.12 iparam 1 3 prob 1.0 54321
fix rejuvenation all rejuvenation 100 3 1 7.5 iparam 1 2

run 1

next Eachrunlength
jump Reactive LOOPinner

variable Eachrunlength delete
variable binadd delete

next Trun
jump Reactive LOOP

it doesnt work, and i guess its just becouse once neighbor command is
invoked one cannot change the bin value but only the parameter that
can tuned via modify command.

Best Regards
Murat

You can use the neighbor or neigh_modify command as many
times as you like.

Steve