Hello LAMMPS community,
I’m preparing a 3×3×3 supercell of a periodic MOF for test runs, and I need the LAMMPS data file to contain the correct per-atom partial charges. Charges were assigned by a charge equilibration method on the unit cell (each atom has a specific charge). I begin with a correct unit-cell LAMMPS data file where atoms, bonds, angles, and dihedrals are all defined properly.
work flow:
read_data unit.datareplicate 3 3 3write_data supercell.data
The replicated data file correctly preserves the per-atom partial charges.
However, the Bonds, Angles, and Dihedrals sections contain some entries whose type numbers do not match the atom-type combinations I expect.
For example (simplified illustration):
Bonds
1 1 101 102 # bond type 1 for atom types 1-1 (expected)
2 1 150 201 # bond type 1 for atom types 2-1 (unexpected)
- Why does this happen?
Could the issue come from the atom types, or from how bond/angle/dihedral types are defined in the original unit cell?
If the atom types in my unit cell are correct, is it valid to generate the supercell and then use a Python script to reassign bond/angle/dihedral types based on the atom-type pairs? Or does that risk breaking force-field consistency? - Could these topology mismatches be related to bonds crossing periodic boundaries during replication?
Does LAMMPS modify bonded types or reassign types when expanding the cell across periodic images? - Is using the
replicatecommand a safe and recommended method for generating a supercell data file that must preserve (a) atom types, (b) partial charges, and (c) all bonded topologies?
Or is it better practice to generate the full supercell externally (moltemplate, VMD/topotools, Python, etc.) and write a fresh data file?
Thanks