Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into fix-issue-399
Browse files Browse the repository at this point in the history
  • Loading branch information
jfussbro committed Jun 27, 2023
2 parents 59dff3d + 061df5f commit b71c814
Show file tree
Hide file tree
Showing 169 changed files with 5,811 additions and 1,349 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/add_release_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ on:
release:
types:
- created
branches:
- main

jobs:
add_release_doc:
Expand Down
24 changes: 22 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
title: t8code
version: 1.1.0
date-released: "2023-02-27"
version: 1.2.0
date-released: "2023-04-24"
repository-code: "https://github.com/dlr-amr/t8code"
url: "https://dlr-amr.github.io/t8code/"
doi: "10.5281/zenodo.7034838"
Expand Down Expand Up @@ -54,6 +54,26 @@ authors:
family-names: Becker
email: [email protected]
affiliation: "German Aerospace Center (DLR)"
- given-names: Jakob
family-names: Fußbroich
email: [email protected]
affiliation: "German Aerospace Center (DLR)"
orcid: "https://orcid.org/0000-0003-0784-2182"
- given-names: Chiara
family-names: Hergl
email: [email protected]
affiliation: "German Aerospace Center (DLR)"
orcid: "https://orcid.org/0000-0002-4016-9113"
- given-names: Michael
family-names: Schlottke-Lakemper
email: "[email protected]"
affiliation: "RWTH Aachen"
orcid: "https://orcid.org/0000-0002-3195-2536"
- given-names: Prasanna
family-names: Ponnusamy
email: "[email protected]"
affiliation: "German Aerospace Center (DLR)"
orcid: "https://orcid.org/0000-0002-4950-7297"
#Contributors
cff-version: 1.2.0
message: >-
Expand Down
86 changes: 77 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ Currently,

