Recently I want to add the correct local normals to the Kolmogorov-Crespi (KC) potential based on the present version of KC potential (pair_kolmogorov_crespi_z.cpp) in USER-MISC package in LAMMPS.
The present version of KC potential in LAMMPS assumes that all normals are along the z-axis, which leads this potential only valid for flat surfaces (e.g., not valid for carbon nanotubes). So I want to add the correct local normals to this KC potential.
When implementing the code, I met a problem. Assuming there are two layers of graphene with the atoms in the bottom layer setting to type 1 and the atoms in the top layer setting to type 2. This present KC potential is invoked in the input file like follows:
pair_style hybrid/overlay kolmogorov/crespi/z 20.0
pair_coeff * * none
pair_coeff 1 2 kolmogorov/crespi/z CC.KC C C
As a result, only the neighbor list between types 1 and 2 is built and there is no neighbor list built for the atoms within one layer (i.e., types 1 1 and types 2 2). Therefore, to calculate the local normals, I need to build a neighbor list for the atoms within one layer. I tried to build this neighbor list by introducing another cutoff but I failed.
Does anyone has an idea for how to build this neighbor list? Thank you in advance!