In cooperation with Richard James (University College London) our group has developped an electromagnetic modesolver based on finite element discretization starting from the curl-curl equations. The modesolver is integrated with the two-dimensional liquid crystal calculation program of UCL. A standalone version without liquid crystal calculation can be downloaded for free. The free version is limited to uniform material regions. The program is only intended for educational use and research. Commercial use is not allowed. Please contact me if you want to use the program for commercial issues.
The program can be extended for special boundary conditions (PML), liquid crystal calculations, cilindrical configurations, curvilinear elements, etc. These extensions can be made available in terms of scientific collaboration. The program is written in Matlab and must run in Matlab (if this is a problem, you can always contact me to discuss alternatives). It basically consists of a number of encrypted m-files.
In parallel, a Beam Propagation Method is being developped by my colleague Pieter Vanbrabant, based on similar algorithms, which can be found here.
An article, describing the method and including some calculation examples has been published in Journal of Lightwave Technology:
Beeckman, J.; James, R.; Fernandez, F.; De Cort, W.; Vanbrabant, P. and Neyts, K., Calculation of Fully Anisotropic Liquid Crystal Waveguide Modes, J. Lightwave Technol. 27, 3812-3819 (2009)
Please cite our paper in your future publications when reporting on results that have been (partly) obtained by using FEAM.
24-02-2009: FEAM is now able to calculate kz from k0 and k0 from kz. Waveguides with circular curvature are being implemented (for the analysis of e.g. ring resonators), should be online soon.
22-06-2009: Periodic boundary conditions are now functioning for both left-right as for top-bottom periodicity.
05-07-2010: There seems to be problems with the latest version of Matlab (2010a). We will look into to it and provide an updates version of the modesolver soon.
13-12-2010: The problems with the latest version of Matlab (2010a) are solved. With this new version of Matlab, the program runs a lot faster with a lot less memory uses. The program might not work anymore with older versions of Matlab.
12-07-2011: Perfectly Matched Layers (PMLs) are now included in the program. In the file 'init.m' you can modify the thickness of the PML layer along the x and y direction.