# Understanding a Generalization of Snell's Law

I have been working a project of creating a simulation of thin-film interference in a 3D modeling program, Blender, to be able to create materials that would use its effects. While uncommon, I would love for it to be able to correctly calculate reflectance and transmittance when the incident medium is absorbing. I was able to derive calculations for those situations such that R+T=1 (with what I thought was a generalized form of Snell's law), but sadly, I'm realizing that they are incorrect.

I have been able to find an article, "Generalization of complex Snell-Descartes and Fresnel laws", that generalizes Snell's law, and I believe it holds the--partial--key to solving this problem (There's still the correction of the transmittance term by the Poynting vector). The problem is, I don't understand how the different angles used in the generalization are calculated.

For example, in the article, β can be found from the wave vector, but the article describes a form of the wave vector that I'm not sure how to derive.

I'd love to be able to continue with this project, but this problem of calculating for absorbing incident media has had me stuck for many months. If you would like to see my progress check out this Blender Artists post.

For an idea of my understanding of this, I honestly don't understand much of the physics (creating materials to use in Blender is what got me into this topic), but I try to understand it through the math presented. So when there seems to be a gap in the math, there's likely a gap in my understanding.

Thanks everyone!

Last edited:

Cryo
Gold Member
You seem to be asking for someone to read the whole paper instead of you and then spell it out. This is a lot of work. IMHO you should go step by step and ask simple questions rather than "explain 8 pages of research literature".

For example, in the article, β can be found from the wave vector, but the article describes a form of the wave vector that I'm not sure how to derive.

They work with time-harmonic fields, so the plane-wave in a solid is given by:

##\vec{E}=\frac{1}{2}\left(\vec{E}_0\exp\left(-i\omega\left(\vec{r}.\vec{n}/c-t\right)\right)+c.c.\right)##

this is fairly similar to their Eq. (1). In a lossy medium the propagating wave will be subjected to exponential decay, which means that ##\Im\left(\vec{n}.\vec{r}\right)<0##. This is achieved by introducing the ##i \vec{\hat{n}}_{\perp}\sinh\beta##, so that:

##\vec{E}=\frac{1}{2}\left(\vec{E}_0\exp\left(-i\omega\left(\vec{r}.\vec{\hat{n_{\parallel}}}/c-t\right)\right)\exp\left(\omega\sinh\beta\vec{r}.\vec{\hat{n_{\perp}}}/c\right)+c.c.\right)##

My guess is that the reason they have done it so is that if:

##\left|\vec{\hat{n}}_{\perp,\parallel}\right|=1##

Then

##|\vec{n}|=\sqrt{\cosh^2\beta-\sinh^2\beta}=1##

To get this ##\beta## you need to know, for example, the wavelength ##\lambda## and attenuation length ##\alpha## of the wave in the solid. Then ##\tanh\beta=\lambda/\alpha##. Of course, if the solid is anisotropic, the situation will be more complex.

• Delta2 and Jett
You seem to be asking for someone to read the whole paper instead of you and then spell it out.

Oh man, I'm so sorry. I didn't mean for it to come off that way. I have been reading and re-reading the paper, trying to understand how to derive everything, but I simply didn't understand. I realize now how much I was asking (I'll make sure to ask my questions in more bite size pieces now), and my lack of fundamentals is definitely hurting me here. Would you happen to have any suggestions of where to start to build up my understanding?

It's honestly been very difficult to get the physics right when all the information I'm finding is scattered everywhere and when input on what I'm doing wrong has been difficult (the reason I joined here). Although, I guess the biggest reason it's been so difficult finding input is because of how loaded the problem is. Here are the calculations I tried to put together from various sources to solve the problem: Click! Specifically, I know that the optical admittances and final reflection and transmission equations I use are incorrect, and those are what I'll be trying to correct.

Anyway, let's get back to it. In regards to the second equation you show, if ##\vec{n} = \vec{\hat{n}}_{\parallel}\cosh\beta+i\vec{\hat{n}}_{\perp}\sinh\beta## when loss is introduced, why doesn't ##\cosh\beta## show up in the first exponential term?

