FAQ

Why can't I set the maximum depth to be more than 30?
In the 'ot::DA' module, we compress the octree and just use 1 char to represent the octree. Here, we only use 5 bits to represent the level and we use the remaining 3 bits as flags to store some additional information. With 5 bits, we can represent numbers from 0 through 31. Hence, the levels are restricted to be < 32 and since we increase the initial maximum depth by 1, the maximum depth for construction/balancing is restricted to be < 31. However, you can set the maximum depth to be 31 if you do not use the 'ot::DA' module. Moreover, within the code we often use the number 2^D, where D is the maximum depth. To be able to represent this number using an 'unsigned int' datatype, we need D to be < 32 (assuming that an 'unsigned int' uses 4 bytes). An element at level 30, will have a length equal to approximately one-billionth (2^(-30)) of the length of the domain. At present, we are not aware of any application that needs this resolution. If such a need arises, this restriction can be lifted by minor modifications to the code such as using larger datatypes.

Is there an upper bound on the local grain size assuming that I have plenty of RAM?
Yes. We use 'unsigned int' to represent all local sizes. Moreover, we assume that the local size does not exceed 16M in order to compress the element-to-node mappings in the 'ot::DA' module.

Why is the value returned by the function 'ot::DA::getMaxDepth()' 1 more than what was used to create the octree?
The return value is the maximum depth in the modified octree that include 'pseudo' octants added for the positive boundaries. During meshing, the original octree is embedded into a larger octree. The root of the original octree becomes the first child of the root of this larger octree. The anchors of the octants in the original octree remain unchanged in the new octree as well. Only their levels get incremented by 1. This is done, so that we can create a 1-1 mapping between the octants of the new octree and the nodes of the original octree.

How can I contribute to DENDRO?