From 5d01a8a5abf449a5288107052ef15954f6943a11 Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Thu, 25 Jun 2020 07:50:54 -0500
Subject: [PATCH] Updated bondAngle to be two angles, one bond

---
 mrdna/arbdmodel/__init__.py | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/mrdna/arbdmodel/__init__.py b/mrdna/arbdmodel/__init__.py
index 51c26bd..0f97148 100644
--- a/mrdna/arbdmodel/__init__.py
+++ b/mrdna/arbdmodel/__init__.py
@@ -149,12 +149,12 @@ class Parent():
         # for b in (i,j): assert(b in beads)
         self.exclusions.append( (i,j) )
 
-    def add_bond_angle(self, i,j,k, bond_angle, exclude=False):
-        assert( len(set((i,j,k))) == 3 )
+    def add_bond_angle(self, i,j,k,l, bond_angle, exclude=False):
+        assert( len(set((i,j,k,l))) == 4 )
         ## TODO: how to handle duplicating and cloning bonds
         # beads = [b for b in self]
         # for b in (i,j): assert(b in beads)
-        self.bond_angles.append( (i,j,k, bond_angle) )
+        self.bond_angles.append( (i,j,k,l, bond_angle) )
 
     def get_restraints(self):
         ret = []
@@ -219,14 +219,14 @@ class Parent():
 
     def _get_bond_potentials(self):
         bonds =  [b for i,j,b,ex in self.get_bonds()]
-        bondangles1 = [b[1] for i,j,k,b in self.get_bond_angles()]
-        bondangles2 = [b[2] for i,j,k,b in self.get_bond_angles()]
-        return list(set( bonds+bondangles1+bondangles2 ))
+        bondangles1 = [b[1] for i,j,k,l,b in self.get_bond_angles()]
+        return list(set( bonds+bondangles1 ))
 
     def _get_angle_potentials(self):
         angles =  [b for i,j,k,b in self.get_angles()]
-        bondangles = [b[0] for i,j,k,b in self.get_bond_angles()]
-        return list(set( angles+bondangles ))
+        bondangles1 = [b[0] for i,j,k,l,b in self.get_bond_angles()]
+        bondangles2 = [b[2] for i,j,k,l,b in self.get_bond_angles()]
+        return list(set( angles+bondangles1+bondangles2 ))
 
 
     ## Removed because prohibitively slow
@@ -1240,7 +1240,7 @@ component "data" value 3
             with open(self._bond_angle_filename,'w') as fh:
                 for b in self.get_bond_angles():
                     item = tuple([p.idx for p in b[:-1]] + [str(p) for p in b[-1]])
-                    fh.write("BONDANGLE %d %d %d %s %s %s\n" % item)
+                    fh.write("BONDANGLE %d %d %d %d %s %s %s\n" % item)
 
     def dimensions_from_structure( self, padding_factor=1.5, isotropic=False ):
         ## TODO: cache coordinates using numpy arrays for quick min/max
-- 
GitLab