|
template<class BULK_ELEMENT , unsigned DIM> |
void | oomph::Multi_domain_functions::setup_bulk_elements_adjacent_to_face_mesh (Problem *problem_pt, Vector< unsigned > &boundary_in_bulk_mesh, Mesh *const &bulk_mesh_pt, Vector< Mesh * > &face_mesh_pt, const unsigned &interaction=0) |
| Identify the FaceElements (stored in the mesh pointed to by face_mesh_pt ) that are adjacent to the bulk elements next to the boundary_in_bulk_mesh -th boundary of the mesh pointed to by bulk_mesh_pt . The FaceElements must be derived from the ElementWithExternalElement base class and the adjacent bulk elements are stored as their external elements. More...
|
|
template<class BULK_ELEMENT , unsigned DIM> |
void | oomph::Multi_domain_functions::setup_bulk_elements_adjacent_to_face_mesh (Problem *problem_pt, const unsigned &boundary_in_bulk_mesh, Mesh *const &bulk_mesh_pt, Mesh *const &face_mesh_pt, const unsigned &interaction=0) |
| Identify the FaceElements (stored in the mesh pointed to by face_mesh_pt ) that are adjacent to the bulk elements next to the boundary_in_bulk_mesh -th boundary of the mesh pointed to by bulk_mesh_pt . The FaceElements must be derived from the ElementWithExternalElement base class and the adjacent bulk elements are stored as their external elements. More...
|
|
template<class ELEMENT_0 , class ELEMENT_1 > |
void | oomph::Multi_domain_functions::setup_multi_domain_interactions (Problem *problem_pt, Mesh *const &first_mesh_pt, Mesh *const &second_mesh_pt, const unsigned &first_interaction=0, const unsigned &second_interaction=0) |
| Set up the two-way multi-domain interactions for the problem pointed to by problem_pt . Use this for cases where first_mesh_pt and second_mesh_pt occupy the same physical space and are populated by ELEMENT_0 and ELEMENT_1 respectively, and are combined to solve a single problem. The elements in two meshes interact both ways the elements in each mesh act as "external elements" for the elements in the "other" mesh. The interaction indices allow the specification of which interaction we're setting up in the two meshes. They default to zero, which is appropriate if there's only a single interaction. More...
|
|
template<class EXT_ELEMENT > |
void | oomph::Multi_domain_functions::setup_multi_domain_interaction (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt, const unsigned &interaction_index=0) |
| Function to set up the one-way multi-domain interaction for problems where the meshes pointed to by mesh_pt and external_mesh_pt occupy the same physical space, and the elements in external_mesh_pt act as "external elements" for the ElementWithExternalElements in mesh_pt (but not vice versa): More...
|
|
template<class EXT_ELEMENT , class FACE_ELEMENT_GEOM_OBJECT > |
void | oomph::Multi_domain_functions::setup_multi_domain_interaction (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt, Mesh *const &external_face_mesh_pt, const unsigned &interaction_index=0) |
| Function to set up the one-way multi-domain interaction for FSI-like problems. More...
|
|
template<class EXT_ELEMENT , class FACE_ELEMENT_GEOM_OBJECT > |
void | oomph::Multi_domain_functions::setup_multi_domain_interaction (Problem *problem_pt, const Vector< Mesh * > &mesh_pt, Mesh *const &external_mesh_pt, const Vector< Mesh * > &external_face_mesh_pt, const unsigned &interaction_index=0) |
| Function to set up the one-way multi-domain interaction for FSI-like problems. More...
|
|
template<class EXT_ELEMENT , class GEOM_OBJECT > |
void | oomph::Multi_domain_functions::aux_setup_multi_domain_interaction (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt, const unsigned &interaction_index, Mesh *const &external_face_mesh_pt=0) |
| Auxiliary helper function. More...
|
|
template<class EXT_ELEMENT , class GEOM_OBJECT > |
void | oomph::Multi_domain_functions::aux_setup_multi_domain_interaction (Problem *problem_pt, const Vector< Mesh * > &mesh_pt, Mesh *const &external_mesh_pt, const unsigned &interaction_index, const Vector< Mesh * > &external_face_mesh_pt) |
| Auxiliary helper function. More...
|
|
void | oomph::Multi_domain_functions::locate_zeta_for_local_coordinates (const Vector< Mesh * > &mesh_pt, Mesh *const &external_mesh_pt, Vector< MeshAsGeomObject * > &mesh_geom_obj_pt, const unsigned &interaction_index) |
| locate zeta for current set of "local" coordinates vector-based version More...
|
|
void | oomph::Multi_domain_functions::send_and_receive_missing_zetas (Problem *problem_pt) |
| Send the zeta coordinates from the current process to the next process; receive from the previous process. More...
|
|
void | oomph::Multi_domain_functions::locate_zeta_for_missing_coordinates (int &iproc, Mesh *const &external_mesh_pt, Problem *problem_pt, Vector< MeshAsGeomObject * > &mesh_geom_obj_pt) |
| Locate zeta for current set of missing coordinates; vector-based version. More...
|
|
void | oomph::Multi_domain_functions::send_and_receive_located_info (int &iproc, Mesh *const &external_mesh_pt, Problem *problem_pt) |
| Send location information from current process; Received location information from (current process + iproc) modulo (nproc) More...
|
|
template<class EXT_ELEMENT > |
void | oomph::Multi_domain_functions::create_external_halo_elements (int &iproc, const Vector< Mesh * > &mesh_pt, Mesh *const &external_mesh_pt, Problem *problem_pt, const unsigned &interaction_index) |
| Create external (halo) elements on the loop process based on the information received from each locate_zeta call on other processes This is the vector-based function which operates simultaneously on the meshes contained in the vectors. More...
|
|
void | oomph::Multi_domain_functions::add_external_haloed_node_to_storage (int &iproc, Node *nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| Helper function to add external haloed nodes, including any masters. More...
|
|
void | oomph::Multi_domain_functions::recursively_add_masters_of_external_haloed_node (int &iproc, Node *nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| Recursively add any master nodes (and their master nodes etc) of external nodes. More...
|
|
void | oomph::Multi_domain_functions::add_external_haloed_node_helper (int &iproc, Node *nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| Helper to add external haloed node that is not a master. More...
|
|
void | oomph::Multi_domain_functions::add_external_haloed_master_node_helper (int &iproc, Node *master_nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| Helper function to add external haloed node that is a master. More...
|
|
void | oomph::Multi_domain_functions::get_required_nodal_information_helper (int &iproc, Node *nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| 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 | oomph::Multi_domain_functions::get_required_master_nodal_information_helper (int &iproc, Node *master_nod_pt, Problem *problem_pt, Mesh *const &external_mesh_pt, int &n_cont_inter_values) |
| 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...
|
|
template<class EXT_ELEMENT > |
void | oomph::Multi_domain_functions::add_external_halo_node_to_storage (Node *&new_nod_pt, Mesh *const &external_mesh_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, int &n_cont_inter_values, Problem *problem_pt) |
| Helper function to add external halo nodes, including any masters, based on information received from the haloed process. More...
|
|
template<class EXT_ELEMENT > |
void | oomph::Multi_domain_functions::recursively_add_masters_of_external_halo_node_to_storage (Node *&new_nod_pt, Mesh *const &external_mesh_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, int &n_cont_inter_values, Problem *problem_pt) |
| Recursively add masters of external halo nodes (and their masters, etc) based on information received from the haloed process. More...
|
|
void | oomph::Multi_domain_functions::add_external_halo_node_helper (Node *&new_nod_pt, Mesh *const &external_mesh_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, int &n_cont_inter_values, Problem *problem_pt) |
| Helper functiono to add external halo node that is not a master. More...
|
|
template<class EXT_ELEMENT > |
void | oomph::Multi_domain_functions::add_external_halo_master_node_helper (Node *&new_master_nod_pt, Node *&new_nod_pt, Mesh *const &external_mesh_pt, unsigned &loc_p, int &n_cont_inter_values, Problem *problem_pt) |
| Helper function to add external halo node that is a master. More...
|
|
void | oomph::Multi_domain_functions::construct_new_external_halo_node_helper (Node *&new_nod_pt, unsigned &loc_p, unsigned &node_index, FiniteElement *const &new_el_pt, Mesh *const &external_mesh_pt, Problem *problem_pt) |
| 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 | oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper (Node *&new_master_nod_pt, Node *&nod_pt, unsigned &loc_p, Mesh *const &external_mesh_pt, Problem *problem_pt) |
| Helper function which constructs a new external halo master node with the information sent from the haloed process. More...
|
|
void | oomph::Multi_domain_functions::get_dim_helper (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt) |
| Helper function that computes the dimension of the elements within each of the specified meshes (and checks they are the same). Stores result in Dim. More...
|
|
void | oomph::Multi_domain_functions::clean_up () |
| Helper function that clears all the information used during the external storage creation. More...
|
|