EMUstack: An open source route to insightful electromagnetic computation via the Bloch mode scattering matrix method

2016 
Abstract We describe EMUstack, an open-source implementation of the Scattering Matrix Method (SMM) for solving field problems in layered media. The fields inside nanostructured layers are described in terms of Bloch modes that are found using the Finite Element Method (FEM). Direct access to these modes allows the physical intuition of thin film optics to be extended to complex structures. The combination of the SMM and the FEM makes EMUstack ideally suited for studying lossy, high-index contrast structures, which challenge conventional SMMs. Program summary Program title: EMUstack Catalogue identifier: AEZI_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEZI_v1_0.html Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland Licensing provisions: GNU General Public License, version 3 No. of lines in distributed program, including test data, etc.: 154301 No. of bytes in distributed program, including test data, etc.: 5308635 Distribution format: tar.gz Programming language: Python, Fortran. Computer: Any computer with a Unix-like system with Python, a Fortran compiler and F2Py [1]. Also required are the following free libraries LAPACK and BLAS [2], UMFPACK [3]. Developed on 1.6 GHz Intel Core i7. Operating system: Any Unix-like system; developed on Ubuntu 14.04 (using Linux kernel 3.16). RAM: Problem dependent; specifically on the resolution of the FEM mesh and the number of modes included. The given example uses approximately 100 MB. Classification: 10. External routines: Required are the following free libraries LAPACK and BLAS [2], UMFPACK [3]. Optionally exploits additional commercial software packages: Intel MKL [4], Gmsh [5]. Nature of problem: Time-harmonic electrodynamics in layered media. Solution method: Finite element method and the scattering matrix method. Running time: Problem dependent (typically about 3 s per wavelength including plane wave orders ≤ 3 ). References: [1] P. Peterson, F2PY: A tool for connecting Fortran and Python programs, International Journal of Computational Science and Engineering 4 (4) (2009) 296. [2] LAPACK, http://www.netlib.org/lapack [3] T.A. Davis, Algorithm 832: UMFPACK V4.3 - An Unsymmetric-Pattern Multifrontal Method, ACM Transactions on Mathematical Software 30 (2) (2004) 165–195. [4] Intel MKL, http://www.software.intel.com/intel-mkl [5] C. Geuzaine, J.-F. Remacle, Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities, International Journal for Numerical Methods in Engineering 79 (2009) 1309–1331.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    35
    References
    13
    Citations
    NaN
    KQI
    []