Hi All,
I have a question about resolving chains of constraints in a ConstraintMatrix class object after calling close() in a parallel distributed case:
I created a ConstraintMatrix with both periodic and hanging node constraints, and called close().
Then I picked a constrained degree of freedom, lets say with global dof id = “i” and printed the constraint equation pairs (j,a_ij) corresponding to “i” on the processor for which “i” is locally owned as well as the processors for which “i” is a ghost. I expected the constraint equation to be the same for owning processor and the ghost processor, however we have encountered a case where printing the constraint equation entries shows different “j” for owning and ghost processorsalthough a_ij are same. When we printed the coordinates of “j” which were different, we found that those two nodes to be periodic images of each other.
Should I except the constraint equation to be the same for the owning processor and the ghost processors?
Thank you,
Yes, they should really be the same. Or, more correctly, if two processors
both store the constraints for a node, they better be the same. On the other
hand, of course not every processor will know every constraint.
Can you try to construct a minimal testcase for what you observe?