![]() |
|
Enumerations | |
enum | { New , Exists , Not_found } |
Enumerators for element status in location procedure. More... | |
Functions | |
void | 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) |
void | get_dim_helper (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt) |
void | clean_up () |
bool | first_closer_than_second (const std::pair< FiniteElement *, Vector< double >> &p1, const std::pair< FiniteElement *, Vector< double >> &p2) |
template<class BULK_ELEMENT , unsigned DIM> | |
void | 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) |
/ Templated helper functions for multi-domain methods using locate_zeta More... | |
template<class BULK_ELEMENT , unsigned DIM> | |
void | 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) |
template<class ELEMENT_0 , class ELEMENT_1 > | |
void | 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) |
template<class EXT_ELEMENT > | |
void | setup_multi_domain_interaction (Problem *problem_pt, Mesh *const &mesh_pt, Mesh *const &external_mesh_pt, const unsigned &interaction_index=0) |
template<class EXT_ELEMENT , class FACE_ELEMENT_GEOM_OBJECT > | |
void | 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) |
template<class EXT_ELEMENT , class FACE_ELEMENT_GEOM_OBJECT > | |
void | 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) |
template<class EXT_ELEMENT , class GEOM_OBJECT > | |
void | 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 | 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... | |
Variables | |
std::ofstream | Doc_boundary_coordinate_file |
bool | Accept_failed_locate_zeta_in_setup_multi_domain_interaction = false |
unsigned | Dim |
Vector< Vector< unsigned > > | External_element_located |
Vector< double > | Flat_packed_zetas_not_found_locally |
Vector< double > | Received_flat_packed_zetas_to_be_found |
Vector< int > | Proc_id_plus_one_of_external_element |
Vector< unsigned > | Located_element_status |
Vector< double > | Flat_packed_located_coordinates |
Vector< double > | Flat_packed_doubles |
unsigned | Counter_for_flat_packed_doubles |
Vector< unsigned > | Flat_packed_unsigneds |
unsigned | Counter_for_flat_packed_unsigneds |
bool | Use_bulk_element_as_external = false |
bool | Allow_use_of_halo_elements_as_external_elements = true |
bool | Allow_use_of_halo_elements_as_external_elements_for_projection = true |
bool | Doc_timings = false |
Boolean to indicate whether to doc timings or not. More... | |
bool | Doc_stats = false |
bool | Doc_full_stats = false |
Vector< double > | Zeta_coords_for_further_away_comparison |
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.
This routine calls the locate_zeta routine (simultaneously on each processor for each individual processor's element set if necessary) and sets up the external (halo) element and node storage as necessary. The locate_zeta procedure here works for all multi-domain problems where either two meshes occupy the same physical space but have differing element types (e.g. a Boussinesq convection problem where AdvectionDiffusion elements interact with Navier-Stokes type elements) or two meshes interact along some boundary of the external mesh, represented by a "face mesh", such as an FSI problem.
Vector-based version operates simultaneously on the meshes contained in the vectors.
If it's is now zero then break out of the spirals loop
References Accept_failed_locate_zeta_in_setup_multi_domain_interaction, clean_up(), oomph::Problem::communicator_pt(), NonRefineableBinArray::current_max_spiral_level(), NonRefineableBinArray::current_min_spiral_level(), Global_Variables::Dim, oomph::FiniteElement::dim(), oomph::Missing_masters_functions::Doc_full_stats, oomph::Missing_masters_functions::Doc_stats, oomph::Missing_masters_functions::Doc_timings, e(), oomph::Mesh::element_pt(), External_element_located, oomph::ElementWithExternalElement::external_element_pt(), MergeRestartFiles::filename, oomph::Mesh::finite_element_pt(), RefineableBinArray::first_sample_point_to_actually_lookup_during_locate_zeta(), Flat_packed_zetas_not_found_locally, i, RefineableBinArray::initial_last_sample_point_to_actually_lookup_during_locate_zeta(), oomph::ElementWithExternalElement::initialise_external_element_storage(), oomph::FiniteElement::integral_pt(), oomph::FiniteElement::interpolated_x(), oomph::Integral::knot(), RefineableBinArray::last_sample_point_to_actually_lookup_during_locate_zeta(), locate_zeta_for_local_coordinates(), max, BinArray::max_bin_dimension(), min, RefineableBinArray::multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta(), oomph::OomphCommunicator::my_rank(), n, NonRefineableBinArray::n_spiral_chunk(), oomph::Node::ndim(), oomph::Mesh::nelement(), oomph::Mesh::nnode(), oomph::FiniteElement::node_pt(), oomph::OomphCommunicator::nproc(), oomph::Integral::nweight(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::FiniteElement::output(), BinArray::output_bins(), s, plotPSD::t, oomph::TimingHelpers::timer(), RefineableBinArray::total_number_of_sample_points_computed_recursively(), Use_bulk_element_as_external, oomph::UseNonRefineableBinArray, oomph::UseRefineableBinArray, and plotDoE::x.
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.
This routine calls the locate_zeta routine (simultaneously on each processor for each individual processor's element set if necessary) and sets up the external (halo) element and node storage as necessary. The locate_zeta procedure here works for all multi-domain problems where either two meshes occupy the same physical space but have differing element types (e.g. a Boussinesq convection problem where AdvectionDiffusion elements interact with Navier-Stokes type elements) or two meshes interact along some boundary of the external mesh, represented by a "face mesh", such as an FSI problem.
void oomph::Multi_domain_functions::clean_up | ( | ) |
Helper function that clears all the information used during the external storage creation
Helper function that clears all the intermediate information used during the external storage creation at the end of the procedure
References External_element_located, Flat_packed_doubles, Flat_packed_located_coordinates, Flat_packed_unsigneds, Flat_packed_zetas_not_found_locally, Located_element_status, Proc_id_plus_one_of_external_element, and Received_flat_packed_zetas_to_be_found.
Referenced by aux_setup_multi_domain_interaction().
bool oomph::Multi_domain_functions::first_closer_than_second | ( | const std::pair< FiniteElement *, Vector< double >> & | p1, |
const std::pair< FiniteElement *, Vector< double >> & | p2 | ||
) |
Comparison function for sorting entries in bin: Returns true if point identified by p1 (comprising pointer to finite element and vector of local coordinates within that element) is closer to Zeta_coords_for_further_away_comparison than p2
References Dim, i, oomph::FiniteElement::interpolated_zeta(), p1, s, Eigen::zeta(), and Zeta_coords_for_further_away_comparison.
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.
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.
References oomph::Problem::communicator_pt(), Dim, oomph::Mesh::element_pt(), oomph::Mesh::nelement(), oomph::OomphCommunicator::nproc(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by setup_multi_domain_interaction().
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
Helper function to locate "local" zeta coordinates This is the vector-based version which operates simultaenously on the meshes contained in the Vectors.
References Allow_use_of_halo_elements_as_external_elements, oomph::FaceElement::bulk_element_pt(), oomph::FiniteElement::dim(), Dim, e(), el_dim, oomph::ElementWithExternalElement::external_element_local_coord(), External_element_located, oomph::ElementWithExternalElement::external_element_pt(), Flat_packed_zetas_not_found_locally, oomph::FaceElement::get_local_coordinate_in_bulk(), i, oomph::FiniteElement::integral_pt(), oomph::FiniteElement::interpolated_zeta(), oomph::Integral::knot(), oomph::Integral::nweight(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and Use_bulk_element_as_external.
Referenced by aux_setup_multi_domain_interaction().
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.
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 |
||
) |
/ Templated helper functions for multi-domain methods using locate_zeta
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.
This is the vector-based version which deals with multiple bulk mesh boundaries at the same time.
References DIM, Doc_boundary_coordinate_file, e(), Eigen::placeholders::end, oomph::FiniteElement::get_s_plot(), i, oomph::FaceElement::interpolated_x(), oomph::FiniteElement::interpolated_zeta(), oomph::FiniteElement::nplot_points(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, s, oomph::FaceElement::set_boundary_number_in_bulk_mesh(), setup_multi_domain_interaction(), oomph::FiniteElement::tecplot_zone_string(), oomph::FiniteElement::write_tecplot_zone_footer(), plotDoE::x, and Eigen::zeta().
Referenced by oomph::FSI_functions::setup_fluid_load_info_for_solid_elements(), PressureWaveFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::setup_fsi(), CoatedDiskProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::setup_interaction(), CoatedSphereProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::setup_interaction(), and oomph::FSI_functions::setup_solid_elements_for_displacement_bc().
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.
mesh_pt
points to the mesh of ElemenWithExternalElements
for which the interaction is set up. In an FSI example, this mesh would contain the FSIWallElements
(either beam/shell elements or the FSISolidTractionElements
that apply the traction to a "bulk" solid mesh that is loaded by the fluid.)external_mesh_pt
points to the mesh that contains the elements of type EXT_ELEMENT that provide the "source" for the ElementWithExternalElements
. In an FSI example, this mesh would contain the "bulk" fluid elements.external_face_mesh_pt
points to the mesh of FaceElements
attached to the external_mesh_pt
. The mesh pointed to by external_face_mesh_pt
has the same dimension as mesh_pt
. The elements contained in external_face_mesh_pt
are of type FACE_ELEMENT_GEOM_OBJECT. In an FSI example, these elements are usually the FaceElementAsGeomObjects
(templated by the type of the "bulk" fluid elements to which they are attached) that define the FSI boundary of the fluid domain.This is the vector-based version which operates simultaneously on the meshes contained in the Vector arguments.
Function to set up the one-way multi-domain interaction for FSI-like problems.
mesh_pt
points to the mesh of ElemenWithExternalElements
for which the interaction is set up. In an FSI example, this mesh would contain the FSIWallElements
(either beam/shell elements or the FSISolidTractionElements
that apply the traction to a "bulk" solid mesh that is loaded by the fluid.)external_mesh_pt
points to the mesh that contains the elements of type EXT_ELEMENT that provide the "source" for the ElementWithExternalElements
. In an FSI example, this mesh would contain the "bulk" fluid elements.external_face_mesh_pt
points to the mesh of FaceElements
attached to the external_mesh_pt
. The mesh pointed to by external_face_mesh_pt
has the same dimension as mesh_pt
. The elements contained in external_face_mesh_pt
are of type FACE_ELEMENT_GEOM_OBJECT. In an FSI example, these elements are usually the FaceElementAsGeomObjects
(templated by the type of the "bulk" fluid elements to which they are attached) that define the FSI boundary of the fluid domain.Vector-based version operates simultaneously on the meshes contained in the vectors.
References Global_Variables::Dim, get_dim_helper(), i, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and Use_bulk_element_as_external.
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):
mesh_pt
points to the mesh of ElemenWithExternalElements for which the interaction is set up.external_mesh_pt
points to the mesh that contains the elements of type EXT_ELEMENT that act as "external elements" for the ElementWithExternalElements
in \ mesh_pt.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):
mesh_pt
points to the mesh of ElemenWithExternalElements for which the interaction is set up.external_mesh_pt
points to the mesh that contains the elements of type EXT_ELEMENT that act as "external elements" for the ElementWithExternalElements
in mesh_pt
.References Global_Variables::Dim, get_dim_helper(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and Use_bulk_element_as_external.
Referenced by MortaringValidationProblem< ELEMENT, NON_MORTAR_ELEMENT >::actions_after_adapt(), oomph::RefineableTetgenMesh< ELEMENT >::adapt(), ContactProblem< ELEMENT >::complete_problem_setup(), MortaringValidationProblem< ELEMENT, NON_MORTAR_ELEMENT >::MortaringValidationProblem(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::project(), and setup_bulk_elements_adjacent_to_face_mesh().
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.
mesh_pt
points to the mesh of ElemenWithExternalElements
for which the interaction is set up. In an FSI example, this mesh would contain the FSIWallElements
(either beam/shell elements or the FSISolidTractionElements
that apply the traction to a "bulk" solid mesh that is loaded by the fluid.)external_mesh_pt
points to the mesh that contains the elements of type EXT_ELEMENT that provide the "source" for the ElementWithExternalElements
. In an FSI example, this mesh would contain the "bulk" fluid elements.external_face_mesh_pt
points to the mesh of FaceElements
attached to the external_mesh_pt
. The mesh pointed to by external_face_mesh_pt
has the same dimension as mesh_pt
. The elements contained in external_face_mesh_pt
are of type FACE_ELEMENT_GEOM_OBJECT. In an FSI example, these elements are usually the FaceElementAsGeomObjects
(templated by the type of the "bulk" fluid elements to which they are attached) that define the FSI boundary of the fluid domain.References Global_Variables::Dim, get_dim_helper(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and Use_bulk_element_as_external.
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.
References oomph::Mesh::delete_all_external_storage().
Referenced by RefineableConvectionProblem< NST_ELEMENT, AD_ELEMENT >::actions_after_adapt(), RefineableDDConvectionProblem< NST_ELEMENT, AD_ELEMENT >::actions_after_adapt(), ConvectionProblem< NST_ELEMENT, AD_ELEMENT >::actions_after_distribute(), RefineableConvectionProblem< NST_ELEMENT, AD_ELEMENT >::actions_after_distribute(), and DDConvectionProblem< NST_ELEMENT, AD_ELEMENT >::DDConvectionProblem().
bool oomph::Multi_domain_functions::Accept_failed_locate_zeta_in_setup_multi_domain_interaction = false |
Boolean to indicate that failure in setup multi domain functions is acceptable; defaults to false. If set to true external element pointers are set to null for those elements for which external elements couldn't be located.
Referenced by aux_setup_multi_domain_interaction(), MortaringHelpers::setup_constraint_elements_at_nodes(), and MortaringValidationProblem< ELEMENT, NON_MORTAR_ELEMENT >::setup_multi_domain_interaction().
bool oomph::Multi_domain_functions::Allow_use_of_halo_elements_as_external_elements = true |
Boolean to indicate if we're allowed to use halo elements as external elements. Can drastically reduce the number of external halo elements – currently not aware of any problems therefore set to true by default but retention of this flag allows easy return to previous implementation.
Referenced by locate_zeta_for_local_coordinates().
bool oomph::Multi_domain_functions::Allow_use_of_halo_elements_as_external_elements_for_projection = true |
Indicate whether we are allowed to use halo elements as external elements for projection, possibly only required in parallel unstructured mesh generation during the projection stage. Default set to true
unsigned oomph::Multi_domain_functions::Counter_for_flat_packed_doubles |
Counter used when processing vector of flat-packed doubles – this is really "private" data, declared here to avoid having to pass it (and the associated array) between the various helper functions
unsigned oomph::Multi_domain_functions::Counter_for_flat_packed_unsigneds |
Counter used when processing vector of flat-packed unsigneds – this is really "private" data, declared here to avoid having to pass it (and the associated array) between the various helper functions
unsigned oomph::Multi_domain_functions::Dim |
Dimension of zeta tuples (set by get_dim_helper) – needed because we store the scalar coordinates in flat-packed form.
Referenced by first_closer_than_second(), get_dim_helper(), and locate_zeta_for_local_coordinates().
std::ofstream oomph::Multi_domain_functions::Doc_boundary_coordinate_file |
Output file to document the boundary coordinate along the mesh boundary of the bulk mesh during call to setup_bulk_elements_adjacent_to_face_mesh(...)
Referenced by PseudoElasticCollapsibleChannelProblem< FLUID_ELEMENT, SOLID_ELEMENT >::PseudoElasticCollapsibleChannelProblem(), setup_bulk_elements_adjacent_to_face_mesh(), and UnstructuredFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::UnstructuredFSIProblem().
bool oomph::Multi_domain_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
bool oomph::Multi_domain_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
Referenced by RefineableConvectionProblem< NST_ELEMENT, AD_ELEMENT >::RefineableConvectionProblem().
bool oomph::Multi_domain_functions::Doc_timings = false |
Boolean to indicate whether to doc timings or not.
Lookup scheme for whether a local element's integration point has had an external element assigned to it – essentially boolean. External_element_located[e][ipt] = {0,1} if external element for ipt-th integration in local element e {has not, has} been found. Used locally to ensure that we're not searching for the same elements over and over again when we go around the spirals.
Referenced by aux_setup_multi_domain_interaction(), clean_up(), and locate_zeta_for_local_coordinates().
Vector of flat-packed doubles to be communicated with other processors
Referenced by clean_up().
Vector of flat-packed local coordinates for zeta tuples that have been located
Referenced by clean_up().
Vector of flat-packed unsigneds to be communicated with other processors – this is really "private" data, declared here to avoid having to pass the array between the various helper functions
Referenced by clean_up().
Vector of flat-packed zeta coordinates for which the external element could not be found during current local search. These will be sent to the next processor in the ring-like parallel search. The zeta coordinates come in groups of Dim (scalar) coordinates.
Referenced by aux_setup_multi_domain_interaction(), clean_up(), and locate_zeta_for_local_coordinates().
Vector to indicate (to another processor) whether a located element (that will have to represented as an external halo element on that processor) should be newly created on that processor (2), already exists on that processor (1), or is not on the current processor either (0).
Referenced by clean_up().
Proc_id_plus_one_of_external_element[i] contains the processor id (plus one) of the processor on which the i-th zeta coordinate tuple received from elsewhere (in the order in which these are stored in Received_flat_packed_zetas_to_be_found) was located; it's zero if it wasn't found during the current stage of the ring-like parallel search.
Referenced by clean_up().
Vector of flat-packed zeta coordinates for which the external element could not be found on another processor and for which we're currently searching here. Whatever can't be found here, gets written into Flat_packed_zetas_not_found_locally and then passed on to the next processor during the ring-like parallel search. The zeta coordinates come in groups of Dim (scalar) coordinates.
Referenced by clean_up().
bool oomph::Multi_domain_functions::Use_bulk_element_as_external = false |
Boolean to indicate when to use the bulk element as the external element. Defaults to false, you must have set up FaceElements properly first in order for it to work
Referenced by aux_setup_multi_domain_interaction(), locate_zeta_for_local_coordinates(), and setup_multi_domain_interaction().
Vector of zeta coordinates that we're currently trying to locate; used in sorting of bin entries in further_away() comparison function
Referenced by first_closer_than_second().