def test_duplicate(self): print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test_duplicate") b1=Beam() b2=b1.duplicate() assert_almost_equal(b1.x, b2.x ,9) assert_almost_equal(b1.y, b2.y ,9) assert_almost_equal(b1.z, b2.z ,9) assert_almost_equal(b1.vx,b2.vx,9) assert_almost_equal(b1.vy,b2.vy,9) assert_almost_equal(b1.vz,b2.vz,9)
beam.set_divergences_collimated() shadow_beam = shadow_source() beam = Beam() beam.initialize_from_arrays(shadow_beam.getshonecol(1), shadow_beam.getshonecol(2), shadow_beam.getshonecol(3), shadow_beam.getshonecol(4), shadow_beam.getshonecol(5), shadow_beam.getshonecol(6), shadow_beam.getshonecol(10), 0) #beam = Beam() #beam.set_flat_divergence(0.01,0.01) beam_prova = beam.duplicate() p = 5. q = 15. theta = 88. * np.pi / 180 beta = (90. + 0.) * np.pi / 180 alpha = 87. * np.pi / 180 xmax = 0. xmin = -0.4 ymax = 0.4 ymin = -0.4 zmax = 0.4 # print("zmax = %f" %(zmax)) # zmax = 0.4 zmin = 0.
beam.set_divergences_collimated() #shadow_beam = shadow_source() #beam = Beam() #beam.initialize_from_arrays( # shadow_beam.getshonecol(1), # shadow_beam.getshonecol(2), # shadow_beam.getshonecol(3), # shadow_beam.getshonecol(4), # shadow_beam.getshonecol(5), # shadow_beam.getshonecol(6), # shadow_beam.getshonecol(10), # 0 #) beam_prova = beam.duplicate() p = 5. q = 15. theta = 89. * np.pi / 180 beta = -45. * np.pi / 180 alpha = 87. * np.pi / 180 xmax = 0. xmin = -0.4 ymax = 0.4 ymin = -0.4 zmax = 0.4 zmin = 0. oe1 = Optical_element.initialize_as_surface_conic_paraboloid_from_focal_distances(
ymin = -0.3 zmax = 0.3 zmin = 0. bound1 = BoundaryRectangle(xmax, xmin, ymax, ymin, zmax, zmin) bound2 = BoundaryRectangle(xmax, xmin, ymax, ymin, zmax, zmin) Nn = 25 qq = np.ones(Nn) dx = np.ones(Nn) for i in range(0, Nn): print( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Iteration %d" % i) beam1 = beam.duplicate() qq[i] = q - 1. + 2. * i / Nn print(qq[i]) montel = CompoundOpticalElement.initialize_as_montel_parabolic( p=p, q=q, theta=theta, bound1=bound1, bound2=bound2, distance_of_the_screen=qq[i]) beam03 = montel.trace_montel(beam1) if beam03[2].N != 0: dx[i] = max(beam03[2].x) - min(beam03[2].x) else: