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