from src.base import plot2d
from src.index import ref_index, ref_ratio, ref_ratio_complex

import logging
logging.getLogger('matplotlib').setLevel(logging.ERROR)

if __name__ == '__main__':
    argvs = sys.argv
    parser = argparse.ArgumentParser()
    parser.add_argument("--dir", dest="dir", default="./")
    parser.add_argument("--n12", dest="n12",
                      default=[1.5, 1.0], type=float, nargs=2)
    opt = parser.parse_args()
    print(opt, argvs)

    obj = plot2d(aspect="auto")
    n1, n2 = opt.n12
    pt = np.linspace(0, 1, 100) * 90
    [tp, rp, ts, rs], [T_p, R_p, T_s, R_s] = ref_ratio_complex(n1=n1, n2=n2, t0=pt)

    title = "n1={:.2f} -> n2={:.2f}".format(n1, n2)
    obj.new_2Dfig(aspect="auto")
    obj.axs.set_title("Reflection and Transmition Index\n" + title)
    obj.axs.plot(pt, tp, label="P-pol Transmit")
    obj.axs.plot(pt, rp, label="P-pol Reflect")
    obj.axs.plot(pt, ts, label="S-pol Transmit")
    obj.axs.plot(pt, rs, label="S-pol Reflect")
    obj.axs.legend()
    obj.axs.set_xlim(0, 90)
    obj.axs.set_ylim(-1.1, 5.0)
    obj.SavePng(obj.tempname + "-index.png")
Exemplo n.º 2
0
        for line in fp_lines:
            txt = ""
            dat = line.split()
            for t in dat:
                txt += str(t.decode("utf-8")) + "\t"
            qp.write(txt + "\n")

    data = []
    for idx, line in enumerate(fp_lines[1:]):
        data.append([float(v) for v in line.split()])
    return np.array(data)


if __name__ == '__main__':
    argvs = sys.argv
    parser = OptionParser()
    parser.add_option("--dir", dest="dir", default="./")
    parser.add_option("--name", dest="name", default="dae")
    opt, argc = parser.parse_args(argvs)
    print(opt, argc)

    obj = plot2d(aspect="equal")
    cfg = json.load(open("./cfg.json", "r"))
    name = opt.name
    for dat_name in cfg[name]["dat"]:
        data = uiuc_database(dat_name)
        print(dat_name, data.shape)
        obj.axs.plot(data[:, 0], data[:, 1], label=dat_name)
    plt.legend(loc='lower right', bbox_to_anchor=(1.0, -2.0))
    obj.SavePng("./uiuc_dat/{}.png".format(name))
Exemplo n.º 3
0
    surf = BRepBuilderAPI_MakeFace(curv, 1e-6).Face()
    surf = surf_trf(axs, surf)
    return surf


if __name__ == "__main__":
    wave = 1.765
    knum = 2 * np.pi / wave

    pz = np.linspace(0, 500, 10)
    w0 = 15.0
    rz = pz + 1 / pz * (np.pi * w0 / wave)**2
    wz = w0 * np.sqrt(1 + (wave * pz / (np.pi * w0**2))**2)
    t0 = wave / (np.pi * w0)

    obj_plt = plot2d(aspect="auto")
    obj_plt.axs.plot(pz, rz)

    obj_plt.new_fig(aspect="auto")
    obj_plt.axs.plot(pz, wz)
    obj_plt.axs.plot(pz, np.tan(t0) * pz)
    obj_plt.Show()

    #obj = plotocc()

    display, start_display, add_menu, add_function_to_menu = init_display()

    api = BRepOffsetAPI_ThruSections()
    for z in np.linspace(0, 1000, 10):
        r_z = z + 1 / z * (np.pi * w0 / wave)**2
        w_z = w0 * np.sqrt(1 + (wave * z / (np.pi * w0**2))**2)
Exemplo n.º 4
0
    fields2 = np.fft.ifft(wfou_fft)

    fieldIntensity = np.abs(fields2)**2
    fieldPhase = np.arctan2(np.real(fields2), np.imag(fields2))

    #
    # write spec formatted file
    #
    out_file = "fresnel_fourier_1D.spec"
    f = open(out_file, 'w')
    header = "#F %s \n\n#S  1 fresnel diffraction \n#N 3 \n#L X[m]  intensity  phase\n" % out_file
    f.write(header)
    for i in range(len(position_x)):
        out = np.array((position_x[i], fieldIntensity[i], fieldPhase[i]))
        f.write(("%20.11e " * out.size + "\n") % tuple(out.tolist()))
    f.close()
    print("File written to disk: %s" % out_file)

    sin_theta = position_x / distance
    x = (2 * np.pi / wavelength) * (aperture_diameter / 2) * sin_theta
    U_vs_theta = 2 * jv(1, x) / x
    I_vs_theta = U_vs_theta**2 * fieldIntensity.max()

    obj = plot2d("auto")
    obj.axs.plot(position_x * 1e6, fieldIntensity)
    obj.axs.plot(position_x * 1e6, I_vs_theta)
    obj.axs.set_title("Fresnel Diffraction")
    obj.axs.set_xlabel("X [um]")
    obj.axs.set_ylabel("Intensity [a.u.]")
    obj.SavePng(obj.rootname + ".png")
Exemplo n.º 5
0
    phi[255, 255:769] = 1.0
    phi[769, 255:769] = 1.0
    phi[255:769, 255] = 1.0
    phi[255:769, 769] = 1.0
    phi += rad
    phi = phi[254:N - 254, 254:N - 254]
    images = [
        np.abs(y_out_hat[254:N - 254, 254:N - 254])**2,
        np.abs(y_out[254:N - 254, 254:N - 254])**2, phi
    ]
    title = [
        "Model intensity", "Fibre simulator intensity",
        "SLM phase pattern(rad)"
    ]

    obj = plot2d()
    ax1 = obj.add_axs(1, 3, 1)
    im = ax1.imshow(images[0], cmap="jet")
    a = plt.axes([.2, .3, .15, .15])
    a.imshow(np.abs(y_out_hat[254 + 225:N - 254 - 225,
                              254 + 225:N - 254 - 225])**2,
             cmap="jet")
    plt.setp(a, xticks=[], yticks=[])
    a = plt.axes([.42, .3, .15, .15])
    a.imshow(np.abs(y_out[254 + 225:N - 254 - 225,
                          254 + 225:N - 254 - 225])**2,
             cmap="jet")
    plt.setp(a, xticks=[], yticks=[])
    ax1.set_title(title[0])

    ax2 = obj.add_axs(1, 3, 2)