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 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 process. 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 new element) with the required 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

◆ add_external_halo_master_node_helper()

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().

◆ add_external_halo_node_helper()

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 1220 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 oomph::Multi_domain_functions::add_external_halo_node_to_storage(), and add_external_halo_node_to_storage().

◆ 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.

/ Templated helper functions for missing master methods,

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

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

References add_external_halo_node_helper().

◆ add_external_haloed_master_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 
)

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

/ Slow search version without additional access function in Mesh class /Search the internal shared node storage for this node

Definition at line 307 of file missing_masters.cc.

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

Referenced by recursively_add_masters_of_external_haloed_node().

◆ add_external_haloed_node_helper()

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.

/ Slow search version without additional access function in Mesh class /Search the internal shared node storage for this node

Definition at line 174 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().

◆ 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 77 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().

◆ construct_new_external_halo_master_node_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

/print out nodes

/ Check if sons...

Definition at line 250 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::Mesh::finite_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::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().

◆ construct_new_external_halo_node_helper()

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 new element) with the required information sent from the haloed process.

Helper function which constructs a new external halo node (on an element) with the 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 1298 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::Mesh::finite_element_pt(), oomph::AlgebraicMesh::geom_object_list_pt(), 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::FiniteElement::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().

◆ get_required_master_nodal_information_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 process.

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.

Definition at line 658 of file missing_masters.cc.

References oomph::Mesh::add_external_haloed_element_pt(), 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::Mesh::nexternal_haloed_element(), 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::Data::value(), oomph::Node::value(), oomph::SolidNode::variable_position_pt(), and oomph::Node::x().

Referenced by add_external_haloed_master_node_helper().

◆ get_required_nodal_information_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 
)

◆ recursively_add_masters_of_external_halo_node_to_storage()

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.

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

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

◆ recursively_add_masters_of_external_haloed_node()

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 nodes.

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

Definition at line 106 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

◆ Doc_full_stats

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 67 of file missing_masters.cc.

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

◆ Doc_stats

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 63 of file missing_masters.cc.

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

◆ Doc_timings

bool oomph::Missing_masters_functions::Doc_timings = false

Boolean to indicate whether to doc timings or not.

Definition at line 59 of file missing_masters.cc.

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

◆ Flat_packed_unsigneds_string

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