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)
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) #print specified angles out = "" for angle in args.measure: a1 = geom.find(str(angle[0]))[0] a2 = geom.find(str(angle[1]))[0] a3 = geom.find(str(angle[2]))[0] val = geom.angle(a1, a2, a3) if not args.radians: val *= 180 / np.pi out += "%f\n" % val out = out.rstrip() if len(args.set_ang) + len(args.change) > 0: if args.outfile: outfile = args.outfile if "$INFILE" in outfile: outfile = outfile.replace("$INFILE", get_filename(f)) geom.write(append=True, outfile=outfile) else: print(geom.write(outfile=False))
def test_angle(self): mol = Geometry(TestGeometry.benz_NO2_Cl) angle = mol.angle("13", "12", "14") self.assertTrue(is_close(np.rad2deg(angle), 124.752, 10**-2))