Features

HiFlow3 provides a great range of features and functionalities that go beyond standard Finite Element software toolkits. In the following, we list the most essential ones among these:

I/O:

  • Generic, flexible and competent interface via xml input files
  • Parallel and sequential mesh I/O in VTK format
  • User-extensible I/O concept

Usability:

  • Easy-to-set-up user applications facilitated using powerful HiFlow3 core library


Mesh treatment, FEM and DoF setup:

  • Dimension-independent treatment of meshes
  • Indexing and iteration via topological and geometrical data computation and storage
  • Triangular, quadrilateral, tetrahedral, hexahedral and pyramidal cells
  • User-extensible cell type concept with arbitrary dimension
  • Association of user data to mesh entities of all dimensions
  • Computation of all sub-entity and neighborhood relations through a highly interconnected FEM and DoF module
  • Simple iteration over entities, sub-entities and neighbor entities
  • User-extensible iterators
  • Continuous and discoutinuous Galerkin elements
  • Isotropic and adaptive refinement and coarsening of all cell types
  • Arbitrary refinements via user-defined refinement trees
  • Communication of distributed meshes over MPI
  • Mesh partitioning and distribution
  • Interface to METIS abd ParMETIS library for partitioning
  • h- or p-refinement

Uncertainty quantification for PDE problems:

  • Generalized Polynomial Chaos Expansion (gPCE)
  • Hyperbolic truncature
  • Mixed multivariate distributions
  • Legendre and Hermite basis polynomial expansions
  • User-extensible Chaos Polynomial interface
  • Preconditioner: Mean-based, Multilevel, ILU
  • Special linear algebra routines and structures suitable for stochastic spectral methods

 

High-Performance Computing and Parallelization:

  • Parallel data management, distributed data structures, data movement
  • Highly efficient, scalable Linear Algebra and Solver module (among others with GMRES-, FGMRES-, PGMRES, CG-, PCG-Solvers and Block-Jacobi type of Preconditioners)
  • Local LA toolbox provides the basic classes for the local multi-platform linear algebra objects (vector, matrices, preconditioners)
  • Global LAtoolbox provides the global communication layer including managing coupling data; local data handling via the "lmpLAtoolbox" (multi-platform LA toolbox)
  • Interfaces to PETSc and Hypre Preconditioners Libraries
  • Hardware-aware multi-platform-capable implementation of solvers and FE code structure
  • Interfaces for Intel and AMD multi-core CPUs (OpenMP parallel algorithms, Intel MKL, ATLAS) and NVIDIA GPUs (CUDA, CUBLAS).


Quality Management and Documentation:

  • Quality checks and comprehensive test suite available and automatically executable (currently 23 tests, all automated)
  • Benchmark applications and tutorials included and well documented
  • Doxygen documented routines; incode documentation of all core functions