Of course, if the solid is anisotropic, the situation will be more complex.

I guess should say that I have restricted the simulation to linear, homogeneous, isotropic materials, for which I assume your example would be applicable to, correct? Man, it would be great to take the generalization further to more materials, but sadly Blender can only handle so much, hah!

Edit: Oh, and to hopefully make the process easier, later I'll edit the top post with the portions I do understand in the paper.

Last edited:
Oh, it seems I can't edit a post after 6 hours...

Well, here is what I (hopefully) understand about the given terms and variables in the article:
1. ##\theta_j##, where ##j=i,r,t##, describes the the angles that the light makes with the surface. The angle can be found by ##\cos\theta_j=\vec{s}\cdot
\vec{\hat{n}}_{\parallel j}##, where ##\vec{s}## is the surface normal. This means that ##\vec{\hat{n}}_{\parallel}## is the direction the light moves. From that, I can further find that ##\vec{\hat{n}}_{\perp}## is a vector perpendicular to the propagation of light.
2. A coordinate system, ##\left(\vec{\hat{e}_{1}},\vec{\hat{e}}_{2},\vec{\hat{n}}_{\parallel}\right)##, is defined with respect to the propagation of light, ##\vec{\hat{n}}_{\parallel}##. It is also defined that ##\vec{\hat{n}}_{\perp}=\vec{\hat{e}}_{1}\cos\psi+\vec{\hat{e}}_{2}\sin\psi## which makes sense because of the defined coordinate system and of what we know about the perpendicular vector. It seems that ##\psi## can be found from the component of ##\vec{\boldsymbol{E}}_0## parallel to the propagation of light, ##E_{0 \parallel}=\left(-i\tanh\beta\right)\left(E_{01}\cos\psi+E_{02}\sin\psi\right)##, where ##E_{01}## and ##E_{02}## are the perpendicular components of ##\vec{\boldsymbol{E}}_0## along ##\vec{\hat{e}_{1}}## and ##\vec{\hat{e}_{2}}##, respectively, and describe the polarization of the light.
3. The incident, reflection, and transmission regions each have a different coordinate system oriented around the direction the light travels. ##\vec{\hat{e}_{1i}}## is said to be perpendicular to the plane of incidence (which can then be assumed to be described by ##\vec{\hat{e}_{2i}}## and ##\vec{\hat{n}}_{\parallel i}##). ##\vec{\hat{e}_{1t}}## must then mean some vector perpendicular to the plane of transmission.
4. ##\Delta## is an angle that corrects the orientation of ##\vec{\hat{e}_{1t}}## with respect to ##\vec{\hat{e}_{1i}}##. It can be found by ##\cos\Delta=\vec{\hat{e}_{1i}}\cdot\vec{\hat{e}_{1t}}##. This angle is said to be the angle between the planes of incidence and refraction.
5. ##\eta_j## is the argument of the refractive index.
6. And after the input from Cryo, I now understand that ##\beta=\lambda/\alpha=\lambda^2/(4\pi k)## where ##k## is the complex part of the refractive index.
Hopefully, with this list of what I understand, we can go through and discuss each point and my respective questions about them one at a time (except the last two)! And hopefully that reduces your guys' work of explaining things to me. I feel that I am so close to learning how each angle is defined, but there are just some gaps in my knowledge preventing that.

Starting with 1, the paper also describes that ##\theta_j## can be found from ##\sin\theta_j=\vec{\hat{e}_{ij}}\cdot\left(\vec{s}\wedge\vec{\hat{n}}_{\parallel j}\right)##. What exactly dos the inclusion of ##\vec{\hat{e}_{ij}}## mean in this context? I know that the magnitude of the cross of two unit vectors gives the sine of the angle between them, but that's not exactly what's shown here.

Cryo
Gold Member
. Here are the calculations I tried to put together from various sources to solve the problem: Click! Specifically, I know that the optical admittances and final reflection and transmission equations I use are incorrect, and those are what I'll be trying to correct.

I must say it looks amazing (the rendering)! I do use Blender from time to time. Most likely nowhere near as profficient as you, but I can appreciate the beauty of it.

