DRAFT: Changes/fixes for adjset generation. #1434
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've been running into a problem with adjset generation where points on either side of a domain will have scrambled point index orderings in the adjsets. If one uses the adjsets to index into the coordsets, it is possible to get points that do not match on either side of a domain interface. I figured out this happens because of the distance and tolerance comparison in ffloat::operator<. Apparently, we get points that are closer than CONDUIT_EPSILON (1.e-12) and the less than comparison fails. This affects
PointTuple::operator<
and ultimately the index at which new entities are inserted into the entity vector used to build the adjset.If the epsilon is decreased then the adjset is fixed for the dataset that causes the problem. This does not seem like a robust enough fix so I'm still thinking about solutions. We should discuss.
Other changes:
using
statements for type readability