Hermes Documentation (Legacy Code)
Thank you for your interest in Hermes!
Hermes is a C++ library for rapid development of adaptive hp-FEM and hp-DG solvers. You are
viewing documentation for the legacy code.
Version 1.0 is available
Hermes version 1.0 is now available in separate
repositories for the library itself, the tutorial, and examples. To obtain the source codes,
type:
git clone git://github.com/hpfem/hermes.git
git clone git://github.com/hpfem/hermes-tutorial.git
git clone git://github.com/hpfem/hermes-examples.git
Each of these repositories contains a folder doc/ with Sphinx documentation. To build
the docs, type “make html” in that folder.
Documentation for the legacy code (continued)
This document is organized as follows:
- Section 1 provides general information about Hermes and the computational methods it uses,
and gives references to underlying scientific articles.
- Section 2 describes how to install Hermes on various hardware platforms, and how to
install matrix solver packages and various optional packages.
- Section 3 explains how to use Git and Github, and how you can contribute to the project if interested.
- Section 4 contains a tutorial to Hermes2D. Please read this tutorial first even if you are
interested in 1D or 3D problems, since the syntax is virtually the same. The tutorial
will walk you in small steps through the solution
of linear, nonlinear, and time-dependent problems from various engineering and scientific areas,
using higher-order elements and adaptivity algorithms, and solving multiphysics coupled problems.
- Section 5 shows how Hermes performs on numerous benchmarks with known exact solutions. Many
of them come from the National Institute for Standards and Technology (NIST). Benchmarks
like this are great for assessing the performance of a finite element code.
- Section 6 presents examples from various application areas such as acoustics, fluid and solid
mechanics, electromagnetics, neutronics, quantum chemistry, ground-water flow, and others.
- Section 7 describes the usage of Hermes3D. Since it is very similar to Hermes2D,
we mostly focus on their differences.
- Section 8 shows how to solve 1D problems using Hermes2D.
This document is under continuous development. If you find bugs, typos, dead links
and such, please report them to one of the mailing lists for
1D and 2D problems, or
3D problems – thanks!
Examples
Not all examples are documented, please check the examples/
directory as well.
Hermes1D
There is no separate Hermes1D library – one-dimensional problems are solved using Hermes2D.