/tandem

A HPC DG method for 2D and 3D SEAS problems

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

tandem

A scalable discontinuous Galerkin code on unstructured curvilinear grids for linear elasticity problems and sequences of earthquakes and aseismic slip

License Stars Forks

FeaturesDependenciesInstallationDocumentationCiting tandemLicense

examples

Features

  • High-order discontinuous Galerkin finite element method
  • Solver for elastostatic problems and SEAS problems
  • Unstructured triangle and tetrahedral meshes
  • Curvilinear representation of boundary
  • Native support for Gmsh's MSH file format version 2 (including high-order meshes)
  • Sub-element material parameter resolution
  • Efficient matrix-free and assembly kernels for many CPU architectures (using YATeTo)
  • Scalable on distributed memory architectures; access to many linear solvers via PETSc
  • Supports discrete Green's function for SEAS

For a general overview of the project check out our presentation at virtual EGU 21.

Dependencies

tandem relies on the following open-source projects:

Installation

For information on installing the dependencies and a detailed guide to installing Tandem, check out the installation guide.

You need a recent C++17 compiler (GCC ≥ 8.0 or clang ≥ 8)) and you need to install the dependencies. Then install using the following commands:

$ git clone https://github.com/TEAR-ERC/tandem
$ cd tandem/
$ git submodule update --init
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DARCH=hsw -DPOLYNOMIAL_DEGREE=4 -DDOMAIN_DIMENSION=2
$ make -j

Here the following options were used:

  • CMAKE_C_COMPILER and CMAKE_CXX_COMPILER: Select MPI compiler wrappers
  • ARCH: Optimize for Intel Haswell (see cpu_arch_flags.cmake for more options)
  • POLYNOMIAL_DEGREE: The polynomial degree of the finite element spaces
  • DOMAIN_DIMENSION: Set 2 for triangle meshes and 3 for tetrahedral meshes

Documentation

Read the docs.

Citing tandem

If you use tandem for your research, please cite the following journal article:

Carsten Uphoff, Dave A May, Alice-Agnes Gabriel, A discontinuous Galerkin method for sequences of earthquakes and aseismic slip on multiple faults using unstructured curvilinear grids, Geophysical Journal International, Volume 233, Issue 1, April 2023, Pages 586–626, https://doi.org/10.1093/gji/ggac467

License

BSD 3-Clause License