I was wondering if there exist any good (accurate/fast/easy-to-use) open-source FEM solvers for 3D time-harmonic Maxwell's equations. I am looking to simulate systems a few wavelengths large in the X/Y dimensions and tens of wavelengths in the Z dimension, so relatively small-size problems. All my dielectrics are homogeneous and perfectly rectangular (boxes).

I did some searching online and found various mature open-source FEM packages, but they do not seem to support Maxwell. Any suggestions would be much appreciated!

  • $\begingroup$ Did you try FEniCS? $\endgroup$
    – facetus
    Commented May 28, 2013 at 2:01

2 Answers 2


deal.II (see http://www.dealii.org/) does support Nedelec elements and, as a consequence, can solve the problems you're interested in. (Full disclaimer: I'm one of the principal developers of deal.II.)

  • $\begingroup$ Thanks, Prof. Bangerth! Does deal.II have any built-in support for PML materials or would that need to be coded separately? $\endgroup$
    – Costis
    Commented May 29, 2013 at 0:49
  • $\begingroup$ deal.II doesn't implement any particular equation or formulation -- it just provides the tools to do so. So, in your case, you will need to provide the bilinear form you will want to solve. Whether that includes the PML or any other absorbing boundary condition is up to you. $\endgroup$ Commented May 29, 2013 at 11:19
  • $\begingroup$ Does deal.ii support complex numbers today? I think it is useful because solving a complex linear system is much more natural than solving the equivalent real system of double size. $\endgroup$
    – Hui Zhang
    Commented May 29, 2013 at 19:53
  • $\begingroup$ No, it still uses two real-valued systems. It is just too difficult to make sure one distinguishes between transpose and Hermitian, the regular and complex dot products, etc. $\endgroup$ Commented May 29, 2013 at 20:52

Hypre has several built-in preconditioners for solving the Maxwell equations. There are several packages that interface to it (you can use hypre from PETSc) as a solver for linear algebraic systems, but it also has a structured grid and finite element interface too.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.