From: Roy S. <roy...@ic...> - 2018-03-20 14:50:42
|
On Tue, 20 Mar 2018, Salazar De Troya, Miguel wrote: > this->make_node_proc_ids_parallel_consistent(mesh) did not work. I get the exact same error. Is this strange? >From the outside view, "Is it strange that extremely complicated parallel code isn't working perfectly" is sad but not strange at all. >From the inside view, it seems exceptionally strange to me. We sync all nodes' processor ids (albeit by element id with local node id, since we don't yet have consistent global node ids at this point in the code), and then when we check to see if all nodes' processor ids are in sync, they aren't? At this point I'd be thrilled if you could send me code with which to try and replicate the problem, or even if you could just output a CheckpointIO file set right before the make_node_proc_ids_parallel_consistent() call and send me that. But for now, let's see what I can figure out at arms' length. I only know of situations where a sync by element id with local node id wouldn't be sufficient. Let me know if either apply to you? 1. If you have a node N which isn't connected to any elements. (This can be fixed by using a NodeElem in your Mesh) 2. If you have a node N which is connected to two elements, let's call them E1 and E5, such that no chain of neighbor links like "E1->E2->E3->E4->E5" (with any number of intermediate elements) exists for which all intermediate elements are connected to N. Imagine two squares connected only at one corner - we don't support such a domain with DistributedMesh unless you add a complicated GhostingFunctor to handle the one-point-only connection. --- Roy |