def improp_gen(struct): for imp in struct.impropers: yield (imp.atom1, imp.atom2, imp.atom3, imp.atom4) for dih in struct.dihedrals: if dih.improper: # Central atom first yield canonical_improper_order(dih.atom3, dih.atom1, dih.atom2, dih.atom4, center=1)
def improp_gen(struct): for imp in struct.impropers: yield (imp.atom1, imp.atom2, imp.atom3, imp.atom4) for dih in struct.dihedrals: if dih.improper: # Central atom first yield canonical_improper_order( dih.atom3, dih.atom1, dih.atom2, dih.atom4, center=1, )
def _periodic_improper_key(atom1, atom2, atom3, atom4): a1, a2, a3, a4 = canonical_improper_order(atom1, atom2, atom3, atom4) return (a1.type, a2.type, a3.type, a4.type)