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... | |
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 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().
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().
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().
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().
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().
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().
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().
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().
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.
Definition at line 436 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::Data::value(), 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().
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().
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().
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().
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().
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().
Vector< std::string > oomph::Missing_masters_functions::Flat_packed_unsigneds_string |
Definition at line 54 of file missing_masters.cc.
Referenced by add_external_haloed_master_node_helper(), add_external_haloed_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::add_haloed_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::add_node_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), get_required_master_nodal_information_helper(), get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::load_balance(), recursively_add_masters_of_external_haloed_node(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::send_and_receive_elements_nodes_info().