def test_change_angle(self): def diff(a, b): return abs(a - b) mol = Geometry(TestGeometry.benz_NO2_Cl) # set angle mol.change_angle("13", "12", "14", np.pi / 2, fix=1) angle = mol.angle("13", "12", "14") self.assertTrue(diff(np.rad2deg(angle), 90) < 10**-8) # change angle mol.change_angle("13", "12", "14", 30, fix=3, adjust=True, radians=False) angle = mol.angle("13", "12", "14") self.assertTrue(diff(np.rad2deg(angle), 120) < 10**-8) mol.change_angle("13", "12", "14", -30, adjust=True, radians=False) angle = mol.angle("13", "12", "14") self.assertTrue(diff(np.rad2deg(angle), 90) < 10**-8)
if args.input_format is not None: infile = FileReader(("from stdin", args.input_format[0], f)) else: infile = FileReader(("from stdin", "xyz", f)) geom = Geometry(infile) #set angle to specified value for angle in args.set_ang: vals = three_atoms_and_a_float(angle) a1 = geom.find(str(vals[0]))[0] a2 = geom.find(str(vals[1]))[0] a3 = geom.find(str(vals[2]))[0] geom.change_angle(a1, a2, a3, vals[3], radians=args.radians, adjust=False) #change angle by specified amount for angle in args.change: vals = three_atoms_and_a_float(angle) a1 = geom.find(str(vals[0]))[0] a2 = geom.find(str(vals[1]))[0] a3 = geom.find(str(vals[2]))[0] geom.change_angle(a1, a2, a3, vals[3], radians=args.radians, adjust=True)