From e32b9c264843e65aa003935be6dd5c175786c355 Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Fri, 15 Mar 2019 13:49:36 -0500 Subject: [PATCH] Added _generate_bead_callbacks. Made lists into tuples for ParticleType __hash_key function --- mrdna/model/arbdmodel.py | 1 + mrdna/segmentmodel.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/mrdna/model/arbdmodel.py b/mrdna/model/arbdmodel.py index a0b7608..e2a1f90 100644 --- a/mrdna/model/arbdmodel.py +++ b/mrdna/model/arbdmodel.py @@ -327,6 +327,7 @@ class ParticleType(): def __hash_key(self): l = [self.name,self.charge] for keyval in sorted(self.__dict__.items()): + if isinstance(keyval[1], list): keyval = (keyval[0],tuple(keyval[1])) l.extend(keyval) return tuple(l) diff --git a/mrdna/segmentmodel.py b/mrdna/segmentmodel.py index 99c6cf9..5212f95 100644 --- a/mrdna/segmentmodel.py +++ b/mrdna/segmentmodel.py @@ -1541,10 +1541,13 @@ class SegmentModel(ArbdModel): decompPeriod, pairlistDistance=None, nonbondedResolution=0) + # self.max_basepairs_per_bead = max_basepairs_per_bead # dsDNA # self.max_nucleotides_per_bead = max_nucleotides_per_bead # ssDNA self.children = self.segments = segments + self._generate_bead_callbacks = [] + self._bonded_potential = dict() # cache for bonded potentials self._generate_strands() self.grid_potentials = [] @@ -2543,6 +2546,10 @@ class SegmentModel(ArbdModel): pot = self.get_dihedral_potential(k,t0) self.add_dihedral( n1,n2,n3,n4, pot ) + for callback in self._generate_bead_callbacks: + callback(self) + + # ## remove duplicate potentials; ## TODO ensure that they aren't added twice in the first place? # self.remove_duplicate_terms() -- GitLab