def example_branch_3(surface_shape_file, do_plot=True): # # source # # beam0 = Beam.initialize_as_pencil(N=500) source = SourceGaussian.initialize_from_keywords( number_of_rays=100000, sigmaX=0.0, sigmaY=0.0, sigmaZ=0.0, sigmaXprime=1e-4, sigmaZprime=1e-4, ) beam0 = Beam() beam0.genSource(source) print(beam0.info()) if do_plot: plotxy(beam0, 4, 6, title="Image 0", nbins=201) # # syned definitopns # # boundaries rlen1 = 0.6 rlen2 = 0.6 rwidx1 = 0.05 rwidx2 = 0.05 # # shadow definitions # mirror1 = S4SurfaceDataMirrorElement(optical_element=S4SurfaceDataMirror( name="M1", surface_data_file=surface_shape_file, boundary_shape=Rectangle(x_left=-rwidx2, x_right=rwidx1, y_bottom=-rlen2, y_top=rlen1)), coordinates=ElementCoordinates( p=100.0, q=1000.0, angle_radial=numpy.radians(88.8))) print(mirror1.info()) # # run # beam1, mirr1 = mirror1.trace_beam(beam0) print(mirr1.info()) # # check # if do_plot: plotxy(beam1, 1, 3, title="Image 1", nbins=101, nolost=1) plotxy(mirr1, 2, 1, title="Footprint 1", nbins=101, nolost=1)
def tests_initializars(self): print("# ") print("# initializers ") print("# ") a = Beam(N=100) self.assertEqual(100,a.get_number_of_rays()) a = Beam(array=numpy.zeros( (1000,18) )) print(a.info()) print(a.info()) self.assertEqual(1000,a.get_number_of_rays()) a = Beam.initialize_from_array(numpy.zeros( (500,18) )) print(a.info()) print(a.info()) self.assertEqual(500,a.get_number_of_rays()) a = Beam.initialize_as_pencil(200) print(a.info()) self.assertEqual(200,a.get_number_of_rays())
def example_branch_2(do_plot=True): source = SourceGaussian.initialize_from_keywords( number_of_rays=100000, sigmaX=0.0, sigmaY=0.0, sigmaZ=0.0, sigmaXprime=1e-6, sigmaZprime=1e-6, ) beam0 = Beam() beam0.genSource(source) print(beam0.info()) if do_plot: plotxy(beam0, 4, 6, title="Image 0", nbins=201) # # syned definitopns # # boundaries boundary_shape = None #Rectangle(x_left=-rwidx2,x_right=rwidx1,y_bottom=-rlen2,y_top=rlen1) # # shadow definitions # mirror1 = S4ToroidalMirrorElement(optical_element=S4ToroidalMirror( name="M1", surface_calculation=SurfaceCalculation.EXTERNAL, min_radius=0.157068, maj_radius=358.124803 - 0.157068, boundary_shape=boundary_shape), coordinates=ElementCoordinates( p=10.0, q=6.0, angle_radial=numpy.radians(88.8))) print(mirror1.info()) # # run # beam1, mirr1 = mirror1.trace_beam(beam0) print(mirr1.info()) # # check # if do_plot: plotxy(beam1, 1, 3, title="Image 1", nbins=101, nolost=1) plotxy(mirr1, 2, 1, title="Footprint 1", nbins=101, nolost=1)
from shadow4.syned.shape import Rectangle, Direction, Side # TODO from syned.beamline.shape from srxraylib.plot.gol import set_qt set_qt() do_plot = True source = SourceGaussian.initialize_from_keywords(number_of_rays=10000, sigmaX=0.0, sigmaY=0.0, sigmaZ=0.0, sigmaXprime=1e-6, sigmaZprime=1e-6, ) beam0 = Beam() beam0.genSource(source) print(beam0.info()) if do_plot: plotxy(beam0, 4, 6, title="Image 0", nbins=201) rlen1 = 0.6 rlen2 = 0.6 rwidx1 = 0.05 rwidx2 = 0.05 base_element = S4ToroidalMirror(name="M1b", surface_calculation=SurfaceCalculation.EXTERNAL, min_radius=0.157068, maj_radius=358.124803 - 0.157068, boundary_shape=Rectangle(x_left=-rwidx2, x_right=rwidx1, y_bottom=-rlen2, y_top=rlen1))
def example_branch_1(do_plot=True): # # source # source = SourceGaussian.initialize_from_keywords( number_of_rays=100000, sigmaX=0.0, sigmaY=0.0, sigmaZ=0.0, sigmaXprime=1e-6, sigmaZprime=1e-6, ) beam0 = Beam() beam0.genSource(source) print(beam0.info()) if do_plot: plotxy(beam0, 4, 6, title="Image 0", nbins=201) # # syned definitopns # # surface shape # boundaries # boundary_shape = None rlen1 = 5e-05 rlen2 = 5e-05 rwidx1 = 2e-05 rwidx2 = 2e-05 boundary_shape = Rectangle(x_left=-rwidx2, x_right=rwidx1, y_bottom=-rlen2, y_top=rlen1) # boundary_shape = Rectangle(x_left=-1e-05, x_right=2e-05, y_bottom=-5e-04, y_top=7e-04) # boundary_shape = Ellipse(a_axis_min=-rwidx2/2, a_axis_max=rwidx2/2, b_axis_min=-rlen2/2, b_axis_max=rlen2/2) # boundary_shape = Ellipse(a_axis_min=-0e-05, a_axis_max=1e-05, b_axis_min=-1.5e-05, b_axis_max=2.5e-05) # boundary_shape = Ellipse(a_axis_min=0, a_axis_max=1e-05, b_axis_min=-0.0005, b_axis_max=0) # rlen1 = -2.5e-05 # rlen2 = 5e-05 # rwidx1 = 1e-05 # rwidx2 = 2e-05 # # boundary_shape = TwoEllipses( # a1_axis_min=-rwidx1 / 2, a1_axis_max=rwidx1 / 2, b1_axis_min=-rlen1 / 2, b1_axis_max=rlen1 / 2, # a2_axis_min=-rwidx2 / 2, a2_axis_max=rwidx2 / 2, b2_axis_min=-rlen2 / 2, b2_axis_max=rlen2 / 2) coordinates_syned = ElementCoordinates(p=10.0, q=6.0, angle_radial=numpy.radians(88.8)) # # shadow definitions # mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0], boundary_shape=boundary_shape), coordinates=coordinates_syned) print(mirror1.info()) # # run # beam1, mirr1 = mirror1.trace_beam(beam_in=beam0) print(mirr1.info()) # # check # if do_plot: plotxy(beam1, 1, 3, title="Image 1", nbins=101, nolost=1) plotxy(mirr1, 2, 1, title="Footprint 1", nbins=101, nolost=1) # # M2 # mirror2 = S4ConicMirrorElement(optical_element=S4ConicMirror( conic_coefficients=[0, 0, 0, 0, 0, 0, 0, 0, -1, 0], boundary_shape=Rectangle(-100e-6, 100e-6, -150e-6, 150e-6)), coordinates=ElementCoordinates( p=10.0, q=100.0, angle_radial=(0.5 * numpy.pi - 0.003))) print(mirror2.info()) # # if do_plot: beam2, mirr2 = mirror2.trace_beam(beam1) plotxy(beam2, 1, 3, title="Image 2", nbins=101, nolost=1) plotxy(mirr2, 2, 1, title="Footprint 2", nbins=101, nolost=1)
def example_branch_4(do_plot=True, f_refl=0): # # source # # beam0 = Beam.initialize_as_pencil(N=500) source = SourceGaussian.initialize_from_keywords( number_of_rays=100000, sigmaX=0.0, sigmaY=0.0, sigmaZ=0.0, sigmaXprime=1e-6, sigmaZprime=1e-6, ) beam0 = Beam() numpy.random.seed(123456) beam0.genSource(source) beam0.set_photon_wavelength(5e-10) print(beam0.info()) if do_plot: plotxy(beam0, 4, 6, title="Image 0", nbins=201) # # syned definitopns # # surface shape # boundaries rlen1 = 5e-05 rlen2 = 5e-05 rwidx1 = 2e-05 rwidx2 = 2e-05 boundary_shape = Rectangle(x_left=-rwidx2, x_right=rwidx1, y_bottom=-rlen2, y_top=rlen1) coordinates_syned = ElementCoordinates(p=10.0, q=6.0, angle_radial=numpy.radians(88.8)) # # shadow definitions # if f_refl == 0: # prerefl PreRefl.prerefl(interactive=False, SYMBOL="SiC", DENSITY=3.217, FILE="SiC.dat", E_MIN=100.0, E_MAX=20000.0, E_STEP=100.0) mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0 ], boundary_shape=boundary_shape, f_reflec=1, f_refl=f_refl, file_refl="SiC.dat"), coordinates=coordinates_syned) elif f_refl == 1: # refraction index import xraylib refraction_index = xraylib.Refractive_Index("SiC", 2.4797, 3.217) mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0 ], boundary_shape=boundary_shape, f_reflec=1, f_refl=f_refl, file_refl="", refraction_index=refraction_index), coordinates=coordinates_syned) elif f_refl == 2: # user file: 1D vs angle mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0 ], boundary_shape=boundary_shape, f_reflec=1, f_refl=f_refl, file_refl="../../oasys_workspaces/xoppy_f1f2_139980555361648.dat"), coordinates=coordinates_syned) elif f_refl == 3: # user file 1D vs energy mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0 ], boundary_shape=boundary_shape, f_reflec=1, f_refl=f_refl, file_refl="../../oasys_workspaces/xoppy_f1f2_139981943656272.dat"), coordinates=coordinates_syned) elif f_refl == 4: # user file mirror1 = S4ConicMirrorElement(optical_element=S4ConicMirror( name="M1", conic_coefficients=[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0 ], boundary_shape=boundary_shape, f_reflec=1, f_refl=f_refl, file_refl="../../oasys_workspaces/xoppy_f1f2_139980938100080.dat"), coordinates=coordinates_syned) print(mirror1.info()) # # run # beam1, mirr1 = mirror1.trace_beam(beam0) print(mirr1.info()) # # check # if do_plot: plotxy(beam1, 1, 3, title="Image 1", nbins=101, nolost=1) plotxy(mirr1, 2, 1, title="Footprint 1", nbins=101, nolost=1)
# src = SourceGaussian.initialize_from_keywords( number_of_rays=10000, sigmaX=1.0e-6, sigmaY=0.0, sigmaZ=1.0e-6, sigmaXprime=0.0002, sigmaZprime=0.0002, real_space_center=[0.0, 0.0, 0.0], direction_space_center=[0.0, 0.0]) beam = Beam() beam.genSource(src) beam.set_photon_energy_eV(1000.0) print(beam.info()) # plotxy(Beam3.initialize_from_shadow4_beam(beam),1,3,nbins=100,title="SOURCE") # # grating # g = S4PlaneGrating( name="my_grating", boundary_shape=None, # BoundaryShape(), ruling=600000.0, ruling_coeff_linear=260818.35944225, ruling_coeff_quadratic=260818.35944225, ruling_coeff_cubic=13648.21037618, ruling_coeff_quartic=0.0, coating=None,