Ejemplo n.º 1
0
def compute_4(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    for phi0 in np.linspace(3 / 2 * np.pi, 2 * np.pi, num=50):
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #

        # above:
        #alpha, beta, flag = eop.find_critical_angles(half='right', amin=2.2, amax=2.5,
        #                                             bmin=2, bmax=2.1)
        #info[str(phi0)+'above'] = flag
        #if flag:
        #    eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s1/4/')

        # below:
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=3.6,
                                                     amax=4.2,
                                                     bmin=0.85,
                                                     bmax=1.5)
        info[str(phi0) + 'below'] = (alpha, beta, flag)
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s1/4/')

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
Ejemplo n.º 2
0
def compute_3(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    for phi0 in np.linspace(np.pi, 3 * np.pi / 2, num=50):
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #

        # above:
        #alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.6, amax=5,
        #                                             bmin=1.6, bmax=2.4)
        #info[str(phi0)+'above'] = flag
        #if flag:
        #    eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s1/3/')

        # below:
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=2.8,
                                                     amax=3.8,
                                                     bmin=0.9,
                                                     bmax=1.4)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s1/3/')

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 3
0
def compute_1(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    #for phi0 in np.linspace(0, np.pi / 2, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=35)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=-0.5, amax=2,
    #                                                 bmin=2, bmax=2.5)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/1/')

    #for phi0 in np.linspace(0, np.pi / 4, num=26):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4, amax=4.1,
    #                                                 bmin=1.37, bmax=1.45)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/1/')

    #for phi0 in np.linspace(np.pi / 4, np.pi/2, num=25):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.64, amax=4.05,
    #                                                 bmin=1.02, bmax=1.39)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/1/')

    phis = helping(r'D:/2021_04_13/s-025/1/', np.pi / 4, np.pi / 2, 25)
    print(phis)
    #aend = 3.748360768175583
    #bend = 1.0619218106995882
    #astart = 3.6302361382378474
    #bstart = 1.0206013846691744

    for phi0 in phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
        # above:
        alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.8, amax=3.9,
                                                     bmin=1.02, bmax=1.11)
        info[str(phi0)+'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/1/')#

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 4
0
def compute_1(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    #for phi0 in np.linspace(0, np.pi / 2, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=35)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #

    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=0, amax=np.pi,
    #                                                 bmin=1.7, bmax=2.5)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/1/')

    #for phi0 in np.linspace(0, np.pi / 4, num=26):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #

    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4, amax=4.1,
    #                                                 bmin=1.37, bmax=1.45)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/1/')

    #for phi0 in np.linspace(np.pi / 4, np.pi/2, num=25):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.64, amax=4.05,
    #                                                 bmin=1.02, bmax=1.39)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/1/')

    phis = helping()
    print(phis)
    for phi0 in [np.pi / 2]:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
        # above:
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=3.65,
                                                     amax=3.7,
                                                     bmin=1.02,
                                                     bmax=1.06)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/1/')

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 5
0
def compute_2(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    i = 0
    #for phi0 in np.linspace(np.pi / 2, np.pi, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  ###

    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4.4, amax=6,
    #                                                 bmin=1.6, bmax=2.2)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/2/')

    #for phi0 in np.linspace(3*np.pi / 4, np.pi, num=26):
    #    # below:
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=2.9, amax=3.1,
    #                                                 bmin=1.2, bmax=1.4)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/2/')

    phis = helping(r'D:/2021_04_13/s-025/2/', np.pi/2, 3 * np.pi / 4, 25)[::-1]
    print(phis)
    for phi0 in phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.22994140625, amax=3.3082912941497646,
                                                     bmin=1.0687795410156247, bmax=1.04)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-025/2/')

    #for phi0 in []: #1.832595714594046 1.8653206380689396 1.8980455615438334 1.930770485018727 1.9962203319685143 2.1598449493429825
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.02, amax=3.04,
    #                                                bmin=1.21, bmax=1.24)
    #   info[str(phi0) + 'below'] = flag
    #   if flag:
    #       eop.save_to_csv(alpha, beta, r'D:/2021_04_13/')

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 6
0
def main():
    chi = 1
    alpha = 2.5 * np.pi / 2
    beta = 2

    robs = 15
    phiobs = np.pi / 2
    thetaobs = 1.25

    r0 = 8
    theta0 = np.pi / 2
    phi0 = np.pi

    s = -1.
    dir = r'D:/2021_04_26/phi_pi/s-1/'
    dr = 0.2

    res = rpt(r0, phi0, theta0, dr, num=15)

    info = {}

    start = time.time()

    #plotting(s, chi, r0, phi0, alpha, beta, phiobs=np.pi/2, thetaobs=1.25, re=res[0][0])

    for item in res:
        rr, tt, pp = item
        for r, t, p in zip(rr, tt, pp):
            print(r, t, p)
            sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)

            sol.r0 = r
            sol.theta0 = t
            sol.phi0 = p

            eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)

            if not os.path.isfile(dir + '%.8f_%.8f_%.8f.csv' % (r, t, p)):
                alpha, beta, flag = eop.find_critical_angles(half='right', bmax=1.7, bmin=1.9,
                                                             amax=4.8, amin=4.3)
                info[f'{r}_{p}_{t}'] = flag
                if flag:
                    eop.save_to_csv(alpha, beta, dir)

            else:
                print('Already existing.')

    ti = time.time() - start
    print(f'Took {ti}s ({ti / 60}m)')
