Skip to content

t8_forest_element_half_face_neighbors does not compute the neighbors in linear id order #1951

@holke

Description

@holke

Bug report

Describe the bug
The t8_forest_element_half_face_neighbors function does not create the neighbors in order of their linear Id.

Strictly speaking it may not be a bug, since this behaviour is not documented.
However, all our neighbor functions give out the neighbors in linear id order and users expect it so function should as well.
We expected it ourselves when writing the test for this function.

To Reproduce
When we change this line


to if (neigh_tree >= 0) to check all neighbor computations, then the corresponding test fails.

Expected behavior
The order of the half face neighbor elements is given in order of their linear id.

Log files
In the following output you can see that types of the computed neighbors and the actual neighbors in SFC order are inverted.

Image

Environment (please complete the following information):

  • OS: Ubuntu 22.04

Estimated priority
"Priority: medium" Should be solved within half a year

Additional context

My proposed fix:

Instead of computing the neighbors as:

Compute face children of E.
For each face child compute its face neighbor.

Do it like this:
Compute face neighbor F of E.
Compute the face children of F.

The face children are already computed in SFC order.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Status

In-Box

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions