reversible charge transfer

Dear all,

I would like to simulate a system where, when two atoms of given types
get closer than some cutoff, there is a reversible charge transfer
between them. To implement this kind of function, would you advise me
to write a fix from scratch, to start from an existing fix/pair style
such as qeq/reax or hbond/dreiding, or do you think of a better way?

Thank you,
Laurent

Dear all,

dear laurent,

I would like to simulate a system where, when two atoms of given types
get closer than some cutoff, there is a reversible charge transfer
between them. To implement this kind of function, would you advise me
to write a fix from scratch, to start from an existing fix/pair style
such as qeq/reax or hbond/dreiding, or do you think of a better way?

what fix would be a starting point depends on the kind of algorithm
that you want to apply to compute the charge, e.g. whether it would
be entirely distance based, or self-consistent. to make the process
of finding the atoms which need to swap charge efficient, you probably
want to use a neighbor list, so i would look at fix orient/fcc as a
starting point.

cheers,
     axel.

I concur that a fix is probably the best choice, and
it will need to use a neighbor list to find the pairs
you want to twiddle the charge on.

If you do:
grep request fix*cpp | grep neighbor

you will see all the fixes that use neighbor lists.

Steve