About

t8code (spoken as "tetcode") is a C/C++ library to manage parallel adaptive meshes with various element types. t8code uses a collection (a forest) of multiple connected adaptive space-trees in parallel and scales to at least one million MPI ranks and over 1 Trillion mesh elements.

t8code is intended to be used as a thirdparty library for numerical simulation codes or any other applications that require meshes.

Here, you can find a description of the interface, functionality and features of t8code version 1.0.

Key-features

Among other features, t8code offers the following functionalities:

  • Managing distributed adaptive meshes over complex domain geometries
  • Adapting meshes according to user given refinement/coarsening criteria
  • Establishing a 2:1 balance condition
  • (Re-)partitioning/load-balancing a mesh (and associated data) among MPI ranks
  • Managing ghost (halo) elements and data
  • Searching the mesh efficiently
  • Supporting curved meshes

Getting started

Get started using t8code now. We have a collection of Tutorials that help you understand the data structures and algorithms of t8code and how to best connect it to your application. Additionally our large collection of examples demonstrates the features of t8code.

Publications

Johannes Holke, Scalable algorithms for parallel tree-based adaptive mesh refinement with general element types, PhD thesis at University of Bonn, 2018, Full text available
Carsten Burstedde and Johannes Holke, A Tetrahedral Space-Filling Curve for Nonconforming Adaptive Meshes, SIAM Journal on Scientific Computing, 2016, 10.1137/15M1040049
Carsten Burstedde and Johannes Holke, Coarse mesh partitioning for tree-based AMR, SIAM Journal on Scientific Computing, 2017, 10.1137/16M1103518
Johannes Holke and David Knapp and Carsten Burstedde, An Optimized, Parallel Computation of the Ghost Layer for Adaptive Hybrid Forest Meshes, SIAM Journal on Scientific Computing, 2021, 10.1137/20M1383033 Sandro Elsweijer and Johannes Holke and Jan Kleinert and Dirk Reith, Constructing a Volume Geometry Map for Hexahedra with Curved Boundary Geometries, Research note a the International Meshing Roundtable 2022, Research note available

Cite & Acknowledge

If you use t8code in any of your publications, please cite the github repository and [1]. For publications specifically related to

  • the TM index, please cite [2].
  • coarse mesh partitioning, please cite [3].
  • construction and handling of the ghost layer, please cite [4].

t8code-2.0.0 released

Event Post Thumbnail Image

We're thrilled to unveil our second major release: t8code v2.0.0! This latest version is packed with enhancements, polished interfaces, and exciting new features that will enhence your t8code experience.

Among the highlights are:

  • Introducing batch-based searching, improving the way you find what you need more efficiently.

  • Streamlined unit …

t8code-1.6.0 released

After three months of coding there is a new release of t8code available! Version 1.6.0 is more concerned about software maintenance than new features, but we also sneaked in some performance upgrades!

The most important changes are:

  • Bug-fixes, who des not love 'em?

  • Sweet sweet performance upgrades in …

t8code-1.5.0 released

We have released version 1.5.0 of t8code!

New features include:

  • New indentation script! This likely leads to merge conflicts, so merge the main branch into your feature branch soon!

  • Bugfix: Memory leaks in memorypool of schemes fixed.

Click here for the full change log.

t8code-1.4.1 released

We have released version 1.4.1 of t8code!

New features include:

  • A curved geometry for triangles

  • A generally improved geometry implementation

  • A parallel reader for vtk files

  • A function to create the connectivity for a cmesh

  • Improved testing by enabling tests for more parameters

  • Improved CI

  • Bug-fixes

  • Improve the …

t8code-1.1.0 released

We have released version 1.1.0 of t8code!

New features include an improved handling of cmesh attributes. Now, multiple attributes per tree are supported.

For the full change log see: https://github.com/DLR-AMR/t8code/releases/tag/v1.1.0

Hello World

We are excited to take the next step into sharing t8code with the world. This website will be used to inform you about updates of t8code, to present the major features of it, present our contributions to conferences and to present showcases of recent projects where t8code was used to …