summaryrefslogtreecommitdiff
path: root/beam_tracing/example_beam_trace.m
blob: 6827e5443d3989ef76f89a80df8bcba44288864a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
%beam1.k=[-1,0];
%beam1.origin=[2,0.5];
beam_initial_travel_angle=(28+45-180)/180*pi;
beam1.k=[cos(beam_initial_travel_angle), sin(beam_initial_travel_angle)];
beam1.origin=[1.0,2];
%beam1.k=[-1,-1];
%beam1.origin=[2,2];
beam1.face=NA;
beam1.intensity = 1;
beam1.polarization = 1; % 1 for s  and 2 for p
beam1.status='incoming'; % could be reflected, refracted, incoming

beam2=beam1;
beam1.polarization = 2; % 1 for s  and 2 for p

beams={beam1,beam2};

n_rutile=[2.7532, 2.4885]; % n_s and n_p
n_disk=  [1.3751, 1.3868]; % MgF2 book value
n_disk=  [1.465 , 1.465 ]; % MgF2 measured
n_disk=  [1.39  , 1.39  ]; % CaF2 measured for p-polarization
n_air=  [1., 1.];

face1.vertex1=[-1,0];
face1.vertex2=[1,0];
%face1.n_right = n_air;
face1.n_right = n_disk;
face1.n_left= n_rutile;

face2.vertex1=[1,0];
face2.vertex2=[0,1];
face2.n_right = [1, 1];
face2.n_left= n_rutile;

face3.vertex1=[0,1];
face3.vertex2=[-1,0];
face3.n_right = [1, 1];
face3.n_left= n_rutile;

faces={face1,face2,face3};


border1.vertex1=[-2,-2];
border1.vertex2=[2,-2];
border1.n_right = [1, 1];
border1.n_left= [1, 1];

border2.vertex1=[2,-2];
border2.vertex2=[2,2];
border2.n_right = [1, 1];
border2.n_left= [1, 1];

border3.vertex1=[2,2];
border3.vertex2=[-2,2];
border3.n_right = [1, 1];
border3.n_left= [1, 1];

border4.vertex1=[-2,2];
border4.vertex2=[-2,-2];
border4.n_right = [1, 1];
border4.n_left= [1, 1];

borders={border1,border2, border3, border4};


border_limits=[-2,-2, 2,2];
figure(1);
clf;
[processed_beams] = beam_trace(beams, faces, borders, border_limits );
text(-1,-1, 'red: s-polarization;  blue: p-polarization');


print('beams.eps','-depsc2');
print('beams.png');