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")
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))
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)
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")
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)