def test_ideal_lens_collimated_beam(): print( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test_ideal_lens_collimated_beam") beam = Beam() beam.set_circular_spot(20 * 1e-9) beam.set_divergences_collimated() beam.plot_xz() p = 1. q = 5. lens = Optical_element.ideal_lens(p, q, q, q) beam = lens.trace_optical_element(beam) beam.plot_xz() if do_plot: plt.show() assert_almost_equal(np.abs(beam.x).mean(), 0.0, 4) assert_almost_equal(np.abs(beam.z).mean(), 0.0, 4)
# # #prova = Optical_element.initialize_as_surface_conic_paraboloid_from_focal_distances(p,q,theta,alpha,"p") #print(prova.ccc_object.get_coefficients()) # #beam=prova.trace_Wolter_2(beam) # #print(np.mean(beam.z)) #beam.plot_xy() #beam.plot_xz() #plt.show() beam1=Beam() beam1.set_divergences_collimated() beam1.set_point(0.+100,0.,20.+100) beam1.set_circular_spot(5.) beam2=Beam() beam2.set_divergences_collimated() beam2.set_point(0.+100,0.,0.+100) beam2.set_rectangular_spot(20.,-20.,15.,10.) beam=beam1.merge(beam2) beam3=Beam() beam3.set_divergences_collimated() beam3.set_point(0.+100,0.,0.+100) beam3.set_rectangular_spot(5.,-5.,10.,-40.)
beam.write("begin.dat") return beam if main == "__main__": varx = np.zeros(100) varz = np.zeros(100) qqq = np.zeros(100) #for i in range (0, 1): beam = Beam(25000) beam.set_circular_spot(1e-3) 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()