Developer
The source code of MESH is in src/ folder, which consists of the following files and folders:
arma/: the folder contains all the headers from armadillo.luawrapper/: the Lua wrapper for C++ classes and MPI.mathlib/: some mathematical functions such as Bessel functions, and Gauss-legendre integral method.utility/: templates for smart points as well as exception handling.Cubature.c: a fast adaptive integration method for high dimensional functions, adoptted from the original code.Fmm.cpp: file computing the Fourier transform for different geometries.Gsel.cpp: file containing functions to select G vectors.Rcwa.cpp: file computing the RCWA and Poynting vector.System.cpp: file containing material, layer and structure classes and their methods.Mesh.cpp: file containing different types of simulations and C++ API.main_lua.cpp: file implementing Lua API.main_python.cpp: file implementing Python API.
The class structure is illustrated in the following figure

There are few features that need to be implemented in MESH:
- A correct and fast implementation of Fourier transform over dielectric functions.
- Improved ways of doing and integral other than the current naive summation method.
- Computing more physical quantities, such as energy density and Casimir force.