35 #ifndef OOMPH_MISSING_MASTERS_HEADER
36 #define OOMPH_MISSING_MASTERS_HEADER
40 #include <oomph-lib-config.h>
61 namespace Missing_masters_functions
63 #ifdef ANNOTATE_MISSING_MASTERS_COMMUNICATION
97 int& n_cont_inter_values,
98 Vector<unsigned>& send_unsigneds,
99 Vector<double>& send_doubles);
107 Mesh*
const& mesh_pt,
108 int& n_cont_inter_values,
109 Vector<unsigned>& send_unsigneds,
110 Vector<double>& send_doubles);
116 Mesh*
const& mesh_pt,
117 int& n_cont_inter_values,
118 Vector<unsigned>& send_unsigneds,
119 Vector<double>& send_doubles);
125 Mesh*
const& mesh_pt,
126 int& n_cont_inter_values,
127 Vector<unsigned>& send_unsigneds,
128 Vector<double>& send_doubles);
135 Mesh*
const& mesh_pt,
136 int& n_cont_inter_values,
137 Vector<unsigned>& send_unsigneds,
138 Vector<double>& send_doubles);
146 Mesh*
const& mesh_pt,
147 int& n_cont_inter_values,
148 Vector<unsigned>& send_unsigneds,
149 Vector<double>& send_doubles);
155 template<
class EXT_ELEMENT>
157 Mesh*
const& mesh_pt,
159 unsigned& node_index,
160 FiniteElement*
const& new_el_pt,
161 int& n_cont_inter_values,
162 unsigned& counter_for_recv_unsigneds,
163 Vector<unsigned>& recv_unsigneds,
164 unsigned& counter_for_recv_doubles,
165 Vector<double>& recv_doubles);
169 template<
class EXT_ELEMENT>
172 Mesh*
const& mesh_pt,
174 unsigned& node_index,
175 int& n_cont_inter_values,
176 unsigned& counter_for_recv_unsigneds,
177 Vector<unsigned>& recv_unsigneds,
178 unsigned& counter_for_recv_doubles,
179 Vector<double>& recv_doubles);
184 Mesh*
const& mesh_pt,
186 unsigned& node_index,
187 FiniteElement*
const& new_el_pt,
188 int& n_cont_inter_values,
189 unsigned& counter_for_recv_unsigneds,
190 Vector<unsigned>& recv_unsigneds,
191 unsigned& counter_for_recv_doubles,
192 Vector<double>& recv_doubles);
195 template<
class EXT_ELEMENT>
197 Node*& new_master_nod_pt,
199 Mesh*
const& mesh_pt,
201 int& n_cont_inter_values,
202 unsigned& counter_for_recv_unsigneds,
203 Vector<unsigned>& recv_unsigneds,
204 unsigned& counter_for_recv_doubles,
205 Vector<double>& recv_doubles);
213 unsigned& node_index,
214 FiniteElement*
const& new_el_pt,
215 Mesh*
const& mesh_pt,
216 unsigned& counter_for_recv_unsigneds,
217 Vector<unsigned>& recv_unsigneds,
218 unsigned& counter_for_recv_doubles,
219 Vector<double>& recv_doubles);
223 template<
class EXT_ELEMENT>
225 Node*& new_master_nod_pt,
228 Mesh*
const& mesh_pt,
229 unsigned& counter_for_recv_unsigneds,
230 Vector<unsigned>& recv_unsigneds,
231 unsigned& counter_for_recv_doubles,
232 Vector<double>& recv_doubles);
bool Doc_full_stats
Boolean to indicate whether to output further info during setup_multi_domain_interaction() routines.
void add_external_halo_node_helper(Node *&new_nod_pt, Mesh *const &mesh_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, int &n_cont_inter_values, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Helper functiono to add external halo node that is not a master.
void get_required_master_nodal_information_helper(int &iproc, Node *master_nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Helper function to get the required master nodal information from an external haloed master node so t...
void recursively_add_masters_of_external_halo_node_to_storage(Node *&new_nod_pt, Mesh *const &mesh_pt, unsigned &loc_p, unsigned &node_index, int &n_cont_inter_values, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Recursively add masters of external halo nodes (and their masters, etc) based on information received...
void add_external_haloed_node_helper(int &iproc, Node *nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Helper to add external haloed node that is not a master.
bool Doc_stats
Boolean to indicate whether to output basic info during setup_multi_domain_interaction() routines.
void add_external_haloed_node_to_storage(int &iproc, Node *nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Helper function to add external haloed nodes, including any masters.
void add_external_halo_node_to_storage(Node *&new_nod_pt, Mesh *const &mesh_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, int &n_cont_inter_values, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Helper function to add external halo nodes, including any masters, based on information received from...
void recursively_add_masters_of_external_haloed_node(int &iproc, Node *nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Recursively add any master nodes (and their master nodes etc) of external nodes.
void construct_new_external_halo_master_node_helper(Node *&new_master_nod_pt, Node *&nod_pt, unsigned &loc_p, Mesh *const &mesh_pt, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Helper function which constructs a new external halo master node with the information sent from the h...
void add_external_halo_master_node_helper(Node *&new_master_nod_pt, Node *&new_nod_pt, Mesh *const &mesh_pt, unsigned &loc_p, int &n_cont_inter_values, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Helper function to add external halo node that is a master.
void get_required_nodal_information_helper(int &iproc, Node *nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Helper function to get the required nodal information from an external haloed node so that a fully-fu...
void add_external_haloed_master_node_helper(int &iproc, Node *master_nod_pt, Mesh *const &mesh_pt, int &n_cont_inter_values, Vector< unsigned > &send_unsigneds, Vector< double > &send_doubles)
Helper function to add external haloed node that is a master.
bool Doc_timings
Boolean to indicate whether to doc timings or not.
void construct_new_external_halo_node_helper(Node *&new_nod_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, Mesh *const &mesh_pt, unsigned &counter_for_recv_unsigneds, Vector< unsigned > &recv_unsigneds, unsigned &counter_for_recv_doubles, Vector< double > &recv_doubles)
Helper function which constructs a new external halo node (on new element) with the required informat...
Vector< std::string > Flat_packed_unsigneds_string
//////////////////////////////////////////////////////////////////// ////////////////////////////////...