Refractive index profile calculation

58 views (last 30 days)
Hello all,
I'm tryng to calculate a Refractive index profile from an article (Ref 1):
But my code does not reproduce smothly as it was suppose to do. Goes to 1.48 (last value as the curve above) but as a square:
The thing is that as you can see in my code below I have N layers (this means N values of refrective index) and when I change the values below 1000 I get some weird shapes. The right curve (first curve attached in this text) has 1000 of values, I mean they (arthurs of that curve) used N = 1000 because converge to a continuos curve. I think I'm very near to the response but I don't know what could be wrong.
If I change N = 10, for example, look the shape:
I mean is not continuos, of course, because it is no the right value that the artours used to had that curve but with N = 1000 it is like a square. And I'm using all the equations to calculate right. Check this:
  1. From Ref 1 they said:
2. And the figure that I'm studying to reproduce is (From Ref. 1):
As you can see in my code I calculate theta correct and also Lf up to Lf maximum (this case is 10um (as you can see in the article curve and in my code)).
I really appreciate any help !!
NOTE: THE ARTICLE HAS OPEN ACESS FROM OSA WEBSITE. IT IS NOT RESTRICTED SO ANYONE CAN SEE.
References
  1. Qian Wang, Yingyan Huang, Ter-Hoe Loh, Doris Keh Ting Ng, and Seng-Tiong Ho, "Thin-film stack based integrated GRIN coupler with aberration-free focusing and super-high NA for efficient fiber-to-nanophotonic-chip coupling," Opt. Express 18, 4574-4589 (2010).
  6 Comments
Rena Berman
Rena Berman on 13 Dec 2021
(Answers Dev) Restored edit

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 19 May 2020
Hi Tay,
The following code addresses (1) in the text. For Lf = 1, D = 1 and 1000 layers the resulting plot reproduces the one in the text pretty well.
When D > Lf you can get some funky results with the refractive index being less than 1.
Lf = 1;
D = 1;
N = 1000;
h = D/N;
Lfh = Lf/h;
n1 = 3.5; % refractive index of layer 1
nvec = n1; % vector of refractive indices
for k = 1:N
ni = fzero(@(ni) fun(ni,nvec,Lfh),[.1, nvec(end)-1e-10]); % have to be careful with upper limit
nvec = [nvec ni];
end
plot(nvec)
grid on
function y = fun(ni,nvec,Lfh)
y = sum(1./sqrt(nvec.^2/ni^2-1)) - Lfh;
end
  5 Comments
David Goodmanson
David Goodmanson on 24 Nov 2021
Edited: David Goodmanson on 24 Nov 2021
Hello Tay,
Deleting a question that has been answered is not considered accceptable. One reason is that the site is a source of information and solutions, and deleting a question takes away potentially useful information. A more personal reason is that having put in time on the answer, I would not like to see it go away. In this case the question concerns verifying a process involving Snell's law from a freely available 11 year old paper, so I do not yet understand what harm there might be. One idea is, if you wanted to rephrase the question in some manner, I would certainly be amenable to modifying the answer accordingly, and then deleting the comments that have to do with this situation. Any thoughts?
Tay
Tay on 24 Nov 2021
Edited: Tay on 24 Nov 2021
Thank you David. this was supposed to be simple, but it started to be an forum
no problem, it's ok hahaha

Sign in to comment.

More Answers (0)

Categories

Find more on Sparse Matrices in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!