T8code.jl

All Tests Status License: MIT

T8code.jl is a Julia package that wraps t8code, a C/C++ library to manage multiple connected adaptive quadtrees or octrees in parallel and with possibly mixed element types.

Installation

If you have not yet installed Julia, please follow the instructions for your operating system. T8code.jl works with Julia v1.6 and later.

T8code.jl is a registered Julia package. Hence, you can install it by executing the following commands in the Julia REPL:

julia> import Pkg; Pkg.add(["T8code", "MPI"])

With this command, you install both T8code.jl and MPI.jl. Currently, T8code.jl supports only builds of the C/C++ library t8code with MPI support, so you need to initialize MPI appropriately as described in the Usage section below.

T8code.jl depends on the binary distribution of the t8code library, which is available in the Julia package T8code_jll.jl and which is automatically installed as a dependency. The binaries provided by T8code_jll.jl support MPI and are compiled against the default MPI binaries of MPI.jl. At the time of writing, these are the binaries provided by MicrosoftMPI_jll.jl on Windows and MPICH_jll.jl on all other platforms.

By default, T8code.jl provides pre-generated Julia bindings to all exported C interface functions of the underlying t8code library. If you want/need to generate new bindings, please follow the instructions in the dev folder and copy the generated files to the appropriate places in src.

Open Issues

  • No support for custom version of MPI and/or p4est and t8code yet.
  • No support for Windows platform yet.

Authors

T8code.jl is mainly maintained by Johannes Markert (German Aerospace Center (DLR), Germany). It is an adapted fork from P4est.jl maintained by Michael Schlottke-Lakemper (RWTH Aachen University, Germany) and Hendrik Ranocha (University of Hamburg, Germany).

The t8code library itself is written by Johannes Holke and Carsten Burstedde, and others.

License and contributing

T8code.jl is licensed under the MIT license (see LICENSE.md). t8code itself is licensed under the GNU General Public License, version 2.