sbyrnes321/tmm

Initial incident angle with a complex refractive index

Closed this issue · 2 comments

Hello Steve,

I have a question about the initial incident angle of a ray that starts from an inf layer with a complex refractive index. In examples.py all the initial layers have real refractive indices, and so it is not very clear for me how to set a complex incident angle properly.

In my understanding, as written in your arXiv manual, a complex incident angle is needed to make Snell's law always consistent. However, in tests.py,
https://github.com/sbyrnes321/tmm/blob/master/tests.py#L142
you calculate the complex th_0 assuming that n00 = 1 and th00 = pi/4, resulting in th_0 ~= 0.770 - 0.097j.

I would like to know how to calculate th_0 when I want to make the angle in the first inf absorptive layer pi/4. In your test script, th00 = pi/4 is the value in vacuum. If I just set th_0, ValueError('Error in n0 or th0!') is raised.

It’s a strict requirement that n0*sin(th_0) is real (i.e. its imaginary part = 0). Otherwise you’re not describing a plane wave, i.e. a wave whose intensity varies with depth-into-the-structure (z) but does NOT vary along the other two dimensions x and y.

This program is only set up for plane waves (whose intensity depends only on z) hitting planar stacks (whose index depends only on z).

I can’t tell you how to find th_0 for your particular situation—it depends on what you’re doing, how the light gets there, etc. Sorry! But I promise you that, if your situation involves a plane wave, and if n0 is complex, then th_0 is complex too—if you calculate it correctly!

Thank you. Well, my situation is to simulate scintillation photons that escape from an absorptive glass (scintillator) to the outside, where these photons pass through or reflected by the multilayer on the boundary between the glass and the ambient air.

Individual photons are uniformly emitted in 4 pi directions. The propagation and absorption from the scintillating position to the boundary are geometrically calculated (i.e., angles are always real) outside of the TMM software. Then I have to provide complex incident angles to TMM.