Functions | Variables
oomph::Missing_masters_functions Namespace Reference

Functions

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. More...
 
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. More...
 
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. More...
 
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. More...
 
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-functional external halo node (and therefore element) can be created on the receiving process. More...
 
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 that a fully-functional external halo master node (and possible element) can be created on the receiving proc. More...
 
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. More...
 
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 from the haloed process. More...
 
template<class EXT_ELEMENT >
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 the haloed process. More...
 
template<class EXT_ELEMENT >
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 from the haloed process. More...
 
template<class EXT_ELEMENT >
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. More...
 
template<class EXT_ELEMENT >
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 haloed process. More...
 

Variables

Vector< std::string > Flat_packed_unsigneds_string
 
bool Doc_timings =false
 Boolean to indicate whether to doc timings or not. More...
 
bool Doc_stats =false
 Boolean to indicate whether to output basic info during setup_multi_domain_interaction() routines. More...
 
bool Doc_full_stats =false
 Boolean to indicate whether to output further info during setup_multi_domain_interaction() routines. More...
 

Function Documentation

template<class EXT_ELEMENT >
void oomph::Missing_masters_functions::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.

Definition at line 177 of file missing_masters.template.cc.

References oomph::Mesh::external_halo_node_pt(), oomph::oomph_info, and oomph::Mesh::shared_node_pt().

void oomph::Missing_masters_functions::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.

Helper function to add external halo node that is not a master.

Definition at line 1173 of file missing_masters.cc.

References construct_new_external_halo_node_helper(), oomph::Mesh::external_halo_node_pt(), oomph::FiniteElement::node_pt(), oomph::oomph_info, and oomph::Mesh::shared_node_pt().

Referenced by add_external_halo_node_to_storage(), and oomph::Multi_domain_functions::add_external_halo_node_to_storage().

template<class EXT_ELEMENT >
void oomph::Missing_masters_functions::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 the haloed process.

Helper function to add external halo nodes, including any masters, based on information received from the haloed process

Definition at line 68 of file missing_masters.template.cc.

References add_external_halo_node_helper().

void oomph::Missing_masters_functions::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 
)
void oomph::Missing_masters_functions::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.

Helper function to add external haloed node that is not a master.

Definition at line 177 of file missing_masters.cc.

References oomph::Mesh::add_external_haloed_node_pt(), Flat_packed_unsigneds_string, get_required_nodal_information_helper(), oomph::Mesh::get_shared_node_pt(), and oomph::Mesh::nexternal_haloed_node().

Referenced by add_external_haloed_node_to_storage().

void oomph::Missing_masters_functions::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.

Helper function to add external haloed nodes, inc. masters of external haloed nodes.

Definition at line 84 of file missing_masters.cc.

References add_external_haloed_node_helper(), and recursively_add_masters_of_external_haloed_node().

Referenced by get_required_master_nodal_information_helper().

template<class EXT_ELEMENT >
void oomph::Missing_masters_functions::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 haloed process.

Helper function which constructs a new external halo master node with the required information sent from the haloed process

The first entry of All_unsigned_values is the default node update id

... so for the specified update_id, call add_node_update_info

Now call update_node_update

Definition at line 249 of file missing_masters.template.cc.