Ejemplo n.º 7
0
def compute_2(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    i = 0
    #for phi0 in np.linspace(np.pi / 2, np.pi, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  ###
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4.4, amax=6,
    #                                                 bmin=1.6, bmax=2.2)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/2/')

    #for phi0 in np.linspace(3*np.pi / 4, np.pi, num=26):
    #    # below:
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
    ##    alpha, beta, flag = eop.find_critical_angles(half='right', amin=2.95, amax=3.05,
    #                                                 bmin=1.2, bmax=1.4)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/2/')

    phis = helping(r'D:/2021_04_13/s-1/2/', np.pi / 2, 3 * np.pi / 4, 25)[::-1]
    print(phis)
    for phi0 in [np.pi / 2]:  #phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=3.615560937897893,
                                                     amax=3.86542,
                                                     bmin=1.019541796675809,
                                                     bmax=1.03574537)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/2/')

        #alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.4439712973205476, amax=3.76542,
        #                                             bmin=0.934534587, bmax=1.0170462174800967)

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 8
0
def compute_1(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    #for phi0 in np.linspace(0, np.pi / 2, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=35)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=-0.5, amax=2,
    #                                                 bmin=2, bmax=2.5)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/1/')

    #for phi0 in np.linspace(0, np.pi / 4, num=26):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4, amax=4.1,
    #                                                 bmin=1.37, bmax=1.45)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/1/')

    phis = helping(r'D:/2021_04_13/s-075/1/', np.pi / 4, np.pi / 2, 25)
    print(phis)
    for phi0 in [np.pi/2]:#phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
        # above:
        #alpha, beta, flag = eop.find_critical_angles(half='right', amax=3.7039775439514466, amin=3.6300005299999998,
        #                                             bmax=1.0373924791885802, bmin=1.017936318750000)
        a = (3.7099747776643826 + 3.6100005299999998) / 2
        b = (1.043015681586237 + 1.0179363187500001) / 2 - 0.00253
        eop.save_to_csv(a, b, r'D:/2021_04_13/s-075/1/')
        #info[str(phi0)+'below'] = flag
        #if flag:
        #    eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/1/')#

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 9
0
def compute_1(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    #for phi0 in np.linspace(0, np.pi / 2, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=35)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=-0.5, amax=2,
    #                                                 bmin=2, bmax=2.5)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/1/')

    #for phi0 in np.linspace(0, np.pi / 4, num=26):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4, amax=4.1,
    #                                                 bmin=1.37, bmax=1.45)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/1/')

    phis = helping(r'D:/2021_04_13/s-1/1/', np.pi / 4, np.pi / 2, 25)
    print(phis)
    for phi0 in phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=45)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #
        # above:
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amax=3.8055248913216775,
                                                     amin=3.6766988799990963,
                                                     bmax=1.0646566483676932,
                                                     bmin=1.0321596533292083)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-1/1/')  #

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 10
0
def compute_2(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    i = 0
    #for phi0 in np.linspace(np.pi / 2, np.pi, num=50):
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  ###
    #    # above:
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=4.4, amax=6,
    #                                                 bmin=1.6, bmax=2.2)
    #    info[str(phi0)+'above'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/2/')

    #for phi0 in np.linspace(3*np.pi / 4, np.pi, num=26):
    #    # below:
    #    sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
    #    eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
    #    alpha, beta, flag = eop.find_critical_angles(half='right', amin=2.9, amax=3.1,
    #                                                 bmin=1.2, bmax=1.4)
    #    info[str(phi0)+'below'] = flag
    #    if flag:
    #        eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/2/')

    phis = helping(r'D:/2021_04_13/s-075/2/', np.pi/2, 3 * np.pi / 4, 25)[::-1]
    print(phis)
    for phi0 in phis:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right', amin=3.107, amax=3.16874,
                                                     bmin=1.1156, bmax=1.167852)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/s-075/2/')


    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')
Ejemplo n.º 11
0
def compute_2(s, chi, alpha, beta, r0, theta0, robs, thetaobs, phiobs):
    start = time.time()

    info = {}
    i = 0
    for phi0 in np.linspace(np.pi / 2, np.pi, num=25):
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)  #

        # above:
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=4.4,
                                                     amax=6,
                                                     bmin=1.6,
                                                     bmax=2.2)
        info[str(phi0) + 'above'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/2/')

    for phi0 in np.linspace(3 * np.pi / 4, np.pi, num=25):
        # below:
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=2.9,
                                                     amax=3.1,
                                                     bmin=1.2,
                                                     bmax=1.4)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/2/')

    for phi0 in np.linspace(np.pi / 2, 3 * np.pi / 4, num=25):
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=2.95,
                                                     amax=3.4,
                                                     bmin=1,
                                                     bmax=1.3)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/2/')

    for phi0 in []:  #1.832595714594046 1.8653206380689396 1.8980455615438334 1.930770485018727 1.9962203319685143 2.1598449493429825
        sol = solver.ODESolver(s, theta0, phi0, chi, alpha, beta, r0, stop=40)
        eop = better_eop.EmitterObserverProblem(sol, robs, thetaobs, phiobs)
        alpha, beta, flag = eop.find_critical_angles(half='right',
                                                     amin=3.02,
                                                     amax=3.04,
                                                     bmin=1.21,
                                                     bmax=1.24)
        info[str(phi0) + 'below'] = flag
        if flag:
            eop.save_to_csv(alpha, beta, r'D:/2021_04_13/')

    now = time.time()
    print(f'All those took {now - start}s (or {(now - start) / 60}m).')
    print('Info:')
    print(info)
    if False in info.values():
        print('THERE ARE ERRORS!')