[lammps-users] Build up forces from 2 different force fields

Dears,

I would like to know what needs to be done in the source code to have
Lammps work with the following input file:

units metal

atom_style charge

dimension 3

boundary p p p

read_data data.SiO2

velocity all create 300.0 2349852

pair_style hybrid lj/cut/coul/long 12.0 sw

pair_coeff 1 1 lj/cut/coul/long 0.005020763 3.368716374 12.0

pair_coeff 1 2 lj/cut/coul/long 4.53494E-07 5.267600850 12.0

pair_coeff 2 2 lj/cut/coul/long 4.09613E-11 8.236852151 12.0

pair_coeff * * SiO.sw Si O

kspace_style pppm 1.0e-4

neighbor 2.0 bin

neigh_modify delay 5

fix 1 all nvt 300.0 3000.0 0.021

thermo_style custom step temp press pe ke etotal epair

thermo 200

run 1000000

&&&&&&&&&&&&&&&& SiO.sw &&&&&&&&&&&&&&&&&&&&&&&&

Si Si Si 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

Si Si O 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

Si O Si 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

Si O O 1.0 1.0 3.00 125.0 2.60 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

O Si Si 1.0 1.0 2.60 6.240 2.00 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

O Si O 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

O O Si 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

O O O 1.0 1.0 1.80 0.000 1.20 -0.333333333333 0.000000000
0.6022245584 4.0 0.0

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Basically, I would like to use a LJ with PPPM and add a 3-body SW in
which the 2-body contributions are set to zeros (A=0.0)

I found two limitations before LAMMPS can run with this input:

1: It seems that I can not add forces from 2 different force fields on
to the same pair interaction

2: SW is not compatible with kspace

Are there simple fixes in the source code to get this running properly.
If know can someone, please, tell me the files to change if I wanted to
create a force field that combines lj/cut/coul/long with the 3-body part
of SW?

Best wishes,

Adus

Hybrid potentials are not designed to use as you are proposing. They
assign different potentials to different pairs of atom types. You want
a new potential applied to a single kind of atom (Si).

While I'm not sure it's a good idea (Tersoff is probably not parameterized
to use with a long-range Coulombic term), the way I would proceed
is to write a new potential (e.g sw/long) where the 2-body routine is
replaced by the computation in lj/cut/coul/long (just the Coulombic
part?). You could probably write this as a derived class from PairSW, and
only have to add that one routine.

Steve