Hermes hp-FEM & hp-DG Library


Hermes is a C++ library for rapid development of adaptive hp-FEM / hp-DG solvers. Novel hp-adaptivity algorithms help solve a large variety of problems ranging from ODE and stationary linear PDE to complex time-dependent nonlinear multiphysics PDE systems.


Current Release

Hermes version 3.1 (bugfix release) has been released.
It contains the 3.0 features, such as DG limiters, Taylor L2 shapeset, MATIO import / export of algebraic structures, as well as lots of optimizations, both CPU-related, and memory-related.
This is primarily a bugfix, stable release, with all examples, tutorials, documentation etc.
See the section Download below for download.







  • L2, H1, HCurl, HDiv Sobolev spaces, polynomial degree up to 10
  • Hanging nodes of arbitrary order
  • Multimesh: component-specific meshes w/o projections or interpolations
  • Time-adaptivity with multitude of pre-implemented Runge-Kutta methods
  • Coupled problems solved together with hp-DG and hp-FEM
  • hp-Adaptivity based on reference solution and local projections
space_time_adaptivity Space-time adaptivity dynamical_meshes Dynamical meshes curved_elementsCurved elements adaptive_multimesh_hp-FEM Adaptive multimesh
See more in the Gallery.
  • OpenMP parallelization
  • C++ templates for unified handling of real and complex problems
  • Own OpenGL visualization & VTK outputs of meshes, spaces, solutions
  • User-friendly written easy-to-grasp code
  • XML, BSON save / load of the most important classes
  • Solvers interfaces: UMFPACK, PARALUTION, PETSc, MUMPS, …
  • GMSH, ExodusII mesh formats
  • Matlab, MatrixMarket matrix exports
  • Well arranged doxygen documentation
  • Exception safe API