Complex refractive index, reflectivity, absorption at the surface, optical surfaces

In Geant4-10.6.2 I simulate optical photons interacting with dielectric and metal materials and I have the complex refractive indices defined for the material and surface properties. This topic already describes the issue perfectly, but there hasn’t been any updates nor a solution. I summarize the issues in the following.

  1. The imaginary part of the complex refractive index is not taken into account for dielectric_dielectric surfaces when the reflectivity is calculated. This results in a wrong reflectivity for wavelength regions where the imaginary part is non-negligible. In order to force Geant4 to consider the imaginary part of the refractive index, a dielectric_metal surface has to be used, even though the interface should be dielectric_dielectric.

  2. From a physics point of view, it does not make sense that optical photons are absorbed directly at the surface. In reality, photons should be refracted/transmitted into the material and should be absorbed following Beer-Lambert’s law. Due to the absorption at the surface, for dieletric_dielectric surfaces the amount of reflected and refracted photons is too little (but the ratio of reflected vs. refracted photons is correct). For dieletric_metal surfaces the amount of reflected photons is correct, but no photons are transmitted. For dielectric_metal surfaces this problem can be circumvented by setting the transmittance to 1. This does not affect the number of reflected photons, but instead all photons that have been previously absorbed at the surface, are then transmitted into the material, where they are absorbed following the provided absorption length. A similar behaviour can be achieved for dielectric_dieletric surfaces by setting the reflectivity to 1 (but the reflectivity is only correct when the imaginary part of the refractive index is negligible).

  3. When an optical photon travels from one volume to another, where both volumes are dielectric_metal with a complex refractive index and an attached skin surface, the amount of reflected and transmitted photons is wrong (although using the hacks described above). If an additional border surface is defined for physical volume 1 → physical volume 2 using the optical surface of physical volume 2, the amount of reflected and transmitted photons is correct.

In my opinion these issues lead very likely to a wrong reflectivity if the user is not aware of them and the described circumventions should not be necessary in the first place. I would be happy if anyone could explain these design choices to me as I’m unable to see their purpose.

Hi Birgit,

At this point you are ahead of me.

Your specific question is what are the design choices. I can only infer based on what I see. The complex refractive index seems to be an add-on. The use case looks very narrow–it only seems to calculate the absorption given the complex index. As you note, it doesn’t appear designed for considering propagation of the photon in the material with complex index.

It seems you’ve managed to get it to work, however. If you have a procedure it would be great to show others, in the manual and examples. (And any other feedback is good). Please let me know.

Hi Daren,

thanks a lot for your answer. I’m a bit torn at this point. At one side I could certainly show my findings in an example and explain it in the manual. On the other side I’m sure that this usage is not intended and I’m afraid that it might only work accidentally. Furthermore, not all aspects work in my approach, e.g.

  • transmitted photons do not change their momentum direction and polarization, i.e. do not follow Snell’s law,
  • total internal reflection does not occur for volumes with skin surfaces, but photons are always transmitted,
  • Cherenkov radiation does not consider the imaginary part of the refractive index and it is only designed for normal dispersive materials.

Do you think it is nevertheless worth sharing with others?

Hi Birgit,

Yes, I think that if you have something working, even with caveats, it would be good to share. It can be an iterative process to document and test use cases as we find them.