From afe2d1f1a8d2087f29aec68e780e3ec28609706f Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Thu, 12 Dec 2024 12:08:23 -0600 Subject: [PATCH] Avoid bonded potential duplication after multiple simulate commands --- mrdna/arbdmodel/__init__.py | 17 +++++++++-------- mrdna/arbdmodel/interactions.py | 4 ++-- mrdna/arbdmodel/nonbonded.py | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/mrdna/arbdmodel/__init__.py b/mrdna/arbdmodel/__init__.py index 9e6f86a..cc1ad4d 100644 --- a/mrdna/arbdmodel/__init__.py +++ b/mrdna/arbdmodel/__init__.py @@ -181,7 +181,7 @@ class Parent(): return ret def get_bonds(self): - ret = self.bonds + ret = list(self.bonds) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_bonds() ) if self.remove_duplicate_bonded_terms: @@ -191,7 +191,7 @@ class Parent(): def get_angles(self): - ret = self.angles + ret = list(self.angles) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_angles() ) if self.remove_duplicate_bonded_terms: @@ -200,7 +200,7 @@ class Parent(): return ret def get_dihedrals(self): - ret = self.dihedrals + ret = list(self.dihedrals) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_dihedrals() ) if self.remove_duplicate_bonded_terms: @@ -209,7 +209,7 @@ class Parent(): return ret def get_impropers(self): - ret = self.impropers + ret = list(self.impropers) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_impropers() ) if self.remove_duplicate_bonded_terms: @@ -218,7 +218,7 @@ class Parent(): return ret def get_exclusions(self): - ret = self.exclusions + ret = list(self.exclusions) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_exclusions() ) if self.remove_duplicate_bonded_terms: @@ -227,7 +227,7 @@ class Parent(): return ret def get_bond_angles(self): - ret = self.bond_angles + ret = list(self.bond_angles) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_bond_angles() ) if self.remove_duplicate_bonded_terms: @@ -236,7 +236,7 @@ class Parent(): return ret def get_product_potentials(self): - ret = self.product_potentials + ret = list(self.product_potentials) for c in self.children: if isinstance(c,Parent): ret.extend( c.get_product_potentials() ) if self.remove_duplicate_bonded_terms: @@ -853,7 +853,7 @@ class ArbdModel(PdbModel): def __init__(self, children, origin=None, dimensions=(1000,1000,1000), temperature=291, timestep=50e-6, particle_integrator = 'Brown', cutoff=50, decomp_period=1000, pairlist_distance=None, nonbonded_resolution=0.1, - remove_duplicate_bonded_terms=True, extra_bd_file_lines=""): + remove_duplicate_bonded_terms=False, extra_bd_file_lines=""): PdbModel.__init__(self, children, dimensions, remove_duplicate_bonded_terms) self.origin = origin @@ -1328,6 +1328,7 @@ component "data" value 3 def _writeNonbondedParameterFiles(self, prefix): x = np.arange(0, self.cutoff, self.nbResolution) + self._nbParamFiles = [] for i,j,t1,t2 in self._particleTypePairIter(): f = "%s.%s-%s.dat" % (prefix, t1.name, t2.name) scheme = self._getNbScheme(t1,t2) diff --git a/mrdna/arbdmodel/interactions.py b/mrdna/arbdmodel/interactions.py index 1c4b9b6..1fb7669 100644 --- a/mrdna/arbdmodel/interactions.py +++ b/mrdna/arbdmodel/interactions.py @@ -59,8 +59,8 @@ class TabulatedPotential(NonbondedScheme): ## Bonded potentials class HarmonicPotential(): def __init__(self, k, r0, rRange=(0,50), resolution=0.1, maxForce=None, max_potential=None, prefix="potentials/"): - self.k = k - self.r0 = r0 + self.k = round(k,8) + self.r0 = round(r0,6) self.rRange = rRange self.resolution = 0.1 self.maxForce = maxForce diff --git a/mrdna/arbdmodel/nonbonded.py b/mrdna/arbdmodel/nonbonded.py index 834ed49..776f088 100644 --- a/mrdna/arbdmodel/nonbonded.py +++ b/mrdna/arbdmodel/nonbonded.py @@ -180,7 +180,7 @@ class WLCSKBond(BasePotential): def __init__(self, d, lp, kT, rRange=(0,50), resolution=0.02, maxForce=100, max_potential=None, zero="min", prefix="potentials/"): BasePotential.__init__(self, 0, rRange, resolution, maxForce, max_potential, zero, prefix) self.type_ = "wlcbond" - self.d = d # separation + self.d = round(d,6) # separation self.lp = lp # persistence length self.kT = kT -- GitLab