Thanks for your hints.
I am programing .cpp and .h to carry out ES+EAM potential.
In the formula, long-range 1/r_ij need be evaluated.
Streitz and Mintmire refer that they use standard ewald summation to get long-range 1/r_ij.
Indeed, long-range electrostatics has the form of q_iq_j/r_ij, similar as 1/r_ij when charges are constant.
In lammps, long ones and ewald can be combined to get long-range electrostaitc q_iq_j/r_ij.
Can the code in long ones and ewald.cpp be tranformmed to someone what i need-- long-range 1/r_ij?

From the S/M paper abstract:
We report on the development of a computational method for molecular-dynamics simulations, which explicitly includes variable >charge transfer between anions and cations.

As I said in the earlier email, unless you do charge equilibration you
are not implementing the S/M potential. Are you talking about some
static charge variant? If so, I imagine you want standard
Ewald, i.e. an infinite sum on QiQj/r, which is what LAMMPS
already does.

Meihai,
Here is a philosophical and practical hint for you: Your goals should
ALWAYS set your pathway.
If your goal is to learn about lammps and furthermore, to become a
future lammps developer you'll have to struggle with first
understanding the theory in your reference paper and then the lammps
structure.
However, if you are just another user trying to perform MD on a given
system then why bothered using lammps?
GULP seem to have the potential you want already implemented. See the
"Libraries of potentials" link on: https://projects.ivec.org/gulp/overview.html
and Example 29: http://projects.ivec.org/gulp/help/examples.html
Carlos

PS: Learning how to search properly that you are looking for can bring
you great benefits in life. If not, check Google's history

>From the S/M paper abstract:
>We report on the development of a computational method for
molecular-dynamics simulations, which explicitly includes variable >charge
transfer between anions and cations.

As I said in the earlier email, unless you do charge equilibration you
are not implementing the S/M potential. Are you talking about some
static charge variant? If so, I imagine you want standard
Ewald, i.e. an infinite sum on QiQj/r, which is what LAMMPS
already does.

looking into one of the papers describing the model
one can see that there is talk about 1/r_ij _terms_
which are actually chosen to be interactions between
charges q_i represented by 1s type slater functions
and indeed there is mention of an electronegativity
equalization procedure that would be used to to
determine the values of all q_i so they minimize the
electrostatic energy.

in summary,

- there is no easy way to do this in LAMMPS (yet)

- it most certainly won't be done with a simple hack

- (some) required components can be adapted from
other available code available in LAMMPS. one should,
however, also take note of the differences between
wolf summation and ewald summation and where the
former can be applied instead of the latter and where not.

- it is useless to even try implementing this potential
without properly understanding the underlying theory