p4est 2020 HCM Summer School: Loose Ends

Notes to self and loose ends

How does this whole thing work!

Terminology: element vs. quadrant. Clarify that only leaves are stored. What is a quadrant? Refer to video lectures.

Use the source: inline doxygen comments, example programs. Grep is your friend. When writing code, use GNU indent via the p4estindent script, disabling it by inline comments only in rare and obnoxious cases.

The very basics of working with the code: p4est and p4est_connectivity objects, loops over local trees and quadrants.

Discuss partitioning and partition-independent checksum.

If you find missing or incorrect documentation, specifically concerning the inline doxygen-style comments, please correct them and write pull requests to the develop branch.

C code: there is no separate boolean datatype. We use int, as recommended by the standard, with 0 meaning false and everything else meaning true. Thus, the only safe way of testing for truth is if (var) (or, if you insist, if (var != 0)). You may technically use if (var == 0) to test for falseness but we recommend if (!var). The NULL pointer always evaluates to false, but we try to use the explicit test if (pointer == NULL) throughout.