Anyway, let's get back to it. In regards to the second equation you show, if →n=→^n∥coshβ+i→^n⊥sinhβ\vec{n} = \vec{\hat{n}}_{\parallel}\cosh\beta+i\vec{\hat{n}}_{\perp}\sinh\beta when loss is introduced, why doesn't coshβ\cosh\beta show up in the first exponential term?

My bad, the ##cosh## should have been there too.

I guess should say that I have restricted the simulation to linear, homogeneous, isotropic materials, for which I assume your example would be applicable to, correct?

The example I gave in the in the previous post was very simple. I did not spend much time to think about it. Certainly it helps to know that we are talking about homogeneous and isotropic materials. Also, being in optics, I presume all you materials are non-magnetic (i.e. relative permeability ##\mu_{r}=1##)?

Cryo
Gold Member
Starting with 1, the paper also describes that θj\theta_j can be found from sinθj=→^eij⋅(→s∧→^n∥j)\sin\theta_j=\vec{\hat{e}_{ij}}\cdot\left(\vec{s}\wedge\vec{\hat{n}}_{\parallel j}\right). What exactly dos the inclusion of →^eij\vec{\hat{e}_{ij}} mean in this context? I know that the magnitude of the cross of two unit vectors gives the sine of the angle between them, but that's not exactly what's shown here.

From your text I presume you have no problem with the actual wedge products (I must say I'd prefer the cross-product notation - wedge product is more general). Can you please tell me the place in the paper you are asking about? I presume it is Eq. (23).

There seems to be something funny with notation there. They use a triad ##\left\{\hat{e}_{1i}, \hat{e}_{2i}, \hat{n}_{\parallel i}\right\}## to desribe incident (##i=i##), reflected (##i=r##) and transmitted waves (##i=t##). I think the first index of ##\hat{e}_{ij}## refers to choice of the vector from the triad. Basically, it is well-known that the rules for reflection and refraction are different depending on the polarization of the incident light : check out Fresnel laws for s- and p-polarizations. I think their angle-definitions are such as to bear this difference in mind.

This is the best I could understand. However it only workes for s-polarization. For p-polarization, when polarization is in the incidence plane the two parts of Eq (23) will not agree. This is why I say there is something funny there.

-----

Now, a couple of things.

1) Does Blender support polarized light? I thought it did not. What's the plan there? Will you extract the laws and then average over polarization?

2) I cannot say I see much point in this paper. Maybe that's because I did not read it too closely, but I would have thought that anyone with some familiarity of Maxwell's equations can simply derive all of this stuff in one-two pages (not the whole paper, but the bit that is of interest in a particular case). Of course, as you say, you are not a physicist, but maybe this is where we can help. Can you state the problem you want to solve in the simplest possible way?

For example. I have a wave with s- (or p- or TM or TE etc) polarization incident on an interface between media 1 and 2. The wave is incident from medium 1. The media are described by refreactive indices ##n_1## and ##n_2## (make them complex if you want to include loss). How do I determine the angle and polarization of the transmitted/reflected waves?

I must say it looks amazing (the rendering)! I do use Blender from time to time. Most likely nowhere near as profficient as you, but I can appreciate the beauty of it.

Thanks! Although, I will say that I've really only been making materials (many modeling projects have turned into long material studies), and my modeling skills... need work, hah!

