Welcome to pyGTM’s documentation¶
What is it?¶
pyGTM is a python code to calculate light propagation in multi-layered stacks of arbitrary (isotropic, uniaxial and biaxial) materials. This means that pyGTM handles general, 3x3 complex permittivity tensors. It is based on a generalized transfer matrix method (GTM) [1] [2]. In addition to describing the reflection and transmission of light at each interface, it can also compute the absorption in the material, thus enabling layer-resolved visualization of the light absorption [3].
pyGTM initially spun off the Matlab code from Nikolai Passler and Alexander Paarman in the Fritz-Haber Institute Lattice Dynamics group in Berlin.
The core of the module is derived from the work of D. Dietze’s FSRStools which implemented the 4X4 transfer matrix formalism of Yeh [4] [5], which lead to singularities in some particular cases. This new formulation is thus more stable, and hopefully suited to study new optical phenomena with arbitrary material properties.
References
| [1] | Passler, N. C. and Paarmann, A., JOSA B 34, 2128 (2017) 10.1364/JOSAB.34.002128 |
| [2] | Passler, N. C. and Paarmann, A., JOSA B 36, 3246 (2019) 10.1364/JOSAB.36.003246 |
| [3] | Passler, N. C., Jeannin, M. and Paarmann, A., arXiv (2020) arxiv:2002.03832 |
| [4] | Yeh, P., J. Opt. Soc. Am., 69, 742 (1979) 10.1364/JOSA.69.000742 |
| [5] | Yeh, P., Surf. Sci., 96, 41 (1980) 10.1016/0039-6028(80)90293-9 |
Download and installation¶
You can download the latest version on github. There is no installation file to run, just make sure that the main GTM foled is in your pythonpath.