diff --git a/docs/releasehistory.md b/docs/releasehistory.md index 6d4361ad8..07fa73c0b 100644 --- a/docs/releasehistory.md +++ b/docs/releasehistory.md @@ -18,6 +18,7 @@ Please note that all releases prior to a version 1.0.0 are considered pre-releas * #1137 Internally use `openmm.LangevinMiddleIntegrator`, including in the OpenMM driver. * #1186 `GROMACSSystem.molecules` is changed from a dictionary to a list of tuples. * #1192 `Interchange.to_pdb` now uses `ensure_unique_atom_names="residues"` when writing PDB files, matching longstanding behavior of the toolkit. For more flexibility, use the `Interchange.topology` and options provided by `openff.toolkit.Topology.to_file`. +* #1203 Hybrid pair styles, which were never necessary, are no longer used in LAMMPS files. ### Bug fixes diff --git a/examples/lammps/lammps.ipynb b/examples/lammps/lammps.ipynb index 7c9011beb..8467cacba 100644 --- a/examples/lammps/lammps.ipynb +++ b/examples/lammps/lammps.ipynb @@ -150,9 +150,9 @@ "boundary p p p\n", "\n", "# Bonded interactions in Sage force field\n", - "bond_style hybrid harmonic\n", - "angle_style hybrid harmonic\n", - "dihedral_style hybrid fourier\n", + "bond_style harmonic\n", + "angle_style harmonic\n", + "dihedral_style fourier\n", "improper_style cvff\n", "special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.8333333333\n", "\n", diff --git a/examples/protein_ligand/.gitignore b/examples/protein_ligand/.gitignore index 9e27c395a..c0f3a6e53 100644 --- a/examples/protein_ligand/.gitignore +++ b/examples/protein_ligand/.gitignore @@ -4,3 +4,4 @@ out.* out_pointenergy.mdp log.lammps tmp.in +*.itp diff --git a/openff/interchange/components/mdconfig.py b/openff/interchange/components/mdconfig.py index ce4c39662..acfd7f6f1 100644 --- a/openff/interchange/components/mdconfig.py +++ b/openff/interchange/components/mdconfig.py @@ -287,14 +287,14 @@ def _get_coeffs_of_constrained_bonds_and_angles( ) if len(interchange["Bonds"].key_map) > 0: - lmp.write("bond_style hybrid harmonic\n") + lmp.write("bond_style harmonic\n") if len(interchange["Angles"].key_map) > 0: - lmp.write("angle_style hybrid harmonic\n") + lmp.write("angle_style harmonic\n") try: if len(interchange["ProperTorsions"].key_map) > 0: - lmp.write("dihedral_style hybrid fourier\n") + lmp.write("dihedral_style fourier\n") except LookupError: # no torsions here pass diff --git a/openff/interchange/interop/lammps/export/export.py b/openff/interchange/interop/lammps/export/export.py index 9a707104c..9c8d7bf1a 100644 --- a/openff/interchange/interop/lammps/export/export.py +++ b/openff/interchange/interop/lammps/export/export.py @@ -161,7 +161,7 @@ def _write_bond_coeffs(lmp_file: IO, interchange: Interchange): k = k * 0.5 # Account for LAMMPS wrapping 1/2 into k length = params["length"].to(unit.angstrom).magnitude - lmp_file.write(f"{bond_type_idx + 1:d} harmonic\t{k:.16g}\t{length:.16g}\n") + lmp_file.write(f"{bond_type_idx + 1:d}\t{k:.16g}\t{length:.16g}\n") lmp_file.write("\n") @@ -180,7 +180,7 @@ def _write_angle_coeffs(lmp_file: IO, interchange: Interchange): k = k * 0.5 # Account for LAMMPS wrapping 1/2 into k theta = params["angle"].to(unit.degree).magnitude - lmp_file.write(f"{angle_type_idx + 1:d} harmonic\t{k:.16g}\t{theta:.16g}\n") + lmp_file.write(f"{angle_type_idx + 1:d}\t{k:.16g}\t{theta:.16g}\n") lmp_file.write("\n") @@ -202,7 +202,7 @@ def _write_proper_coeffs(lmp_file: IO, interchange: Interchange): k = k / idivf lmp_file.write( - f"{proper_type_idx + 1:d} fourier 1\t{k:.16g}\t{n:d}\t{phase:.16g}\n", + f"{proper_type_idx + 1:d} 1\t{k:.16g}\t{n:d}\t{phase:.16g}\n", ) lmp_file.write("\n")