GMES: A Python package for solving Maxwell's equations using the FDTD method
This paper describes GMES, a free Python package for solving Maxwell's equations using the finite-difference time-domain (FDTD) method. The design of GMES follows the object-oriented programming (OOP) approach and adopts a unique design strategy where the voxels in the computational domain are grouped and then updated according to its material type. This piecewise updating scheme ensures that GMES can adopt OOP without losing its simple structure and time-stepping speed. The users can easily add various material types, sources, and boundary conditions into their code using the Python programming language. The key design features, along with the supported material types, excitation sources, boundary conditions and parallel calculations employed in GMES are also described in detail. Program summary Program title: GMES Catalog identifier: AEOK_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEOK_v1_0.html Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: GNU General Public License v3.0 No. of lines in distributed program, including test data, etc.: 17700 No. of bytes in distributed program, including test data, etc.: 89878 Distribution format: tar.gz Programming language: C++, Python. Computer: Any computer with a Unix-like system with a C++ compiler, and a Python interpreter; developed on 2.53 GHz Intel Core (TM) i3. Operating system: Any Unix-like system; developed under Ubuntu 12.04 LTS 64 bit. Has the code been vectorized or parallelized?: Yes. Parallelized with MPI directives (optional). RAM: Problem dependent (a simulation with real valued electromagnetic field uses roughly 0.18 KB per Yee cell.) Classification: 10. External routines: SWIG [1], Cython [2], NumPy [3], SciPy [4], matplotlib [5], MPI for Python [6] Nature of problem: Classical electrodynamics Solution method: Finite-difference time-domain (FDTD) method Additional comments: This article describes version 0.9.5. The most recent version can be downloaded at the GMES project homepage [7]. Running time: Problem dependent (a simulation with real valued electromagnetic field takes typically about 0.16 mu s per Yee cell per time-step.) References: [1] SWIG, http://www.swig.org. [2] Cython, http://www.cython.org. [3] NumPy, http://numpy.scipy.org. [4] SciPy, http://www.scipy.org. [5] matplotlib, http://matplotlib.sourceforge.net. [6] MPI for Python, http://mpi4py.scipy.org. [7] GMES, http://sourceforge.net/projects/gmes. (c) 2012 Elsevier B.V. All rights reserved.
fdtd computational electromagnetism maxwell solver