orion-project / rezonator2

Laser resonator calculation tool
http://rezonator.orion-project.org
GNU General Public License v3.0
56 stars 11 forks source link

Wrong RTM calculation #2

Closed luv-deluxe closed 4 years ago

luv-deluxe commented 4 years ago

I do have following scheme with calculated RTM as shown in screenshot.

Zrzut ekranu 2020-03-5 o 23 22 37

But, if I calculate it manually (both python and by hand) I get

RTM = [ [ 0.6021979   0.19890113]
        [-1.999999    1.0000004 ]
]

which is different. I use ABCD (given by reZonator) for each individual component and get same result.

orion-project commented 4 years ago

Can you please attach the schema file causing the problem and the python code you used for checking?

Here is my variant of python calls for such schema and it gets the same results as the app:

python
Python 2.7.12 (default, Oct  8 2019, 14:14:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> M_M1_t = np.matrix([[1, 0], [0, 1]])
>>> M_d1_t = np.matrix([[1, 0.09], [0, 1]])
>>> M_s1_f_t = np.matrix([[1, 0], [4.50549e-7, 0.549451]])
>>> M_s1_b_t = np.matrix([[1, 0], [8.2e-7, 1.82]])
>>> M_d2_t = np.matrix([[1, 0.05], [0, 1]])
>>> M_F1_t = np.matrix([[1, 0], [-2, 1]])
>>> M0_t = M_d2_t * M_s1_f_t * M_d1_t * M_M1_t * M_d1_t * M_s1_b_t * M_d2_t * M_F1_t 
>>> M0_t
matrix([[ 0.14480008,  0.42760006],
        [-2.00000112,  1.00000101]])
luv-deluxe commented 4 years ago

The difference I see here is my ABCD refraction matrix from medium to air on convex curvature (center located after interface - back propagation).

M_s1_f_t = np.matrix([[1, 0], [8.2e-7, 1.82]]) - in my case.

initial n1 = 1.82
final n2 = 1
R = 1e6

A = 1
B = 0
C = (1.82-1) / 1*1e6 = 8.2e-7
D = 1.82 / 1 = 1.82

Obviously M_s1_f_t is different as well.

Maybe I messed up something, but I believe ABCD calculation is fine. Going from right to left makes this refraction convex. To get C=4.5e-7 I need to have refraction from air with initial n1=1 into medium with final n2=1.82 on concave surface, what essentially happens when propagating from left (M1) to right (lens).

>>> C = (1-1.82)/(-1e6*1.82)
4.5054945054945056e-07
orion-project commented 4 years ago

Lets considert it step-by-step:

0) How we calculate the round-trip regarding to d2: d2 * s1 (forward propagation) * d1 * M1 * d1 * s1 (back propagation) * d2 * F1

1) s1 Forward propagation - the beam enters the medium, n1=1, n2=1.82, surface is concave R<0. C = (n1-n2)/(R*n2) = (1-1.82)/(-1e6*1.82) = 4.50549e-07 reZonator uses a bit different convention and to get a concave surface you have to set R>0, but it also swaps n1 and n2 in formula for C and eventually it gives the same result: C = (n2-n1)/(R*n2) = (1.82-1)/(1e6*1.82) = 4.50549e-07

2) s1 Back propagation - the beam exits the medium, n1=1.82, n2=1, surface is convex R>0: C = (n1-n2)/(R*n2) = (1.82-1)/(1e6*1) = 8.2e-07 Again, reZonator uses a bit different convention and to get a convex surface you have to set R<0, but it also swaps n1 and n2 in formula for C and eventually it gives the same result: C = (n2-n1)/(R*n2) = (1-1.82)/(-1e6) = 8.2e-07

Both of these values you can see in the matrix window for s1.

luv-deluxe commented 4 years ago

Ad. 0 - calculation sequence d2 * s1 (forward) - here, after passing d2 in medium, beam is leaving it through convex surface (from beam's point of view), so I believe rezonator should put (Ad.2) s1 back-propagating matrix (C=8.2e-7), not forward.

Ad. 1,2 - You are correct and I agree - no doubt.

orion-project commented 4 years ago

The common rule of matrix optics is that element matrices are multiplied in the direction opposite to the direction of the beam propagation. Here it is mentioned in the doc http://rezonator.orion-project.org/help/round_trip_matrix.html. So when you calculate the round-trip matrix regarding to d2, you say "the beam traversed d2, and before that it entered d2 from air, and before that it traversed d1, and before that it was reflected by M1" and so on.

orion-project commented 4 years ago

Since there is no activity, I think it's all clear now so close the issue. Please reopen if there are additional questions,