You find more information on t8code in the [t8code Wiki](https://github.com/DLR-AMR/t8code/wiki).

For a brief introduction in AMR and the algorithms used by t8code we recommend to read our [overview paper](https://elib.dlr.de/194377/1/t8code_overview_IMR2023.pdf).

### Setup

We provide a short guide to install t8code.
Expand Down Expand Up @@ -128,26 +130,92 @@ t8code uses [Doxygen](https://doxygen.nl/) to generate the code documentation. Y
make doxygen
```

and then find the generated files in the `/doxygen` subfolder.
and then find the generated files in the `/doc` subfolder.

You can also find the documentation of our releases on the [t8code website](https://dlr-amr.github.io/t8code/pages/documentation.html).

### Publications

An (incomplete) list of publications related to t8code:

[1] Johannes Holke, Scalable algorithms for parallel tree-based adaptive mesh refinement with general element types, PhD thesis at University of Bonn, 2018,
[1] **Overview Paper**:
Holke, Johannes and Burstedde, Carsten and Knapp, David and Dreyer, Lukas and Elsweijer, Sandro and Ünlü, Veli and Markert, Johannes and Lilikakis, Ioannis and Böing, Niklas and Ponnusamy, Prasanna and Basermann, Achim (2023) *t8code v. 1.0 - Modular Adaptive Mesh Refinement in the Exascale Era*. SIAM International Meshing Round Table 2023, 06.03.2023 - 09.03.2023, Amsterdam, Niederlande.
[Full text available](https://elib.dlr.de/194377/1/t8code_overview_IMR2023.pdf)


[2] **Original PhD thesis**:
Holke, Johannes *Scalable algorithms for parallel tree-based adaptive mesh refinement with general element types*, PhD thesis at University of Bonn, 2018,
[Full text available](https://bonndoc.ulb.uni-bonn.de/xmlui/handle/20.500.11811/7661)

[2] Carsten Burstedde and Johannes Holke, A Tetrahedral Space-Filling Curve for Nonconforming Adaptive Meshes, SIAM Journal on Scientific Computing, 2016, [10.1137/15M1040049](https://epubs.siam.org/doi/10.1137/15M1040049)
[3] **Tetrahedral and triangular Space-filling curve**:
Burstedde, Carsten and Holke, Johannes *A Tetrahedral Space-Filling Curve for Nonconforming Adaptive Meshes*, SIAM Journal on Scientific Computing, 2016, [10.1137/15M1040049](https://epubs.siam.org/doi/10.1137/15M1040049)


[4] **Coarse mesh partitioning**:
Burstedde, Carsten and Holke, Johannes *Coarse mesh partitioning for tree-based AMR*, SIAM Journal on Scientific Computing, 2017, [10.1137/16M1103518](https://epubs.siam.org/doi/10.1137/16M1103518)


[5] **Ghost computation**:
Holke, Johannes and Knapp, David and Burstedde, Carsten *An Optimized, Parallel Computation of the Ghost Layer for Adaptive Hybrid Forest Meshes*, SIAM Journal on Scientific Computing, 2021, [10.1137/20M1383033](https://epubs.siam.org/doi/abs/10.1137/20M1383033)


[6] **Geometry controlled refinement for hexahedra**:
Elsweijer, Sandro and Holke, Johannes and Kleinert, Jan and Reith, Dirk (2022) *Constructing a Volume Geometry Map for Hexahedra with Curved Boundary Geometries*. In: SIAM International Meshing Roundtable Workshop 2022. SIAM International Meshing Roundtable Workshop 2022, 22. - 25. Feb. 2022, [Full text available](https://elib.dlr.de/186570/1/ConstructingAVolumeGeometryMapForHexahedraWithCurvedBoundaryGeometries.pdf)

### Theses with t8code relations

An (incomplete) list of theses written with or about t8code:


[A] **Prism space-filling curve**:
Knapp, David (2017) *Adaptive Verfeinerung von Prismen*. Bachelor's thesis, Rheinische Friedrich-Wilhems-Universität Bonn.


[3] Carsten Burstedde and Johannes Holke, Coarse mesh partitioning for tree-based AMR, SIAM Journal on Scientific Computing, 2017, [10.1137/16M1103518](https://epubs.siam.org/doi/10.1137/16M1103518)
[B] **Pyramidal space-filling curve**:
Knapp, David (2020) *A space-filling curve for pyramidal adaptive mesh refinement*. Master's thesis, Rheinische Friedrich-Wilhems-Universität Bonn. [Full text available](https://www.researchgate.net/publication/346789160_A_space-filling_curve_for_pyramidal_adaptive_mesh_refinement)

[4] 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](https://epubs.siam.org/doi/abs/10.1137/20M1383033)

[C] **DG solver based on t8code**:
Dreyer, Lukas (2021) *The local discontinuous galerkin method for the advection-diffusion equation on adaptive meshes*. Master's thesis, Rheinische Friedrich-Wilhems-Universität Bonn.
[Full text available](https://elib.dlr.de/143969/1/masterthesis_dreyer.pdf)


[D] **Geometry controlled refinement for hexahedra (Part 1)**:
Elsweijer, Sandro (2021) *Curved Domain Adaptive Mesh Refinement with Hexahedra*. Tech report, Hochschule Bonn-Rhein-Sieg.
[Full text available](https://elib.dlr.de/186571/1/masterprojekt-2_elsweijer_ABGABEVERSION_TITEL.pdf)


[E] **Subelement and resolving hanging faces in 2D**:
Becker, Florian (2021) *Removing hanging faces from tree-based adaptive meshes for numerical simulation*, Master's thesis, Universität zu Köln.
[Full text available](https://elib.dlr.de/187499/1/RemovingHangingFacesFromTreeBasedAMR.pdf)


[F] **Coarsening as post-processing to reduce simulation file size**:
Spataro, Luca (2021) *Lossy data compression for atmospheric chemistry using adaptive mesh coarsening*. Master's thesis, Technische Universität München.
[Full text available](https://elib.dlr.de/144997/1/master-thesis-final-spataro.pdf)


[G] **Geometry controlled refinement for hexahedra (Part 2)**:
Elsweijer, Sandro (2022) *Evaluation and generic application scenarios for curved hexahedral adaptive mesh refinement*. Master's thesis, Hochschule Bonn-Rhein-Sieg. [10.13140/RG.2.2.34714.11203](<https://doi.org/10.13140/RG.2.2.34714.11203>) [Full text available](https://elib.dlr.de/186561/1/sandro_elsweijer-evaluation_and_generic_application_scenarios_for_curved_hexahedral_adaptive_mesh_refinement.pdf)


[H] **Multigrid and other preconditioners for DG**:
Böing, Niklas (2022) *Evaluation of preconditioners for implicit solvers of local DG for the advection-diffusion equation* (*Untersuchung von Präkonditionierern für implizite Löser für das Local DG-Verfahren zur Lösung der Advektions-Diffusionsgleichung*). Master's thesis, Universität zu Köln.
[Full text available](https://elib.dlr.de/186347/1/Untersuchung%20von%20Pr%C3%A4konditionierern%20f%C3%BCr%20implizite%20L%C3%B6ser%20f%C3%BCr%20das%20Local%20DG-Verfahren%20zur%20L%C3%B6sung%20der%20Advektions-Diffusionsgleichung.pdf)


[I] **Removing elements from the mesh (cutting holes)**:
Lilikakis, Ioannis (2022) *Algorithms for tree-based adaptive meshes with incomplete trees*. Master's thesis, Universität zu Köln.
[Full text may be available in future](https://elib.dlr.de/191968/)


### Citing t8code

If you use t8code in any of your publications, please cite the [github repository](https://doi.org/10.5281/zenodo.7034838) 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].
If you use t8code in any of your publications, please cite the [github repository](https://doi.org/10.5281/zenodo.7034838), [1] and [2]. For publications specifically related to
- **the tetrahedral index**, please cite [3].
- **coarse mesh partitioning**, please cite [4].
- **construction and handling of the ghost layer**, please cite [5].
- **geometry controlled refinement**, please cite [6]

If you use any functionality described in the theses, we encourage you to cite them as well.
2 changes: 1 addition & 1 deletion benchmarks/ExtremeScaling/bunny.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#include <t8_cmesh_tetgen.h>
#include <t8_cmesh_vtk_writer.h>
#include <t8_cmesh/t8_cmesh_examples.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <t8_schemes/t8_default/t8_default_cxx.hxx>
#include <p8est.h>
#include <p8est_connectivity.h>
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ bin_PROGRAMS += \
benchmarks/t8_time_forest_partition \
benchmarks/t8_time_prism_adapt
# benchmarks/t8_time_new_refine \
# benchmarks/t8_time_refine_type03
# benchmarks/t8_time_refine_type03

#benchmarks_t8_time_new_refine_SOURCES = benchmarks/time_new_refine.c
#benchmarks_t8_time_refine_type03_SOURCES = benchmarks/time_refine_type03.c
benchmarks_t8_time_partition_SOURCES = benchmarks/time_partition.c
benchmarks_t8_time_partition_SOURCES = benchmarks/time_partition.cxx
benchmarks_t8_time_forest_partition_SOURCES = benchmarks/time_forest_partition.cxx
benchmarks_t8_time_prism_adapt_SOURCES = benchmarks/t8_time_prism_adapt.cxx

Expand Down
4 changes: 3 additions & 1 deletion benchmarks/t8_time_prism_adapt.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
#include <t8_schemes/t8_default/t8_default_tri/t8_dtri.h>
#include <t8_schemes/t8_default/t8_default_tet/t8_dtet.h>
#include <t8_forest/t8_forest_adapt.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <t8_forest/t8_forest_io.h>
#include <t8_forest/t8_forest_profiling.h>
#include <sc_flops.h>
#include <sc_statistics.h>
#include <sc_options.h>
Expand Down
5 changes: 4 additions & 1 deletion benchmarks/time_forest_partition.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,10 @@
#include <t8_cmesh/t8_cmesh_partition.h>
#include <t8_cmesh/t8_cmesh_occ.hxx>
#include <t8_cmesh_readmshfile.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <t8_forest/t8_forest_io.h>
#include <t8_forest/t8_forest_geometrical.h>
#include <t8_forest/t8_forest_profiling.h>
#include <t8_schemes/t8_default/t8_default_cxx.hxx>
#include <example/common/t8_example_common.h>

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/time_new_refine.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <t8_schemes/t8_default/t8_dtet.h>
#include <t8_schemes/t8_default.h>
#include <t8_forest/t8_forest_adapt.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <sc_flops.h>
#include <sc_statistics.h>
#include <sc_options.h>
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion benchmarks/time_refine_type03.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <t8_schemes/t8_default/t8_dtet.h>
#include <t8_schemes/t8_default.h>
#include <t8_forest/t8_forest_adapt.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <sc_flops.h>
#include <sc_statistics.h>
#include <sc_options.h>
Expand Down
9 changes: 5 additions & 4 deletions config/t8_vtk.m4
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ T8_ARG_WITH([vtk],
AC_DEFINE_UNQUOTED([VTK_VERSION_USED], "$t8_vtk_version", [VTK version t8code is linked against])
])
T8_VTK_LIBS="-lvtkIOXML-$t8_vtk_version -lvtkCommonExecutionModel-$t8_vtk_version \
-lvtkCommonDataModel-$t8_vtk_version -lvtkIOXMLParser-$t8_vtk_version \
-lvtkIOParallelXML-$t8_vtk_version -lvtkParallelMPI-$t8_vtk_version \
-lvtkCommonCore-$t8_vtk_version -lvtkzlib-$t8_vtk_version -lvtksys-$t8_vtk_version"
T8_VTK_LIBS="-lvtkIOXML-$t8_vtk_version -lvtkCommonExecutionModel-$t8_vtk_version \
-lvtkCommonDataModel-$t8_vtk_version -lvtkIOGeometry-$t8_vtk_version -lvtkIOXMLParser-$t8_vtk_version \
-lvtkIOParallelXML-$t8_vtk_version -lvtkIOPLY-$t8_vtk_version -lvtkParallelMPI-$t8_vtk_version \
-lvtkFiltersCore-$t8_vtk_version -lvtksys-$t8_vtk_version \
-lvtkCommonCore-$t8_vtk_version -lvtkzlib-$t8_vtk_version -lvtkIOLegacy-$t8_vtk_version"
if test "x$T8_WITH_VTK" != xyes ; then
T8_VTK_LIBS="$T8_WITH_VTK"
dnl AC_MSG_ERROR([Please provide --with-vtk without arguments])
Expand Down
2 changes: 2 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ AC_CONFIG_LINKS([test/testfiles/test_msh_file_vers2_ascii.msh:test/testfiles/tes
AC_CONFIG_LINKS([test/testfiles/test_msh_file_vers2_bin.msh:test/testfiles/test_msh_file_vers2_bin.msh])
AC_CONFIG_LINKS([test/testfiles/test_msh_file_vers4_ascii.msh:test/testfiles/test_msh_file_vers4_ascii.msh])
AC_CONFIG_LINKS([test/testfiles/test_msh_file_vers4_bin.msh:test/testfiles/test_msh_file_vers4_bin.msh])
AC_CONFIG_LINKS([test/testfiles/test_vtk_tri.vtu:test/testfiles/test_vtk_tri.vtu])
AC_CONFIG_LINKS([test/testfiles/test_vtk_cube.vtp:test/testfiles/test_vtk_cube.vtp])
AC_CONFIG_LINKS([example/IO/cmesh/gmsh/circlesquare_hybrid_hole.msh:example/IO/cmesh/gmsh/circlesquare_hybrid_hole.msh])
AC_CONFIG_FILES([tutorials/features/t8_features_curved_meshes_generate_cmesh.geo:tutorials/features/t8_features_curved_meshes_generate_cmesh.geo])
AC_CONFIG_FILES([tutorials/features/t8_features_curved_meshes_generate_cmesh_2d.geo:tutorials/features/t8_features_curved_meshes_generate_cmesh_2d.geo])
Expand Down
15 changes: 9 additions & 6 deletions doc/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -885,13 +885,12 @@ INPUT_ENCODING = UTF-8
# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
# *.ucf, *.qsf and *.ice.

FILE_PATTERNS = *.h

FILE_PATTERNS =
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.

RECURSIVE = NO
RECURSIVE = YES

# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
Expand Down Expand Up @@ -941,8 +940,7 @@ EXAMPLE_PATH =
# *.h) to filter out the source-files in the directories. If left blank all
# files are included.

EXAMPLE_PATTERNS = *.c \
*.h
EXAMPLE_PATTERNS =

# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude commands
Expand Down Expand Up @@ -2206,7 +2204,12 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED = @PACKAGE_PREFIX@_DOXYGEN
PREDEFINED = @PACKAGE_PREFIX@_DOXYGEN \
T8_ENABLE_DEBUG \
T8_WITH_VTK \
T8_WITH_OCC \
T8_WITH_NETCDF \
T8_WITH_NETCDF_PAR

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
1 change: 1 addition & 0 deletions doc/author_andreev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I place my contributions to t8code under the FreeBSD license. Evgenii Andreev ([email protected])
1 change: 1 addition & 0 deletions doc/author_geihe.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I place my contributions to t8code under the FreeBSD license. Benedict Geihe ([email protected])
1 change: 1 addition & 0 deletions doc/author_kestener.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I place my contributions to t8code under the FreeBSD license. Pierre Kestener <[email protected]>
1 change: 1 addition & 0 deletions doc/author_ponnusamy.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I place my contributions to t8code under the FreeBSD license. Prasanna Ponnusamy ([email protected]).
1 change: 1 addition & 0 deletions example/IO/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ include example/IO/cmesh/gmsh/Makefile.am
include example/IO/cmesh/tetgen/Makefile.am
include example/IO/cmesh/triangle/Makefile.am
include example/IO/cmesh/netcdf/Makefile.am
include example/IO/cmesh/vtk/Makefile.am

include example/IO/forest/netcdf/Makefile.am
4 changes: 3 additions & 1 deletion example/IO/cmesh/gmsh/t8_load_and_refine_square_w_hole.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@
#include <t8_cmesh_vtk_writer.h>
#include <t8_cmesh/t8_cmesh_partition.h>
#include <t8_cmesh_readmshfile.h>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <t8_forest/t8_forest_io.h>
#include <t8_forest/t8_forest_geometrical.h>
#include <t8_schemes/t8_default/t8_default_cxx.hxx>

/* Simple 3 dimensional vector product */
Expand Down
2 changes: 1 addition & 1 deletion example/IO/cmesh/netcdf/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
bin_PROGRAMS += \
example/IO/cmesh/netcdf/t8_write_cmesh_netcdf

example_IO_cmesh_netcdf_t8_write_cmesh_netcdf_SOURCES = example/IO/cmesh/netcdf/t8_write_cmesh_netcdf.c
example_IO_cmesh_netcdf_t8_write_cmesh_netcdf_SOURCES = example/IO/cmesh/netcdf/t8_write_cmesh_netcdf.cxx
4 changes: 2 additions & 2 deletions example/IO/cmesh/tetgen/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ bin_PROGRAMS += \
example/IO/cmesh/tetgen/t8_time_tetgen \
example/IO/cmesh/tetgen/t8_forest_tetgen

example_IO_cmesh_tetgen_t8_read_tetgen_SOURCES = example/IO/cmesh/tetgen/t8_read_tetgen_file.c
example_IO_cmesh_tetgen_t8_time_tetgen_SOURCES = example/IO/cmesh/tetgen/t8_time_tetgen_file.c
example_IO_cmesh_tetgen_t8_read_tetgen_SOURCES = example/IO/cmesh/tetgen/t8_read_tetgen_file.cxx
example_IO_cmesh_tetgen_t8_time_tetgen_SOURCES = example/IO/cmesh/tetgen/t8_time_tetgen_file.cxx
example_IO_cmesh_tetgen_t8_forest_tetgen_SOURCES = example/IO/cmesh/tetgen/t8_forest_from_tetgen.cxx
3 changes: 2 additions & 1 deletion example/IO/cmesh/tetgen/t8_forest_from_tetgen.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
#include <t8_cmesh_tetgen.h>
#include <t8_cmesh_vtk_writer.h>
#include <t8_schemes/t8_default/t8_default_cxx.hxx>
#include <t8_forest.h>
#include <t8_forest/t8_forest_general.h>
#include <t8_forest/t8_forest_io.h>

static t8_cmesh_t
t8_cmesh_from_tetgen (const char *prefix, int do_partition)
Expand Down
8 changes: 8 additions & 0 deletions example/IO/cmesh/vtk/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This file is part of t8code
# Non-recursive Makefile.am in example/IO
# Included from toplevel directory

bin_PROGRAMS += \
example/IO/cmesh/vtk/t8_cmesh_read_from_vtk

example_IO_cmesh_vtk_t8_cmesh_read_from_vtk_SOURCES = example/IO/cmesh/vtk/t8_cmesh_read_from_vtk.cxx
Loading

0 comments on commit b71c814

Please sign in to comment.