39 #ifndef OOMPH_MISSING_MASTERS_HEADER 40 #define OOMPH_MISSING_MASTERS_HEADER 44 #include <oomph-lib-config.h> 66 namespace Missing_masters_functions
69 #ifdef ANNOTATE_MISSING_MASTERS_COMMUNICATION 101 Mesh*
const &mesh_pt,
102 int& n_cont_inter_values,
103 Vector<unsigned>& send_unsigneds,
104 Vector<double>& send_doubles);
110 int& iproc, Node* nod_pt,
111 Mesh*
const &mesh_pt,
112 int& n_cont_inter_values,
113 Vector<unsigned>& send_unsigneds,
114 Vector<double>& send_doubles);
119 Mesh*
const &mesh_pt,
120 int& n_cont_inter_values,
121 Vector<unsigned>& send_unsigneds,
122 Vector<double>& send_doubles);
126 Mesh*
const &mesh_pt,
127 int& n_cont_inter_values,
128 Vector<unsigned>& send_unsigneds,
129 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);
144 (
int& iproc, Node* master_nod_pt,
145 Mesh*
const &mesh_pt,
int& n_cont_inter_values,
146 Vector<unsigned>& send_unsigneds,
147 Vector<double>& send_doubles);
153 template<
class EXT_ELEMENT>
155 Mesh*
const &mesh_pt,
157 unsigned& node_index,
158 FiniteElement*
const &new_el_pt,
159 int& n_cont_inter_values,
160 unsigned &counter_for_recv_unsigneds,
161 Vector<unsigned>& recv_unsigneds,
162 unsigned &counter_for_recv_doubles,
163 Vector<double>& recv_doubles);
167 template<
class EXT_ELEMENT>
169 (Node* &new_nod_pt, Mesh*
const &mesh_pt,
unsigned& loc_p,
170 unsigned& node_index,
int& n_cont_inter_values,
171 unsigned &counter_for_recv_unsigneds,
172 Vector<unsigned>& recv_unsigneds,
173 unsigned &counter_for_recv_doubles,
174 Vector<double>& recv_doubles);
179 Mesh*
const &mesh_pt,
181 unsigned& node_index,
182 FiniteElement*
const &new_el_pt,
183 int& n_cont_inter_values,
184 unsigned &counter_for_recv_unsigneds,
185 Vector<unsigned>& recv_unsigneds,
186 unsigned &counter_for_recv_doubles,
187 Vector<double>& recv_doubles);
190 template<
class EXT_ELEMENT>
193 Mesh*
const &mesh_pt,
195 int& n_cont_inter_values,
196 unsigned &counter_for_recv_unsigneds,
197 Vector<unsigned>& recv_unsigneds,
198 unsigned &counter_for_recv_doubles,
199 Vector<double>& recv_doubles);
206 unsigned& node_index,
209 Mesh*
const &mesh_pt,
210 unsigned &counter_for_recv_unsigneds,
211 Vector<unsigned>& recv_unsigneds,
212 unsigned &counter_for_recv_doubles,
213 Vector<double>& recv_doubles);
217 template<
class EXT_ELEMENT>
219 (Node* &new_master_nod_pt,Node* &nod_pt,
unsigned& loc_p,
220 Mesh*
const &mesh_pt,
221 unsigned &counter_for_recv_unsigneds,
222 Vector<unsigned>& recv_unsigneds,
223 unsigned &counter_for_recv_doubles,
224 Vector<double>& recv_doubles);
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.
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 haloed nodes.
Vector< std::string > Flat_packed_unsigneds_string
bool Doc_full_stats
Boolean to indicate whether to output further info during setup_multi_domain_interaction() routines...
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_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...
bool Doc_timings
Boolean to indicate whether to doc timings or not.
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 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 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.
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.
bool Doc_stats
Boolean to indicate whether to output basic info during setup_multi_domain_interaction() routines...
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 an element) with the information sent f...
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 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...