From fa4b1dae8199efab096944f0d131c2f39dd59bbf Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Fri, 7 Feb 2020 13:07:43 -0600
Subject: [PATCH] Added nonbonded exclusions between beads participating in
 crossovers within 3 bp of the crossover

---
 mrdna/segmentmodel.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/mrdna/segmentmodel.py b/mrdna/segmentmodel.py
index a11ea61..c4f125c 100644
--- a/mrdna/segmentmodel.py
+++ b/mrdna/segmentmodel.py
@@ -2411,6 +2411,15 @@ class SegmentModel(ArbdModel):
                     break
             # exclusions.update( tmp )
 
+        ## Add exclusions very near crossovers
+        for c,A,B in sum([self.get_connections(term) for term in ("crossover","terminal_crossover")],[]):
+            b1,b2 = [loc.particle for loc in (A,B)]
+            near_b1 = _recursively_get_beads_within(b1, 3, done=[])
+            near_b2 = _recursively_get_beads_within(b2, 3, done=[])
+            for bi in near_b1:
+                for bj in near_b2:
+                    exclusions.add((bi,bj))
+
         if self.DEBUG: print("Adding %d exclusions" % len(exclusions))
         for b1,b2 in exclusions:
             parent = self._getParent(b1,b2)
-- 
GitLab