Currently the ArbitraryDomain class only works when it is partitioned in z-direction. Rewrite it such that the global linear indexing works also with PARFFTX=TRUE and/or PARFFTY=TRUE.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
I don't think that it's a valid argument to close an issue if it's in the list of #227. It's easy to forget if this issue is just on some list somewhere.
As discussed with @winklehner_d in !371 (comment 24025) the ArbitraryDomain is generally broken since OPAL-2.0. Hence, it would be good the rewrite also includes the fix of that bug.
@gsell Quick question: If P lies directly on a boundary (i.e. |I - P| <= 1e-20 or whatever the number ends up being), is it counted as inside or outside? Asking because if it is counted as inside, I need to catch this special case during linear interpolation for the stencil creation, otherwise we have division by 0 there.
@winklehner_d if P is directly on a boundary, we have an intersection of the line segment defined by P and the reference point with a boundary. With the current implementation this means:
P is considered to be outside if the reference point is inside
P is considered to be inside if the reference point is outside
@gsell Ok, that is "good" behaviour for the SAAMG/ArbitraryDomain where P0 is inside. Then the distance |I - P| will never be 0 in the stencil calculation.
The reference point should always be inside or always be outside, we should make either one the standard, otherwise we set ourselves up for more errors. I vote for P0 always inside (for the above-mentioned reason).
@winklehner_d yes, the reference should always be inside. I'm currently adding more comments to the source code to make things more clear. I have to remember to add the case you mentioned (point exactly on the boundary).