References oomph::Mesh::add_boundary_node(), oomph::Mesh::add_external_halo_element_pt(), oomph::Mesh::add_external_halo_node_pt(), oomph::AlgebraicNode::add_node_update_info(), oomph::FiniteElement::dim(), oomph::Mesh::external_halo_element_pt(), oomph::AlgebraicMesh::geom_object_list_pt(), oomph::MacroElementNodeUpdateMesh::geom_object_vector_pt(), oomph::Mesh::halo_element_pt(), i, oomph::BoundaryNodeBase::index_of_first_value_assigned_by_face_element_pt(), oomph::RefineableElement::initial_setup(), oomph::FiniteElement::local_coordinate_of_node(), oomph::MacroElementNodeUpdateMesh::macro_domain_pt(), oomph::Domain::macro_element_pt(), oomph::Node::ndim(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nnode_1d(), oomph::Mesh::node_pt(), oomph::FiniteElement::node_pt(), oomph::MacroElementNodeUpdateNode::node_update_element_pt(), oomph::Data::nvalue(), oomph::oomph_info, oomph::QElementBase::s_macro_ll(), oomph::QElementBase::s_macro_ur(), oomph::Data::set_halo(), oomph::FiniteElement::set_macro_elem_pt(), oomph::MacroElementNodeUpdateNode::set_node_update_info(), oomph::Data::set_value(), t, oomph::Data::time_stepper_pt(), oomph::AlgebraicMesh::update_node_update(), oomph::SolidNode::variable_position_pt(), and oomph::Node::x().

void oomph::Missing_masters_functions::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 from the haloed process.

Helper function which constructs a new external halo node (on new element) with the required information sent from the haloed process

The first entry of All_alg_nodal_info contains the default node update id e.g. for the quarter circle there are "Upper_left_box", "Lower right box" etc...

again we need the size of this vector as it varies between meshes; we also need some indication as to which geometric object should be used...

For the received update_id, ref_value, geom_object call add_node_update_info

Now call update_node_update

Definition at line 1255 of file missing_masters.cc.

References oomph::Mesh::add_boundary_node(), oomph::Mesh::add_external_halo_node_pt(), oomph::AlgebraicNode::add_node_update_info(), oomph::FiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_node(), oomph::MacroElementNodeUpdateMesh::geom_object_vector_pt(), i, oomph::BoundaryNodeBase::index_of_first_value_assigned_by_face_element_pt(), oomph::FiniteElement::local_coordinate_of_node(), oomph::Node::ndim(), oomph::Mesh::node_pt(), oomph::Data::nvalue(), oomph::oomph_info, oomph::Node::resize(), oomph::MacroElementNodeUpdateNode::set_node_update_info(), oomph::Data::set_value(), t, oomph::Data::time_stepper_pt(), oomph::AlgebraicMesh::update_node_update(), oomph::SolidNode::variable_position_pt(), and oomph::Node::x().

Referenced by add_external_halo_node_helper().

void oomph::Missing_masters_functions::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 that a fully-functional external halo master node (and possible element) can be created on the receiving proc.

Helper function to get the required master nodal information from an external haloed master node so that a fully-functional external halo master node (and possible element) can be created on the receiving process

Definition at line 662 of file missing_masters.cc.

References add_external_haloed_node_to_storage(), oomph::Mesh::communicator_pt(), oomph::FiniteElement::dim(), oomph::Mesh::external_haloed_element_pt(), Flat_packed_unsigneds_string, oomph::AlgebraicMesh::geom_object_list_pt(), oomph::AlgebraicNode::geom_object_pt(), oomph::Mesh::haloed_element_pt(), i, oomph::BoundaryNodeBase::index_of_first_value_assigned_by_face_element_pt(), oomph::Data::is_halo(), oomph::Node::is_on_boundary(), oomph::FiniteElement::macro_elem_pt(), oomph::MacroElement::macro_element_number(), oomph::Mesh::nboundary(), oomph::Node::ndim(), oomph::AlgebraicNode::ngeom_object(), oomph::AlgebraicMesh::ngeom_object_list_pt(), oomph::SolidNode::nlagrangian(), oomph::SolidNode::nlagrangian_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::MacroElementNodeUpdateNode::node_update_element_pt(), oomph::AlgebraicNode::node_update_fct_id(), oomph::Data::non_halo_proc_ID(), oomph::Node::nposition_type(), oomph::AlgebraicNode::nref_value(), oomph::TimeStepper::ntstorage(), oomph::Data::nvalue(), oomph::oomph_info, oomph::PRefineableElement::p_order(), oomph::AlgebraicNode::ref_value(), oomph::QElementBase::s_macro_ll(), oomph::QElementBase::s_macro_ur(), t, oomph::Data::time_stepper_pt(), oomph::Node::value(), oomph::SolidNode::variable_position_pt(), and oomph::Node::x().

Referenced by add_external_haloed_master_node_helper().

void oomph::Missing_masters_functions::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-functional external halo node (and therefore element) can be created on the receiving process.

Helper function to get the required nodal information from an external haloed node so that a fully-functional external halo node (and therefore element) can be created on the receiving process

Definition at line 439 of file missing_masters.cc.

References Flat_packed_unsigneds_string, oomph::AlgebraicMesh::geom_object_list_pt(), oomph::AlgebraicNode::geom_object_pt(), i, oomph::BoundaryNodeBase::index_of_first_value_assigned_by_face_element_pt(), oomph::Node::is_on_boundary(), oomph::Mesh::nboundary(), oomph::Node::ndim(), oomph::AlgebraicNode::ngeom_object(), oomph::AlgebraicMesh::ngeom_object_list_pt(), oomph::AlgebraicNode::node_update_fct_id(), oomph::AlgebraicNode::nref_value(), oomph::TimeStepper::ntstorage(), oomph::Data::nvalue(), oomph::AlgebraicNode::ref_value(), t, oomph::Data::time_stepper_pt(), oomph::Node::value(), oomph::SolidNode::variable_position_pt(), and oomph::Node::x().

Referenced by add_external_haloed_node_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::add_haloed_node_helper().

template<class EXT_ELEMENT >
void oomph::Missing_masters_functions::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 from the haloed process.

Recursively add masters of external halo nodes (and their masters, etc) based on information received from the haloed process

Definition at line 106 of file missing_masters.template.cc.

References oomph::oomph_info, oomph::Node::set_hanging_pt(), and oomph::HangInfo::set_master_node_pt().

void oomph::Missing_masters_functions::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.

Recursively add any master nodes (and their master nodes etc) of external nodes

Definition at line 110 of file missing_masters.cc.

References add_external_haloed_master_node_helper(), Flat_packed_unsigneds_string, oomph::Node::hanging_pt(), oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::master_weight(), and oomph::HangInfo::nmaster().

Referenced by add_external_haloed_node_to_storage(), and oomph::TreeBasedRefineableMesh< ELEMENT >::additional_synchronise_hanging_nodes().

Variable Documentation

bool oomph::Missing_masters_functions::Doc_full_stats =false

Boolean to indicate whether to output further info during setup_multi_domain_interaction() routines.

Boolean to indicate whether to document further info (to screen) during setup_multi_domain_interaction() routines.

Definition at line 74 of file missing_masters.cc.

Referenced by oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().

bool oomph::Missing_masters_functions::Doc_stats =false

Boolean to indicate whether to output basic info during setup_multi_domain_interaction() routines.

Boolean to indicate whether to document basic info (to screen) during setup_multi_domain_interaction() routines.

Definition at line 70 of file missing_masters.cc.

Referenced by oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().

bool oomph::Missing_masters_functions::Doc_timings =false

Boolean to indicate whether to doc timings or not.

Definition at line 66 of file missing_masters.cc.

Referenced by oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().

Vector< std::string > oomph::Missing_masters_functions::Flat_packed_unsigneds_string