I presume all you materials are non-magnetic (i.e. relative permeability μr=1μr=1\mu_{r}=1

Right! Although, from my research of different matrix formalisms for interference, it seems relatively simple to implement if I wanted to (at least for the materials I'm restricted to).

Can you please tell me the place in the paper you are asking about? I presume it is Eq. (23)

Sorry, yes, it is Eq. (23).

There seems to be something funny with notation there. They use a triad {^e1i,^e2i,^n∥i}{e^1i,e^2i,n^∥i}\left\{\hat{e}_{1i}, \hat{e}_{2i}, \hat{n}_{\parallel i}\right\} to desribe incident (i=ii=ii=i), reflected (i=ri=ri=r) and transmitted waves (i=ti=ti=t). I think the first index of ^eije^ij\hat{e}_{ij} refers to choice of the vector from the triad.

Huh, I noticed that oddity, too, but I assumed it was a typo where they meant ##e_{1j}## instead because they use that vector in Eq. (24). You know, I also noticed what seems to be another error in Eq. (8) where they have ##\left(\tilde{n}_{\perp}\wedge\hat{n}_{\parallel}\right)## where it likely was supposed to be ##\left(\hat{n}_{\perp}\wedge\hat{n}_{\parallel}\right)##.

check out Fresnel laws for s- and p-polarizations.

The Fresnel laws were actually something I looked into when I first started this project, but I thought they were more about the amplitudes (or intensities) of the reflected or transmitted waves. Don't the two polarizations have the same angles of reflection and refraction for materials with a refractive index independent of them (the reason why there is only a singular Snell's law used for both cases)?

I think this might just be a mistake in notation in the same vein as the other mistake, because assuming that your interpretation was the case and that the two parts of Eq. (28) would not agree for p-polarization, I feel that they would have likely known and made at least some note of it somewhere. Although, even if that was the case, the fact that it would only apply to s-polarization is certainly odd.

---

For your first question, yes, Blender doesn't support polarization, so, yes, I'll be averaging the polarizations at the end when the final reflectances and transmittances are found (what the Fresnel node does).

For your second question, my problem is very similar to your example. A wave is incident on the interface between medium 1 and 2, where their refractive indices are ##n_1## and ##n_2## respectively. When the wave is incident from medium 1 and ##n_1## is complex, how do I determine the angle of the transmitted wave?

Er, well that question stemmed from a larger question of making sure the energy is conserved in the calculations for the thin-films (see the original question in the link to the equations I use). The answer to that seems to be related to the mixed Poynting vector.

The biggest reason I found this article was because I was told that Snell's law does not apply when the incident medium has loss--a statement that seemed to match up with what I researched about the wave vector. Let's say we have a wave vector, ##\boldsymbol{k}=(k_x,k_y,k_z)## where ##k_x=k_0n_1\sin\theta_1##, ##k_y=0## and ##k_z=(k_0^2n_2^2-k_x^2)^{1/2}=k_0n_2\cos\theta_2##. Many sources I found state that ##k_x## must always be real.

This actually leads into another question I eventually wanted to ask: how is ##k_x## handled, such that it is real, when ##n_1## is complex? So many sources assume a real ##n_1## or ##n_1=1## (for air), so it's hard to find any that do address it. That question is another reason I wanted to use this paper; it means that the equation for ##k_z## is incorrect when ##k_x## is complex. Using the generalized Snell's law and Eq. (38) would correctly account for the complex nature of ##n_1## while allowing me to avoid the uncertainty I had of finding ##k_z## with ##k_x## (even if it is truly mathematically the same). As I say this, I realize I could do the same with the original law, but I guess my argument to that would be that I was told it doesn't work with loss in the incident medium and it looks like other sources agree... that sounds bad, haha.

Last edited:
Cryo
Gold Member
For your second question, my problem is very similar to your example.

Ok. Well in this case, can I suggest you a different reference? Have a look at chapter 2 in Weng Cho Chew's "Waves and Fields in Inhomogeneous Media" by IEEE Press. It has plenty of detail on solutions for the TE and TM cases in much simpler form that is still completely general, and does apply to lossy media. The treatment there is farily standard, and I even started to derive it here myself, but then I thought you would rather have a proper reference than "someone on PF told me...".

Here are the extracts from that chapter. We are looking at the geometry as in Fig. attached. Here it is the TE case. The y-polarized electric field is subject to:

##\left[\partial_{xx}+\mu\partial_z \mu^{-1}\partial_z+\omega^2\mu\epsilon\right]E_y=0## (Eq. 1)

in both domains. Note that ##\mu## (full permeability) and ##\epsilon## (full permittivity) here can be complex. ##\omega## is the angular frequency. Suitable solutions are:

##E_y=e_y\left(z\right)\exp\left(\pm i k_x x \right)##

For the reflection/refraction problem, i.e. the wave is incident from medium 1 we have

##e_{1y}=e_0 \exp\left(-i k_{1z} z\right)+R^{TE}e_0 \exp\left(+i k_{1z} z\right)##
##e_{2y}=T^{TE}e_0 \exp\left(-i k_{2z} z\right)##

In both domains the x-component of the wavevector has to be the same ##k_{1x}=k_{2x}=k_x## (follows from interface conditions for Maxwell Equations). Before continuing lets understand what these wavevectors are. Going back to Eq. (1) we see that:

##k_x^2+k_{1z}^2=\omega^2\epsilon_1\mu_1##
##k_x^2+k_{2z}^2=\omega^2\epsilon_2\mu_2##

One can easily convince oneself that if ##k_x=k_1\cos\theta_i## and ##k_{1z}=-k_1\sin\theta_i##, where ##k_1^2=\omega^2\epsilon_1\mu_1## then ##\theta_i## is the incidence angle. Note that relating ##k_x## and ##k_{1z}## through ##\theta_i## is merely the consequence of equations above. We then add the interpretation of the incidence angle on top. Also, it follows that the reflection angle is the same as incidence angle since both waves are in the same domain.

One may ask wether ##\theta_i## has to be real-valued here. In general it does not, however if we do want to talk about plane-waves, which can be converted into one another by simple rotation of coordinates, then it does.

For domain 2 we must introduce a different angle, which will be the refraction angle ##\theta_t##: ##k_x=k_2\cos\theta_t## and ##k_{2z}=-k_2\sin\theta_t##, where ##k_2^2=\omega^2\epsilon_2\mu_2##. It follows that ##k_x=k_1\cos\theta_i=k_2\cos\theta_t##. Which is general could mean that ##\theta_t## is complex-valued. This indeed is a modification of the Snell's law. You will get attenuation of waves in the direction that is different to propagation direction=evanescent waves. Can you handle this in Blender?

By the way. In the non-magnetic case ##\mu_{1,2}=\mu_0## and ##\epsilon_{1,2}=\epsilon_0 n^2_{1,2}##, where ##n## is complex refractive index. We can do the TM case next.

#### Attachments

• Chew.png
21.4 KB · Views: 443
• Jett
Cryo
Gold Member
This actually leads into another question I eventually wanted to ask: how is kxk_x handled, such that it is real, when n1n_1 is complex?

Why does ##k_x## have to be real?

but then I thought you would rather have a proper reference than "someone on PF told me...".

Definitely! Thanks for directing me to the reference! I filed for an interlibrary loan, and hopefully I can access it soon!

While I'm not yet able to see the source, I will say that there's something that stuck out to me with what you show here.

##k_x=k_1\cos\theta_i## and ##k_{1z}=-k_1\sin\theta_i##

I have never seen ##k_x## related to ##\cos\theta##. I would have thought that from ##k_x=k_1\cos\theta_i##, it would mean that ##x## is the direction into the boundary and ##z## would be parallel to the boundary (due to the definitions of the trigonometric angles), but then you describe that the ##x## components are equal (and then there's also the attached image). I guess it's a consequence of the generalization/modification?

You will get attenuation of waves in the direction that is different to propagation direction=evanescent waves. Can you handle this in Blender?

Hmm... I'm not sure. How is that direction characterized? Is it related to the complex part of the transmitted angle? Right now I'm leaning toward a no; I have not been able to find any combination of nodes that would allow me to send information from one part of the mesh to another, but I guess it depends on the answer.

Why does ##k_x## have to be real?

I wasn't completely sure of that either; it's simply what I've found during my research. I've actually been able to find another person I could discuss some of my questions with (more so about the more general problem of an absorbing incident medium instead of general forms of Snell's law). I'll see what they say, too.

Cryo
Gold Member
I have never seen kxk_x related to cosθ\cos\theta. I would have thought that from kx=k1cosθik_x=k_1\cos\theta_i, it would mean that xx is the direction into the boundary and zz would be parallel to the boundary (due to the definitions of the trigonometric angles), but then you describe that the xx components are equal (and then there's also the attached image). I guess it's a consequence of the generalization/modification?

Sorry. This is why proper references are good. I mislabeled the angles.

##k_x^2+k_{1z}^2=\omega^2\epsilon_1\mu_1##

is sufficient to relate one component of the wavevector to ##sin##, and another to ##cos##. Which way you do it is a matter of choice, but the convention in optics is to declare the incidence angle as ##k_x=k_1\sin\theta_i## and ##k_{1z}=-k_1\cos\theta_i## . The reflection angle still stays the same as the incidence angle. The continuity of the tangential electric field leads to:

##k_x=k_1\sin\theta_i=k_2\sin\theta_t##. Sorry for confusion. The incidence and transmission angle stuff is not in the book actually. The author only talks about the wavevector components, but this is enough.

Hmm... I'm not sure. How is that direction characterized? Is it related to the complex part of the transmitted angle? Right now I'm leaning toward a no; I have not been able to find any combination of nodes that would allow me to send information from one part of the mesh to another, but I guess it depends on the answer.

I think the best way to proceed here is to consider a realistic scenario, with materials that are of interest to you, with a suitable angle etc. The formalism in the book then descibes how you get the solution to this scattering problem. Get the solution and plot it as a colormap of the real part of the electric field. You will see the wavefronts and the attenuation. Then, I think, it will be easier to think what to do next. By the way, normally the direction of propagation of the 'ray' of light is perpendicular to the wavefront.

I wasn't completely sure of that either; it's simply what I've found during my research. I've actually been able to find another person I could discuss some of my questions with (more so about the more general problem of an absorbing incident medium instead of general forms of Snell's law). I'll see what they say, too.

It would be surprising to have non-complex wavenumber that descibes the propagation of the wave in lossy medium. I think ##k_x## does not have to be real.

Get the solution and plot it as a colormap of the real part of the electric field.

Ah, thank you for this!

Here's one realistic scenario I've thought of that I presented to the other person, and hopefully it could give us something concrete to talk about: an insect trapped in amber. Insects display interference effects, and the incident medium, the amber, is lossy. From what I understand, there's not just thin-film interference, but also structural interference, so we'll simplify it in this case.

It would be surprising to have non-complex wavenumber that descibes the propagation of the wave in lossy medium. I think ##k_x## does not have to be real.

You're right. The person I talked to told me that, yes, by definition, ##k_x## should be real everywhere in a multilayer problem. They say the problem lies in the fact that we're not looking at plane waves anymore. The waves lose their translational invariance. That's not to say ##k_x## cannot be complex, it can still work as an approximation.

Here are a few relevant excerpts of our conversation (each set of questions and answers were not consecutive) :

Me said:
I do remember that in a lot of the resources I've looked into, it is stated that k_x should always be real. Could that be coming into play here? By making the incident medium's refractive index complex, it also makes k_x complex.

if k_x is the component parallel to the substrate, you should treat it as real by definition

Me said:
So I wanted to get some clarification about the component of the wave vector parallel to the interface. Most often, I see it as described as k_x = k_1 * sin(theta_1), where k_1 is the wave number of the incident medium and theta_1 is the angle of incidence. Earlier, I asked about about how the role of k_x and how it might be affecting the calculations, but there's something I still don't quite understand about it.

From the description of k_x above, if the medium's refractive index is complex, then the k_x is also complex. Would that mean it's complex by definition and is therefore allowed to be complex? Or is there some other definition for k_x?

in a multilayer system the k_x remains the same everywhere, so no matter how thick and dispersive a layer is it'll always be real

the issue comes when you can't talk about plane waves anymore like in a sphere or your amber bit, so the k_x doesn't have any meaning anymore and you should compute the result of the whole system at once

Me said:
I was curious about light propagating within lossy media. So we've established that the definition of k_x breaks down in the amber situation due to the fact we're not looking at plane waves anymore, but I've usually seen it described that when light enters a lossy medium, it becomes an inhomogeneous plane wave. Why can it not be considered to be a plane wave anymore for the purpose of modeling the amber?

it's because of the loss of the translational invariance

but that point was from a pure electromagnetics point of view, defining a k_x for a given ray should still work as an approximation

For context of when I ask, "Could that be coming into play here?", the other person was able to test out my problem of absorbing incident media with a computer model they use. They found that their definition of the reflected field was providing a negative absorption, and they think that might be the problem here because the wave should be shrinking, not growing.

Also, I understand that this isn't necessarily a proper resource, so maybe other people could also hopefully chime in and provide their inputs or even resources!

Cryo
Gold Member
Ah, thank you for this!

Here's one realistic scenario I've thought of that I presented to the other person, and hopefully it could give us something concrete to talk about: an insect trapped in amber.

Sorry, that's a bit too involved for me. To describe this problem properly you need a ton parameters, which would take too much time. If you are digging deep into Blender, I guess you must be ok with Python? I wrote a simple script that visualizes the plane wave scattering at the interface of the two media. Hopefully it will help.

Regarding the imaginary part of ##k_x##. You can have it zero, i.e. you can make ##k_x## fully real even in lossy medium. The way to do this is to have complex-valued angle of incidence. The problem is whether this will represent anything physical. My thinking was that the incident wave must be a conventional plane wave that, which would be given by:

##\exp\left(-i\omega t+i k z'\right)##

where ##z'## is the axis of propagation. To make this into an incident wave we simply rotate this solution by angle ##\theta_i##, which gives:

##\exp\left(-i\omega t- i k \sin\theta_i x + i k \cos\theta_i z\right)##

In this approach ##\theta_i## must be real, and so the ##k_x=k \sin\theta_i## can be complex.

#### Attachments

• WaveScat.py.txt
4 KB · Views: 374
Last edited:
hutchphd
Homework Helper
You can have it zero, i.e. you can make kxkxk_x fully real even in lossy medium. The way to do this is to have complex-valued angle of incidence.
I have never seen a this technique. Can you please describe it a little more fully? In particular the use of complex valued k is a standard shortcut. The imaginary part is related to the absorbing power of the medium. It is not at all clear to me what you mean to do here...?

Cryo
Gold Member
I have never seen a this technique. Can you please describe it a little more fully? In particular the use of complex valued k is a standard shortcut. The imaginary part is related to the absorbing power of the medium. It is not at all clear to me what you mean to do here...?

The only requirement you really have to satisfy is (talking about TM/TE cases here):

##k_x^2+k_z^2=k^2=n^2 \omega^2/c^2##

where ##\omega## is the angular frequency, ##c## is the speed of light and ##n## is complex-valued refractive index. If I wanted to have real ##k_x##, I could, for example, set ##k_x=\omega/c## and then live with ##k_z=\pm\frac{\omega}{c}\sqrt{n^2-1}##. It would be a valid solution, the question is whether it would be a physically relevant solution.

Cryo
Gold Member
I could, for example, set kx=ω/c

Of course if I did set ##k_x=\omega/c## and try to interpret it as ##k_x=\frac{n\omega}{c}\sin\theta##, I would get ##\theta=\mbox{arcsin}\left(\frac{1}{n}\right)##, which would lead to complex ##\theta##

Dr Transport
Gold Member
the generalization of Snell's law for lossy media is in Born and Wolf, chapter 13.1, even though it says optics of metals, any material with a complex index of refraction, i.e. loss, follows the same rules.

• Jett and Cryo
Sorry, that's a bit too involved for me.

Oh, it was simply a realistic illustration of a situation where the incident medium is lossy. It should be able to be modeled with the interference equations when I figure everything out, right?.

If you are digging deep into Blender, I guess you must be ok with Python?

Unfortunately, no. Well, I can understand the code itself, but I seem to be having problems running it. Thank you so much for taking the time to write the script, by the way!

I do have a question about kBotZ in the script. Would it not be equal to np.sqrt( kBot**2 - kX**2 )?

the generalization of Snell's law for lossy media is in Born and Wolf, chapter 13.1, even though it says optics of metals, any material with a complex index of refraction, i.e. loss, follows the same rules.

Hmm... let's see if I can understand this correctly

##\boldsymbol{E}=\boldsymbol{E}_0e^{i\left(\hat{k}\boldsymbol{r}\cdot\boldsymbol{s}-\omega{t}\right)}##, where ##\hat{k}=k_0(n+i\kappa)##. A different notation for the complex refractive index is used here.

##\boldsymbol{E}=\boldsymbol{E}_0e^{-k_0\kappa\boldsymbol{r}\cdot\boldsymbol{s}}e^{i\left(k_0n\boldsymbol{r}\cdot\boldsymbol{s}-\omega{t}\right)}##

##r\cdot{s}## would be ##x\sin\theta+z\cos\theta##, right?

So then the exponent terms become

##-k_0\kappa(x\sin\theta+z\cos\theta)## and ##i\left(k_0n(x\sin\theta+z\cos\theta)-\omega{t}\right)##

I assume this is where the generalization comes in, where it seems the imaginary part of two mediums' refractive indices are related by ##\kappa_1\sin\theta_1=\kappa_2\sin\theta_2##. Although, that doesn't make sense because it appears that the angles should be the same within both of the exponentials. Instead, is it correct to combine the exponentials such that ##(n_1+i\kappa_1)\sin\theta_1=(n_2+i\kappa_2)\sin\theta_2##?

Cryo, this is essentially what you have shown the derivation for, is that correct?

Cryo
Gold Member
I do have a question about kBotZ in the script. Would it not be equal to np.sqrt( kBot**2 - kX**2 )?

;-) Yes it should. Appologies.

Hello everyone, it has been a while. I was able to determine formulas that find the true angles of propagation from the components of the wave vector (see Electromagnetic Theory by Julius Adams Stratton or the source Dr Transport suggests). To use those true angles, effective ##n## and ##\kappa## values are needed, as per "Ray Tracing in Absorbing Media" by Peter Chang et al. It turns out, using them that way gives the exact same results as if I had simply used the perpendicular component of the wave vector directly.

My problem now is the parallel component of the wave vector. I finally realized a possible reason why the parallel component should always be real. Let's say we have a wave moving from a lossy medium to a dielectric. When the wave exits the lossy medium, it should not anymore be evanescent. If we continue to define ##k_x## as ##\omega n_0\sin\theta_0##, where ##n_0## is complex and ##\theta_0## fully real, then the perpendicular component of the dielectric's wave vector would appear to exhibit loss when it should not. In my simulation, this shows up as loss occurring where it should not.

I don't know if I truly solved the problem, but I was able to find a new definition that seems to have fixed it. I think a problem with the derivation ahead is, like Cryo mentioned, whether the complex angle represents anything meaningful.

So let's say the incident angle is complex; the real part will be the original incident angle, ##\theta##, and the imaginary part, ##\delta##, will be a value such that the parallel component, ##k_x##, is real. Now we have:

##k_x=\omega(n+ik)\sin(\theta+i\delta)##
##k_x=\omega(n\sin\theta\cosh\delta-k\cos\theta\sinh\delta)+i\omega(k\sin\theta\cosh\delta+n\cos\theta\sinh\delta)##

Setting the complex part equal to 0, we find the following:

##\cos\theta\sinh\delta=-(k/n)\sin\theta\cosh\delta##

Substituting into ##k_x##:

##k_x=\omega(n+k^2/n)\sin\theta\cosh\delta##

Dividing both sides by ##n+ik##

##sin(\theta+i\delta)=\sin\theta\cosh\delta+i\cos\theta\sinh\delta=(1-i(k/n))\sin\theta\cosh\delta##

Equating the imaginary parts allows us to find ##\delta##:

##\tanh\delta=-(k/n)tan\theta##

Finally,

##k_x=\frac{\omega(n^2+k^2)sin\theta}{(n^2-k^2\tan^2\theta)^{1/2}}##

I think there are some interesting implications with this, such as the denominator being undefined when ##\tan\theta=n/k## and purely imaginary when ##\tan\theta>n/k##. Also, the result doesn't appear to be completely unprecedented; because the fifth equality listed in my derivation appears to have a similar form as Eq 2.5.29a in this dissertation by John Marozas.