“pyGDM” - new functionalities and major improvements to the python toolkit for nano-optics full-field simulations
pyGDM is a python toolkit for electro-dynamical simulations of individual nano-structures, based on the Green Dyadic Method (GDM). pyGDM uses the concept of a generalized propagator, which allows to solve cost-efficiently monochromatic problems with a large number of varying illumination conditions such as incident angle scans or focused beam raster-scan simulations. We provide an overview of new features added since the initial publication [Wiecha, Comput. Phys. Commun. 233 (2018) 167–192]. The updated version of pyGDM is implemented in pure python, removing the former dependency on fortran-based binaries. In the course of this re-write, the toolkit's internal architecture has been completely redesigned to offer a much wider range of possibilities to the user such as the choice of the dyadic Green's functions describing the environment. A new class of dyads allows to perform 2D simulations of infinitely long nanostructures. While the Green's dyads in pyGDM are based on a quasistatic description for interfaces, we also provide as new external python package “pyGDM2_retard” a module with retarded Green's tensors for an environment with two interfaces. We have furthermore added functionalities for simulations using fast-electron excitation, namely electron energy loss spectroscopy and cathodoluminescence. Along with several further new tools and improvements, the update includes also the possibility to calculate the magnetic field and the magnetic LDOS inside nanostructures, field-gradients in- and outside a nanoparticle, optical forces or the chirality of nearfields. All new functionalities remain compatible with the evolutionary optimization module of pyGDM for nano-photonics inverse design.