55 const unsigned& ncont_interpolated_values)
58 if (is_additional_synchronisation_of_hanging_nodes_disabled() ==
true)
65 using namespace Missing_masters_functions;
77 int n_proc = Comm_pt->nproc();
78 int my_rank = Comm_pt->my_rank();
88 for (
int d = 0; d <
n_proc; d++)
93 if (nexternal_haloed_node(d) != 0)
97 <<
"'s external haloed nodes with processor " << d
98 <<
" are:" << std::endl;
99 for (
unsigned i = 0;
i < nexternal_haloed_node(d);
i++)
101 oomph_info <<
"external_haloed_node_pt(" << d <<
"," <<
i
102 <<
") = " << external_haloed_node_pt(d,
i) << std::endl;
103 oomph_info <<
"x = ( " << external_haloed_node_pt(d,
i)->x(0)
104 <<
" , " << external_haloed_node_pt(d,
i)->x(1) <<
" )"
110 for (
int d = 0; d <
n_proc; d++)
115 if (nexternal_halo_node(d) != 0)
119 <<
"'s external halo nodes with processor " << d
120 <<
" are:" << std::endl;
121 for (
unsigned i = 0;
i < nexternal_halo_node(d);
i++)
123 oomph_info <<
"external_halo_node_pt(" << d <<
"," <<
i
124 <<
") = " << external_halo_node_pt(d,
i) << std::endl;
125 oomph_info <<
"x = ( " << external_halo_node_pt(d,
i)->x(0) <<
" , "
126 << external_halo_node_pt(d,
i)->x(1) <<
" )"
135 err_stream <<
"There are already some nodes in the external storage"
137 <<
"for this mesh. This bit assumes that nothing else"
139 <<
"uses this storage (for now).";
167 for (
int d = 0; d <
n_proc; d++)
174 unsigned nh = nhaloed_node(d);
175 for (
unsigned j = 0;
j <
nh;
j++)
185 if (
nod_pt->is_hanging(icont))
208 <<
", does not match number of haloed data, "
242 unsigned nh = nhalo_node(
dd);
243 for (
unsigned j = 0;
j <
nh;
j++)
253 if (
nod_pt->is_hanging(icont))
282 Comm_pt->mpi_comm());
293 "additional_synchronise_hanging_nodes(): "
309 for (
int d = 0; d <
n_proc; d++)
318 unsigned nh = nhaloed_node(d);
319 for (
unsigned j = 0;
j <
nh;
j++)
338 std::pair<Node*, unsigned>(
nod_pt, d));
354 for (
int d = 0; d <
n_proc; d++)
371 std::map<Node*, unsigned>::iterator
j;
380 std::vector<Node*>::iterator
it = std::find(
382 if (
it != Shared_node_pt[d].
end())
390 unsigned index =
it - Shared_node_pt[d].begin();
396 recursively_add_masters_of_external_haloed_node(d,
405 throw OomphLibError(
"Haloed node not found in haloed node storage",
427 Comm_pt->mpi_comm());
435 Comm_pt->mpi_comm());
447 Comm_pt->mpi_comm());
457 Comm_pt->mpi_comm());
564 <<
"This currently doesn't work for" << std::endl
565 <<
"MacroElementNodeUpdateNodes because these require"
567 <<
"MacroElementNodeUpdateElements to be created for"
569 <<
"the missing halo nodes which will be added" << std::endl;
603 oomph_info <<
"Time for second all-to-all in "
604 "additional_synchronise_hanging_nodes() "
623 for (
int d = 0; d <
n_proc; d++)
643 this->add_shared_node_pt(d,
nod_pt);
659 this->add_shared_node_pt(d,
nod_pt);
685 this->add_shared_node_pt(d,
nod_pt);
705 this->add_shared_node_pt(d,
nod_pt);
721 <<
" external haloed nodes were added to the shared node scheme"
741 err_stream <<
"Duplicate halo nodes exist on another processor!"
743 <<
"(See source code for more detailed explanation)"
754 oomph_info <<
"Time for identification of shared nodes in "
755 "additional_synchronise_hanging_nodes(): "