.. This file is part of t8code. t8code is a C library to manage a collection (a forest) of multiple connected adaptive space-trees of general element classes in parallel. .. Copyright (C) 2015 the developers .. t8code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .. t8code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. .. You should have received a copy of the GNU General Public License along with t8code; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Welcome to t8code's documentation! ================================== This is the documentation for t8code version |version|. Author ====== Johannes Holke, David Knapp, Lukas Dreyer, Niklas Böing, Sandro Elsweijer, Ioannis Lilikakis, Veli Ünlü, Carsten Burstedde, Johannes Markert et. al. Copyright ========= GNU General Public License version 2 (or, at your option, any later version) 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. The best place to start learning about t8code is the `Wiki `_, especially the `Installation Guide `_ and the `Tutorials `_. You find the source code to t8code on `github `_. t8code supports the following element types (also different types in the same mesh): - 0D: vertices - 1D: lines - 2D: quadrilaterals and triangles - 3D: hexahedra, tetrahedra, prisms, and pyramids (currently in development). Among others, t8code offers the following functionalities: - Create distributed adaptive meshes over complex domain geometries - Adapt meshes according to user given refinement/coarsening criteria - Establish a 2:1 balance - (Re-)partition a mesh (and associated data) among MPI ranks - Manage ghost (halo) elements and data - Hierarchical search in the mesh t8code uses space-filling curves (SFCs) to manage the adaptive refinement and efficiently store the mesh elements and associated data. A modular approach makes it possible to exchange the underlying SFC without changing the high-level algorithms. Thus, we can use and compare different refinement schemes and users can implement their own refinement rules if so desired. Currently, - lines use a 1D Morton curve with 1:2 refinement - quadrilaterals/hexahedra are inherited from the p4est submodule, using the Morton curve 1:4, 1:8 refinement; - triangles/tetrahedra are implemented using the Tetrahedral Morton curve, 1:4, 1:8 refinement; - prisms are implemented using the triangular TM curve and a line curve, 1:8 refinement. - pyramids are implemented via a pyramidal Morton code. - The code supports hybrid meshes including any of the above element types (of the same dimension). You find more information on t8code in the `t8code Wiki `_. .. toctree:: :maxdepth: 3 :caption: Contents: api/library_root