def resonator(P, l3): HR = o.OptMirror(rHr) L1 = o.OptSpace(l1) FNd = o.OptLens(1/.254/P * d**2/d0**2) L2 = o.OptSpace(l2) L3 = o.OptSpace(l3) OM = o.OptMirror() res = HR, L1, FNd, L2, L3, OM #res = HR, L1, FNd, L4, OM MNd = HR * L1 * FNd M1 = o.resonatorMatrix(res) q1 = M1.resonatorMode(532e-9) q2 = MNd * q1 # q1.print() # q1.print() # z,rho,R = o.plotResonator(res,q1) # z = np.array(z) # R = np.array(R) # D = np.array(rho) * 2 return q1, q2
""" rHr = -250e-3 l1 = 20e-3 P = 20 l2 = 20e-3 f55 = 55e-3 l3 = 25e-3 fn30 = -30e-3 l4 = 175e-3 d0 = 900e-6 d = 1e-3 HR = o.OptMirror(rHr) L1 = o.OptSpace(l1) FNd = o.OptLens(1 / .254 / P * d**2 / d0**2) L2 = o.OptSpace(l2) F55 = o.OptLens(f55) L3 = o.OptSpace(l3) Fn30 = o.OptLens(fn30) L4 = o.OptSpace(l4 + 25e-3 - l3) OM = o.OptMirror() def resonator(P, l3): res = HR, L1, FNd, L2, F55, L3, Fn30, L4, OM #res = HR, L1, FNd, L4, OM MNd = HR * L1 * FNd M1 = o.resonatorMatrix(res)
f2 = r2 / .51 * 1e-2 f3 = r3 / .51 * 1e-2 ft1 = -50e-2 ft2 = 80e-2 lt = 30e-2 #f1 = -50E-3 #f2 = 30E-3 #f3 = 50e-3 #print('пучки', rangeZoom(14.3, f1,f2,f3)) y1 = o.OptY(*n, 14.3e-2 / 2, 0 * 8.6e-3) l1 = 10e-2 l21 = 0 if (1 / (1 / f1 + 1 / f2) > 0) else f1 + f2 + 1e-2 l22 = f1 + 1 / (1 / f2 + 1 / f3) L1 = o.OptSpace(*n, l1) Ft1 = o.OptLens(*n, ft1) Ft2 = o.OptLens(*n, ft2) Lt = o.OptSpace(*n, lt) F1 = o.OptLens(*n, f1) l2, y = o.vectorY(*n, l21, l22) L2 = o.OptSpace(*n, l2) F2 = o.OptLens(*n, f2) opt = L1, Ft1, Lt, Ft2, L1, F1, L2, F2 M = o.linMatrix(opt) l3 = f3 + (M * y1).focus() L3 = o.OptSpace(*n, l3) F3 = o.OptLens(*n, f3) opt2 = opt, L3, F3, L1
from math import inf import optics as o import numpy as np import time """ double d0=900e-6;//диаметр накачки, м f=1/.254/P*pow(d,2)/pow(d0,2); //qDebug()<<"f"<<f; linza(f); )--l1--FNd--l2--| """ start_time = time.clock() n = 1, 6 # nx, ny l, y = o.vectorY(*n, 20 * 1e-3, 80 * 1e-3) L = o.OptSpace(*n, l) F = o.OptLens(*n, 30e-3) y1 = o.OptY(*n, 8e-3, 0) opt = L, F, L #print(q1) #print(q2) #legend = list(map(lambda y: 'rHr = ' + str(y * 1000) + 'mm', y)) # #o.grafX(x, q1.rho * 2e3, 'график 1', 'P, W', 'D, mm', legend) print(time.clock() - start_time, "seconds") #o.graf2d(x,y,q2.rho * 2e6, 'ris1', 'P, Вт', 'радиус зеркала, мм', 150, 200, 1000) #print (time.clock() - start_time, "seconds")
import time """ double d0=900e-6;//диаметр накачки, м f=1/.254/P*pow(d,2)/pow(d0,2); //qDebug()<<"f"<<f; linza(f); )--l1--FNd--l2--| """ start_time = time.clock() n = 1, 20 # nx, ny f1 = 40E-2 f2 = 20E-2 f3 = -50e-2 y1 = o.OptY(*n, 14.3e-2 / 2, 0) l1 = 100e-2 L1 = o.OptSpace(*n, l1) F1 = o.OptLens(*n, f1) l2, y = o.vectorY(*n, 81, 110) L2 = o.OptSpace(*n, l2 * 1e-2) F2 = o.OptLens(*n, f2) opt = L1, F1, L2, F2 M = o.linMatrix(opt) l3 = f3 + (M * y1).focus() L3 = o.OptSpace(*n, l3) F3 = o.OptLens(*n, f3) opt2 = opt, L3, F3, L1 #print(q1) #print(q2)
start_time = time.clock() n = 1, 6 # nx, ny l1 = 20e-3 l2 = 170e-3 rHr = -250e-3 P, y = o.vectorY(*n, 20, 50) d0 = 900e-6 d = 1e-3 l3 = 1100e-3 f500 = 500e-3 l4 = 1500e-3 HR = o.OptMirror(*n, rHr) L1 = o.OptSpace(*n, l1) FNd = o.OptLens(*n, 1 / .254 / P * d**2 / d0**2) L2 = o.OptSpace(*n, l2) OM = o.OptMirror(*n, inf, 1) L3 = o.OptSpace(*n, l3) F500 = o.OptLens(*n, f500) L4 = o.OptSpace(*n, l4) res = HR, L1, FNd, L2, OM M1 = o.resonatorMatrix(res) q1 = M1.resonatorMode(532e-9) opt = res, L3, F500, L4 #print(q1) #print(q2) #legend = list(map(lambda y: 'rHr = ' + str(y * 1000) + 'mm', y))
f2 = 58.2e-2#60e-2 f3 = -70e-2#4e-2 #f1 = -32.1e-2 #-74e-2/2 #f2 = 58.2e-2/2 #60e-2/2 #f3 = -32.1e-2#-74e-2/2 #f1 = -50E-3 #f2 = 30E-3 #f3 = 50e-3 #print('пучки', rangeZoom(14.3, f1,f2,f3)) y1 = o.OptY(*n, 14.3e-2/2, 8.6e-3) l1 = 100e-2 l21 = 0 if (1 / (1 / f1 + 1 / f2) > 0) else f1 + f2 l22 = f1 + 1/(1/f2 + 1/f3) L1 = o.OptSpace(*n,l1); F1 = o.OptLens(*n, f1) l2, y = o.vectorY(*n, l21, l22) L2 = o.OptSpace(*n, l2) F2 = o.OptLens(*n,f2) opt = L1, F1, L2, F2 M = o.linMatrix(opt) l3 = f3 + (M * y1).focus() L3 = o.OptSpace(*n, l3) F3 = o.OptLens(*n, f3) opt2 = opt, L3, F3, L1 print (time.clock() - start_time, "seconds")
import gc gc.collect() from math import inf import optics as o rho1 = 3.57e-3 d1 = 1 #ищу радиус пучка в перетяжке по размеру пучка rho0 = o.OptQ.rho0(d1, rho1, 1064e-9) dl = 950e-3 f = 130e-3 q1 = o.OptQ(rho0[1], inf, 532e-9) q1.print('эксперимент') M1 = o.OptSpace(dl) M2 = o.OptLens(f) q2 = M2 * M1 * q1 q2.print('перетяжка') q02 = o.OptQ(.16e-3 / 2, inf, 532e-9) q02.print('теория1') M1 = o.OptSpace(d1) q2 = M1 * q02 q2.print('экран1') M1 = o.OptSpace(dl) M2 = o.OptLens(f) q2 = M2 * M1 * q02 q2.print('перетяжка1')