Top  ↑

1. Overview

Quick description

Hermes2D 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.

Highlights of Hermes capabilities

  • mathematical point of view
    • L2, H1, HCurl, HDiv Sobolev spaces approximation with element-wise polynomial degree up to 10
    • Hanging nodes of arbitrary order
    • Multimesh = assembling over component-specific meshes without projections or interpolations in multiphysics problems
    • Time-adaptive capabilities with a large number (~30) of pre-implemented Runge-Kutta methods
    • Coupled problems solved together with hp-DG and hp-FEM
    • Adaptivity based on reference solution and local projections
    • Calculations with physical quantities defined in different subdomains
  • implementation point of view
    • OpenMP parallelization
    • Unified library for handling both real and complex problems using advanced C++ templating
    • Own OpenGl based visualization & VTK outputs of meshes, spaces, solutions
    • Division of the library's code into easy-to-manage namespaces
    • XML save / load of the most important classes using provided XML schemas
    • Well arranged doxygen documentation
    • Exception safe API
Top  ↑

2. Current release

Hermes 2.0 released on February 19th, 2013

  • Rapid speedup of assembling and I/O
  • Cleaner, well-documented code
  • New way of testing, memory-leaks detection, speed optimizations
  • Exception-safe API, bugfixes, etc..
Top  ↑

3. Download

1. Get git (the best version-control there is)

2. Clone the library repository

Top  ↑

4. Getting Started & Installation

(open in new tabs)
Top  ↑

5. Library documentation

(open in new tabs)
  • There is the common code's documentation
    • Linear algebra, I/O, time measurement
    • Mixin classes, utility classes
    • ...
  • And there is the 2d specific documentation
    • hp-FEM assembling
    • Adaptivity algorithms
    • Nonlinear solvers
    • ...
Top  ↑

6. Tutorial & Examples

(open in new tabs)
Top  ↑

7. Get news & collaborate

Get news & collaborate

Hermes has an active User's Group where questions get answered quickly.

Hermes is being developed by a community around the hp-FEM group at the University of West Bohemia and the University of Nevada, Reno (UNR). Everybody is welcome to contribute.

Each successful contributor becomes a co-author of the library.

The code is distributed under the GNU Lesser General Public License (LGPL).

For bug tracking, we very much like Github's issues.
Top  ↑

Hermes 3D - legacy code

Hermes 3D is a legacy code whose development is suspended, but it will become our focus in the forthcoming year 2013.

Latest News

Show more