The Finite-Element Method (FEM) is a computationally method to solve boundary value problems over an unstructured mesh.  FEM is particularly well suited for modeling domains of arbitrary shape, and efficiently modeling small features in large computational domains.Both 2D and 3D FEM codes can be downloaded below.  Please see the requirements at the bottom of this page, before downloading.Please also see the section below on citing these codes.  Thanks.
 jFEM (2D/3D):In 2D, the Helmholtz equation equation is solved for the magnetic field, from which the electric field is calculated. In 3D, the vector wave equation is solved for the electric or magnetic field directly.- (2D) Triangular elements, with first order nodal basis functions- (3D) Tetrahedral elements, with 0, 1st, or 2nd order H0 curl interpolatory vector basis functions (constructed from Whitney edge elements) or H1 curl 1st order vector basis functions- Sommerfeld radiation condition imposed on exterior of computational domains (1st order) to model open-region scattering problems- (3D) Truncation of domains using a dielectric material- Absorption, scattering, and extinction cross sections- Field intensity profiles- Sparse LU decomposition (PARDISO from Intel MKL) used to solve matrix equationsDownload: jfem3d.tarDownload: jfem2d.tar
 2D Finite element simulation of coupled infinite cylinders, separated by 1 nm. |E|^2 is shown.
 The mesh used to calculate the above result, generated using NETGEN (external link).
 Requirements:- jScience library (v1.1 will only 2D work for jFEM3D -- for jFEM2D use v1.0)- Intel Math Kernel Library (MKL)     - Non-Commecial Download: Intel Non-Commercial Software- Mesh generation program (see Recommendations below)Recommendations:- NETGEN mesh generator: www.hpfem.jku.at/netgen/
 The Computational Physicist
 Citing:The codes provided on this site are distributed open source under the GPL. If these codes are used to obtain useful results, please acknowledge them with reference to their name and link to where they were obtained. Also, if this (or associated) site(s) are useful, please provide a link to it. These requests are not required, but are greatly appreciated.
 ANNOUNCEMENT: jFEM and parts of jScience have been rewritten from scratch, following coding standards and utilizing C++ 11 functionalities. jFEM is also much faster, and has been written to be user-friendly. These codes will be distributed elsewhere, TBD.