From c8c9c1271add9c08d59f05b27687b2c7427c13f4 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Tue, 5 Jul 2022 17:06:09 -0400 Subject: [PATCH 1/3] improve accuracy of sqm input coordinates Coordinates with 4 digits are enough for energy calculation but not enough for energy minimization. --- dpdata/amber/sqm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dpdata/amber/sqm.py b/dpdata/amber/sqm.py index 557bbd6ce..3d536e762 100644 --- a/dpdata/amber/sqm.py +++ b/dpdata/amber/sqm.py @@ -97,9 +97,9 @@ def make_sqm_in(data, fname=None, frame_idx=0, **kwargs): ret += "{:>4s}{:>6s}{:>14s}{:>14s}{:>14s}\n".format( str(atomic_numbers[ii]), str(symbols[ii]), - f"{data['coords'][frame_idx][ii, 0]:.4f}", - f"{data['coords'][frame_idx][ii, 1]:.4f}", - f"{data['coords'][frame_idx][ii, 2]:.4f}" + f"{data['coords'][frame_idx][ii, 0]:.6f}", + f"{data['coords'][frame_idx][ii, 1]:.6f}", + f"{data['coords'][frame_idx][ii, 2]:.6f}" ) if fname is not None: with open(fname, 'w') as fp: From f9cee5c33c4a9ba9e2fa69f291c6af729bc2426b Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Wed, 6 Jul 2022 01:37:41 -0400 Subject: [PATCH 2/3] fix tests --- tests/amber/sqm.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/amber/sqm.in b/tests/amber/sqm.in index 8f4120085..c2e18f074 100644 --- a/tests/amber/sqm.in +++ b/tests/amber/sqm.in @@ -5,8 +5,8 @@ Run semi-emperical minimization maxcyc=0 verbosity=4 / - 6 C -0.0221 0.0032 0.0165 - 1 H -0.6690 0.8894 -0.1009 - 1 H -0.3778 -0.8578 -0.5883 - 1 H 0.0964 -0.3151 1.0638 - 1 H 0.9725 0.2803 -0.3911 + 6 C -0.022100 0.003200 0.016500 + 1 H -0.669000 0.889400 -0.100900 + 1 H -0.377800 -0.857800 -0.588300 + 1 H 0.096400 -0.315100 1.063800 + 1 H 0.972500 0.280300 -0.391100 From 23d6a825a704a7169809cad7eed9796beaa43c18 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Wed, 6 Jul 2022 01:44:32 -0400 Subject: [PATCH 3/3] increase the string length of the number --- dpdata/amber/sqm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpdata/amber/sqm.py b/dpdata/amber/sqm.py index 3d536e762..7080e43ee 100644 --- a/dpdata/amber/sqm.py +++ b/dpdata/amber/sqm.py @@ -94,7 +94,7 @@ def make_sqm_in(data, fname=None, frame_idx=0, **kwargs): ret += " verbosity=4\n" ret += " /\n" for ii in range(len(data['atom_types'])): - ret += "{:>4s}{:>6s}{:>14s}{:>14s}{:>14s}\n".format( + ret += "{:>4s}{:>6s}{:>16s}{:>16s}{:>16s}\n".format( str(atomic_numbers[ii]), str(symbols[ii]), f"{data['coords'][frame_idx][ii, 0]:.6f}",