Esempio n. 1
0
    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)
Esempio n. 2
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 = 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.
Esempio n. 3
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(
Esempio n. 4
0
    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: