Skip to content

Conversation

@holke
Copy link
Collaborator

@holke holke commented Sep 17, 2025

Closes #1856

Describe your changes here:

We add new README.md files for the src/ and src/t8_cmesh folders in t8code to document the folder structure and to make it easier for devs to get into t8code.

All these boxes must be checked by the AUTHOR before requesting review:

  • The PR is small enough to be reviewed easily. If not, consider splitting up the changes in multiple PRs.
  • The title starts with one of the following prefixes: Documentation:, Bugfix:, Feature:, Improvement: or Other:.
  • If the PR is related to an issue, make sure to link it.
  • The author made sure that, as a reviewer, he/she would check all boxes below.

All these boxes must be checked by the REVIEWERS before merging the pull request:

As a reviewer please read through all the code lines and make sure that the code is fully understood, bug free, well-documented and well-structured.

General

  • The reviewer executed the new code features at least once and checked the results manually.
  • The code follows the t8code coding guidelines.
  • New source/header files are properly added to the CMake files.
  • The code is well documented. In particular, all function declarations, structs/classes and their members have a proper doxygen documentation.
  • All new algorithms and data structures are sufficiently optimal in terms of memory and runtime (If this should be merged, but there is still potential for optimization, create a new issue).

Tests

  • The code is covered in an existing or new test case using Google Test.
  • The code coverage of the project (reported in the CI) should not decrease. If coverage is decreased, make sure that this is reasonable and acceptable.
  • Valgrind doesn't find any bugs in the new code. This script can be used to check for errors; see also this wiki article.

If the Pull request introduces code that is not covered by the github action (for example coupling with a new library):

  • Should this use case be added to the github action?
  • If not, does the specific use case compile and all tests pass (check manually).

Scripts and Wiki

  • If a new directory with source files is added, it must be covered by the script/find_all_source_files.scp to check the indentation of these files.
  • If this PR introduces a new feature, it must be covered in an example or tutorial and a Wiki article.

License

  • The author added a BSD statement to doc/ (or already has one).

@holke holke changed the title Create README.md Documentation: README files for the subfolders Sep 17, 2025
@holke holke changed the title Documentation: README files for the subfolders Documentation: README files /src and /src/t8_cmesh Sep 19, 2025
@holke holke marked this pull request as ready for review September 19, 2025 11:25
@codecov
Copy link

codecov bot commented Sep 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.42%. Comparing base (b9633d6) to head (8a08aa5).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1855   +/-   ##
=======================================
  Coverage   74.42%   74.42%           
=======================================
  Files         101      101           
  Lines       19204    19204           
=======================================
  Hits        14293    14293           
  Misses       4911     4911           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lenaploetzke lenaploetzke self-requested a review September 22, 2025 08:50
@lenaploetzke lenaploetzke self-assigned this Sep 22, 2025
Copy link
Collaborator

@lenaploetzke lenaploetzke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this nice overview :)


### [src](https://github.com/DLR-AMR/t8code/tree/main/src)

