56 const unsigned& ncont_interpolated_values)
59 if (is_additional_synchronisation_of_hanging_nodes_disabled() ==
true)
66 using namespace Missing_masters_functions;
78 int n_proc = Comm_pt->nproc();
79 int my_rank = Comm_pt->my_rank();
89 for (
int d = 0; d <
n_proc; d++)
94 if (nexternal_haloed_node(d) != 0)
98 <<
"'s external haloed nodes with processor " << d
99 <<
" are:" << std::endl;
100 for (
unsigned i = 0;
i < nexternal_haloed_node(d);
i++)
102 oomph_info <<
"external_haloed_node_pt(" << d <<
"," <<
i
103 <<
") = " << external_haloed_node_pt(d,
i) << std::endl;
104 oomph_info <<
"x = ( " << external_haloed_node_pt(d,
i)->x(0)
105 <<
" , " << external_haloed_node_pt(d,
i)->x(1) <<
" )"
111 for (
int d = 0; d <
n_proc; d++)
116 if (nexternal_halo_node(d) != 0)
120 <<
"'s external halo nodes with processor " << d
121 <<
" are:" << std::endl;
122 for (
unsigned i = 0;
i < nexternal_halo_node(d);
i++)
124 oomph_info <<
"external_halo_node_pt(" << d <<
"," <<
i
125 <<
") = " << external_halo_node_pt(d,
i) << std::endl;
126 oomph_info <<
"x = ( " << external_halo_node_pt(d,
i)->x(0) <<
" , "
127 << external_halo_node_pt(d,
i)->x(1) <<
" )"
136 err_stream <<
"There are already some nodes in the external storage"
138 <<
"for this mesh. This bit assumes that nothing else"
140 <<
"uses this storage (for now).";
168 for (
int d = 0; d <
n_proc; d++)
175 unsigned nh = nhaloed_node(d);
176 for (
unsigned j = 0;
j <
nh;
j++)
186 if (
nod_pt->is_hanging(icont))
209 <<
", does not match number of haloed data, "
243 unsigned nh = nhalo_node(
dd);
244 for (
unsigned j = 0;
j <
nh;
j++)
254 if (
nod_pt->is_hanging(icont))
283 Comm_pt->mpi_comm());
294 "additional_synchronise_hanging_nodes(): "
310 for (
int d = 0; d <
n_proc; d++)
319 unsigned nh = nhaloed_node(d);
320 for (
unsigned j = 0;
j <
nh;
j++)
339 std::pair<Node*, unsigned>(
nod_pt, d));
355 for (
int d = 0; d <
n_proc; d++)
372 std::map<Node*, unsigned>::iterator
j;
381 std::vector<Node*>::iterator
it = std::find(
383 if (
it != Shared_node_pt[d].
end())
391 unsigned index =
it - Shared_node_pt[d].begin();
397 recursively_add_masters_of_external_haloed_node(d,
406 throw OomphLibError(
"Haloed node not found in haloed node storage",
428 Comm_pt->mpi_comm());
436 Comm_pt->mpi_comm());
448 Comm_pt->mpi_comm());
458 Comm_pt->mpi_comm());
565 <<
"This currently doesn't work for" << std::endl
566 <<
"MacroElementNodeUpdateNodes because these require"
568 <<
"MacroElementNodeUpdateElements to be created for"
570 <<
"the missing halo nodes which will be added" << std::endl;
604 oomph_info <<
"Time for second all-to-all in "
605 "additional_synchronise_hanging_nodes() "
624 for (
int d = 0; d <
n_proc; d++)
644 this->add_shared_node_pt(d,
nod_pt);
660 this->add_shared_node_pt(d,
nod_pt);
686 this->add_shared_node_pt(d,
nod_pt);
706 this->add_shared_node_pt(d,
nod_pt);
722 <<
" external haloed nodes were added to the shared node scheme"
742 err_stream <<
"Duplicate halo nodes exist on another processor!"
744 <<
"(See source code for more detailed explanation)"
755 oomph_info <<
"Time for identification of shared nodes in "
756 "additional_synchronise_hanging_nodes(): "