Exemplo n.º 1
0
    position.rotation(-(np.pi / 2 - oe2.theta), "z")
    velocity.rotation(-(np.pi / 2 - oe2.theta), "z")

    [beam.x, beam.y, beam.z] = [position.x, position.y, position.z]
    [beam.vx, beam.vy, beam.vz] = [velocity.x, velocity.y, velocity.z]

    ########  translation    ###############################################################################################

    vector_point = Vector(0, oe2.p, 0)

    vector_point.rotation(-(np.pi / 2 - oe2.theta), "z")
    vector_point.rotation(-(np.pi / 2 - oe2.theta), "x")

    beam.x = beam.x - vector_point.x
    beam.y = beam.y - vector_point.y
    beam.z = beam.z - vector_point.z

    # print("beam.x = %f, beam.y = %f, beam.z = %f" % (np.mean(beam.x), np.mean(beam.y), np.mean(beam.z)))
    # print("beam.vx = %f, beam.vy = %f, beam.vz = %f" % (np.mean(beam.vx), np.mean(beam.vy), np.mean(beam.vz)))

    # print("theta angle = %f"  %((np.arctan(np.mean(beam.z/beam.y))*180/np.pi)))
    # print("fi angle = %f"  %((np.arctan(np.mean(beam.x/beam.y))*180/np.pi)))

    ###### beam separation   ###############################################################################################

    beam1 = beam.duplicate()
    beam2 = beam.duplicate()
    beam3 = beam.duplicate()
    beam0 = beam.duplicate()

    #####    #####################################################################################################################
Exemplo n.º 2
0
beam = Beam()
beam.set_gaussian_divergence(5 * 1e-5, 0.00025)
beam.set_rectangular_spot(xmax=200 * 1e-6,
                          xmin=-200 * 1e-6,
                          zmax=10 * 1e-6,
                          zmin=-10 * 1e-6)
beam = Beam(25000)
beam.initialize_from_arrays(shadow_beam.getshonecol(1),
                            shadow_beam.getshonecol(3),
                            shadow_beam.getshonecol(2),
                            shadow_beam.getshonecol(4),
                            shadow_beam.getshonecol(5),
                            shadow_beam.getshonecol(6),
                            shadow_beam.getshonecol(10), 0)

beam.z = -beam.z + np.sqrt(7.035209**2 - 0.062770**2)
beam.x *= 1e-2
beam.y *= 1e-2

beam.plot_yx(0)
beam.plot_ypzp(0)

wolter_jap.velocity_wolter_japanes(beam)

print("velocity: vy = %f, vz = %f" % (np.mean(beam.vy), np.mean(beam.vz)))

#################   Beam propagation  ##################################################################################

wolter_jap.oe[0].intersection_with_optical_element(beam)
print(np.mean(beam.x), np.mean(beam.y), np.mean(beam.z))
wolter_jap.oe[0].output_direction_from_optical_element(beam)