The main source folder, it holds main header files like [t8.h](https://github.com/DLR-AMR/t8code/blob/main/src/t8.h), [t8_cmesh.hxx](https://github.com/DLR-AMR/t8code/blob/main/src/t8_cmesh.hxx) and more.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We talked about changing the references to only folder structures (Similar as you did for the cmesh readme in line 14). I think it would be better to use this everywhere instead of this reference to the main branch :)


### [src](https://github.com/DLR-AMR/t8code/tree/main/src)

The main source folder, it holds main header files like [t8.h](https://github.com/DLR-AMR/t8code/blob/main/src/t8.h), [t8_cmesh.hxx](https://github.com/DLR-AMR/t8code/blob/main/src/t8_cmesh.hxx) and more.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The main source folder, it holds main header files like [t8.h](https://github.com/DLR-AMR/t8code/blob/main/src/t8.h), [t8_cmesh.hxx](https://github.com/DLR-AMR/t8code/blob/main/src/t8_cmesh.hxx) and more.
The main source folder. It holds main header files like [t8.h](https://github.com/DLR-AMR/t8code/blob/main/src/t8.h), [t8_cmesh.hxx](https://github.com/DLR-AMR/t8code/blob/main/src/t8_cmesh.hxx) and more.

#### [src/t8_cmesh](https://github.com/DLR-AMR/t8code/tree/main/src/t8_cmesh)

Contains implementation details of algorithms and data structures related to the coarse mesh.
See [cmesh README](t8_cmesh/README.md) and the tutorial about coarse meshes: [Creating a coarse mesh](https://github.com/DLR-AMR/t8code/wiki/Step-1---Creating-a-coarse-mesh)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See [cmesh README](t8_cmesh/README.md) and the tutorial about coarse meshes: [Creating a coarse mesh](https://github.com/DLR-AMR/t8code/wiki/Step-1---Creating-a-coarse-mesh)
See [cmesh README](t8_cmesh/README.md) and the tutorials about coarse meshes: [Creating a coarse mesh](https://github.com/DLR-AMR/t8code/wiki/Step-1---Creating-a-coarse-mesh)

#### [src/t8_data](https://github.com/DLR-AMR/t8code/tree/feature-folder_README/src/t8_data)

Contains data handling classes and algorithms related to data containers, including arrays to handle element data.
See [data README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_data/README)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See [data README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_data/README)
See [data README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_data/README).


#### [src/t8_types](https://github.com/DLR-AMR/t8code/tree/main/src/t8_types)

Custom data types and strong types. Also contains t8_vec vector implementation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Custom data types and strong types. Also contains t8_vec vector implementation.
Custom data types and strong types. Also contains `t8_vec` vector implementation.

#### [src/t8_forest](https://github.com/DLR-AMR/t8code/tree/main/src/t8_forest)

Contains implementation details of algorithms and data structures related to the forest, i.e. the actual computational mesh.
See [forest README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_forest/README) and the tutorials, [Step 2](https://github.com/DLR-AMR/t8code/wiki/Step-2---Creating-a-uniform-forest), [Step 3](https://github.com/DLR-AMR/t8code/wiki/Step-3---Adapting-a-forest), [Step 4](https://github.com/DLR-AMR/t8code/wiki/Step-3---Adapting-a-forest).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See [forest README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_forest/README) and the tutorials, [Step 2](https://github.com/DLR-AMR/t8code/wiki/Step-2---Creating-a-uniform-forest), [Step 3](https://github.com/DLR-AMR/t8code/wiki/Step-3---Adapting-a-forest), [Step 4](https://github.com/DLR-AMR/t8code/wiki/Step-3---Adapting-a-forest).
See [forest README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_forest/README) and the tutorials, [Step 2](https://github.com/DLR-AMR/t8code/wiki/Step-2---Creating-a-uniform-forest), [Step 3](https://github.com/DLR-AMR/t8code/wiki/Step-3---Adapting-a-forest), [Step 4](https://github.com/DLR-AMR/t8code/wiki/Step-4---Partition,-Balance,-Ghost).

#### [src/t8_types](https://github.com/DLR-AMR/t8code/tree/main/src/t8_types)

Custom data types and strong types. Also contains t8_vec vector implementation.
See [types README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_schemes/README).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See [types README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_schemes/README).
See [types README](https://github.com/DLR-AMR/t8code/tree/main/src/t8_types/README).

See also our Wiki tutorials [Creating a coarse mesh](https://github.com/DLR-AMR/t8code/wiki/Step-1---Creating-a-coarse-mesh)
and [Building a Cmesh by hand](https://github.com/DLR-AMR/t8code/wiki/Building-a-Cmesh-by-hand).

Your entry point should be [t8_cmesh.h](https://github.com/DLR-AMR/t8code/blob/18e8af64286bef9370042a8c4d7885d279d2b933/src/t8_cmesh.h) which is the main cmesh interface.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Your entry point should be [t8_cmesh.h](https://github.com/DLR-AMR/t8code/blob/18e8af64286bef9370042a8c4d7885d279d2b933/src/t8_cmesh.h) which is the main cmesh interface.
Your entry point to familiarize yourself with the code should be [t8_cmesh.h](https://github.com/DLR-AMR/t8code/blob/18e8af64286bef9370042a8c4d7885d279d2b933/src/t8_cmesh.h) which is the main cmesh interface.

@@ -0,0 +1 @@

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
TODO

@lenaploetzke lenaploetzke assigned holke and unassigned lenaploetzke Sep 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentation: README files /src and /src/t8_cmesh

3 participants