예제 #1
0
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
예제 #2
0
"""

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)
예제 #3
0
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
예제 #4
0
파일: mainGeom.py 프로젝트: john27328/optpy
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)
예제 #6
0
파일: main.py 프로젝트: john27328/optpy
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))
예제 #7
0
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")
    
예제 #8
0
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')