HAZMATH: A Simple Finite Element, Graph, and Solver Library
Contributors: Anca Andrei (Tufts), Juan Batista (Penn State), Casey Cavanaugh (Tufts), Johannes Kraus (Universitat Duisburg-Essen), Peter Ohm (Tufts), Wenfang Xu (Penn State), Yunrong Zhu (Idaho State).
Overview: The HAZMATH Finite Element (FE) and Solver library is built from C (C99 compatible) source files and provides software components that can be used to simulate physical/social phenomena described by Partial Differential Equations (PDEs), systems of PDEs, or graphs. We have included several standard discretizations for PDEs, often used in various applications. Our examples range from simple scalar elliptic PDEs to systems of PDEs, include time-dependent and nonlinear problems, and contain methods for the solution of linear systems.
Our aim is to provide a basic tool, which can be used to tackle specific problems on demand. We do not intend to create a universal package that contains all discretizations available. HAZMATH contains the software to solve numerical models based on finite-element/volume/difference discretizations, and our team can assist in tweaking and adjusting these basic tools to meet the demands of the specific application. Thus, we aim to complement the user's expertise and help build application-specific packages.
Components: As of early 2017, the main components of the HAZMATH FE/Graph library are:
Basic FE: Low order (up to order 2) continuous FE and mixed FE discretizations for Darcy's flow and scalar elliptic equations; Stable discretizations for Stokes and linear elasticity; Discretization for full Maxwell's equations using Nedelec and Raviart-Thomas elements.
Solvers: Unsmoothed Aggregation Algebraic Multigrid Methods (UA-AMG); Preconditioned Krylov subspace methods.
Interfaces with External Libraries: Some routines require a direct linear solver and these depend on the SuiteSparse library (by Tim Davis, Texas A & M), which the user needs to install. We also provide an interface for using Multigraph 2.1 (by Randolph E Bank, UCSD) as a solver.
Obtaining the Software: A tarball with installation instructions and the source files needed to build the HAZmath library and the examples can be requested by emailing the developers at hazmath [at] googlegroups [dot] com.
Licensing: This software is a free software distributed under the GNU's Lesser General Public License or LGPL, Version 3 or any later versions. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU's Lesser General Public License for more details.
System Requirements: The library should build on any standard Linux OS or MAC OS X, using cmake (>=2.8).
TODO: Graph Routines: Minimum Stretching Tree Multigrid; Signal Processing on Graphs; Many other additions are planned as well;
(c) 2009- by X. Hu, J. Adler, L. Zikatanov