![]() |
|
Base class for all sample point containers. More...
#include <sample_point_container.h>
Inheritance diagram for SamplePointContainer:Public Member Functions | |
| SamplePointContainer (Mesh *mesh_pt, const Vector< std::pair< double, double >> &min_and_max_coordinates, const bool &use_eulerian_coordinates_during_setup, const bool &ignore_halo_elements_during_locate_zeta_search, const unsigned &nsample_points_generated_per_element) | |
| Constructor. More... | |
| SamplePointContainer () | |
| SamplePointContainer (const SamplePointContainer &data)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const SamplePointContainer &)=delete |
| Broken assignment operator. More... | |
| virtual | ~SamplePointContainer () |
| Virtual destructor. More... | |
| virtual void | locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s)=0 |
| virtual unsigned & | total_number_of_sample_points_visited_during_locate_zeta_from_top_level () |
| virtual unsigned | total_number_of_sample_points_computed_recursively () const =0 |
| virtual unsigned | ndim_zeta () const =0 |
| Dimension of the zeta ( = dim of local coordinate of elements) More... | |
| Mesh * | mesh_pt () const |
| Pointer to mesh from whose FiniteElements sample points are created. More... | |
| const std::pair< double, double > & | min_and_max_coordinates (const unsigned &i) const |
| const Vector< std::pair< double, double > > & | min_and_max_coordinates () const |
| bool | use_eulerian_coordinates_during_setup () const |
| unsigned & | nsample_points_generated_per_element () |
| "Measure of" number of sample points generated in each element More... | |
| double & | max_search_radius () |
Static Public Attributes | |
| static std::ofstream | Visited_sample_points_file |
| File to record sequence of visited sample points in. More... | |
| static bool | Always_fail_elemental_locate_zeta = false |
| Boolean flag to make to make locate zeta fail. More... | |
| static bool | Use_equally_spaced_interior_sample_points = true |
| static bool | Enable_timing_of_setup = false |
| Time setup? More... | |
| static double | Percentage_offset = 5.0 |
| Offset of sample point container boundaries beyond max/min coords. More... | |
Protected Member Functions | |
| void | setup_min_and_max_coordinates () |
| Setup the min and max coordinates for the mesh, in each dimension. More... | |
Protected Attributes | |
| Mesh * | Mesh_pt |
| Pointer to mesh from whose FiniteElements sample points are created. More... | |
| Vector< std::pair< double, double > > | Min_and_max_coordinates |
| bool | Use_eulerian_coordinates_during_setup |
| unsigned | Nsample_points_generated_per_element |
| "Measure of" number of sample points generated in each element More... | |
| unsigned | Total_number_of_sample_points_visited_during_locate_zeta_from_top_level |
| double | Max_search_radius |
Base class for all sample point containers.
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
|
inline |
Constructor.
References Max_search_radius.
|
inline |
Broken default constructor; needed for broken copy constructors. Don't call. It will die.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
delete |
Broken copy constructor.
|
pure virtual |
Find sub-GeomObject (finite element) and the local coordinate s within it that contains point with global coordinate zeta. sub_geom_object_pt=0 if point can't be found.
Implemented in NonRefineableBinArray, and RefineableBinArray.
Referenced by oomph::MeshAsGeomObject::locate_zeta().
|
inline |
Set maximum search radius for locate zeta. This is initialised do DBL_MAX so we brutally search through the entire bin structure, no matter how big it is until we've found the required point (or failed to do so. This can be VERY costly with fine meshes. Here the user takes full responsibility and states that we have no chance in hell to find the required point in a bin whose closest vertex is further than the specified max search radius.
References Max_search_radius.
Referenced by RefineableBinArray::locate_zeta(), and oomph::LineVisualiser::setup().
|
inline |
|
inline |
Vector of pair of doubles for min and maximum coordinates. min (first) and max. (second) coordinates
References Min_and_max_coordinates.
Referenced by RefineableBinArray::output_neighbouring_bins().
|
inline |
Pair of doubles for min and maximum coordinates in i-th direction: min (first) and max. (second) coordinates
References i, and Min_and_max_coordinates.
Referenced by oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
pure virtual |
Dimension of the zeta ( = dim of local coordinate of elements)
Implemented in BinArray.
|
inline |
"Measure of" number of sample points generated in each element
References Nsample_points_generated_per_element.
|
delete |
Broken assignment operator.
|
protected |
Setup the min and max coordinates for the mesh, in each dimension.
Helper function to compute the min and max coordinates for the mesh, in each dimension
References e(), i, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by NonRefineableBinArray::NonRefineableBinArray(), and RefineableBinArray::RefineableBinArray().
|
pure virtual |
Total number of sample points in sample point container, possibly computed recursively.
Implemented in NonRefineableBinArray, and RefineableBinArray.
|
inlinevirtual |
Counter to keep track of how many sample points we've visited during top level call to locate_zeta. Virtual so it can be overloaded for different versions.
Reimplemented in RefineableBinArray.
References Total_number_of_sample_points_visited_during_locate_zeta_from_top_level.
Referenced by NonRefineableBinArray::locate_zeta().
|
inline |
Use Eulerian coordinates (i.e. interpolated_x) rather than zeta itself (i.e. interpolated_zeta) to identify point.
References Use_eulerian_coordinates_during_setup.
Referenced by NonRefineableBinArray::locate_zeta().
|
static |
Boolean flag to make to make locate zeta fail.
Boolean flag to make to make locate zeta fail. Used for debugging/ illustration of search procedures.
Referenced by check_locate_zeta(), RefineableBin::locate_zeta(), RefineableBinArray::locate_zeta(), and NonRefineableBinArray::locate_zeta().
|
static |
Time setup?
Referenced by NonRefineableBinArray::NonRefineableBinArray(), and RefineableBinArray::RefineableBinArray().
|
protected |
Max radius beyond which we stop searching the bin. Initialised to DBL_MAX so keep going until the point is found or until we've searched every single bin. Overwriting this means we won't search in bins whose closest vertex is at a distance greater than Max_search_radius from the point to be located.
Referenced by NonRefineableBinArray::locate_zeta(), max_search_radius(), and SamplePointContainer().
|
protected |
Pointer to mesh from whose FiniteElements sample points are created.
Referenced by RefineableBinArray::fill_bin_array(), NonRefineableBinArray::fill_bin_array(), mesh_pt(), NonRefineableBinArray::NonRefineableBinArray(), and RefineableBinArray::RefineableBinArray().
Vector of pairs of doubles for min and maximum coordinates. Call: Min_and_max_coordinates[j] gives me the pair of min (first) and max. (second) coordinates in the j-th coordinate direction.
Referenced by BinArray::coords_to_bin_index(), BinArray::coords_to_vectorial_bin_index(), RefineableBinArray::fill_bin_array(), NonRefineableBinArray::fill_bin_array(), NonRefineableBinArray::get_bin(), RefineableBinArray::get_bin_boundaries(), NonRefineableBinArray::get_bin_vertices(), RefineableBinArray::locate_zeta(), NonRefineableBinArray::locate_zeta(), min_and_max_coordinates(), NonRefineableBinArray::NonRefineableBinArray(), RefineableBinArray::output_neighbouring_bins(), BinArray::profile_get_neighbouring_bins_helper(), and RefineableBinArray::RefineableBinArray().
|
protected |
"Measure of" number of sample points generated in each element
Referenced by RefineableBinArray::fill_bin_array(), NonRefineableBinArray::fill_bin_array(), and nsample_points_generated_per_element().
|
static |
Offset of sample point container boundaries beyond max/min coords.
Referenced by NonRefineableBinArray::fill_bin_array().
|
protected |
Counter to keep track of how many sample points we've visited during top level call to locate_zeta
Referenced by RefineableBinArray::locate_zeta(), NonRefineableBinArray::locate_zeta(), RefineableBinArray::RefineableBinArray(), total_number_of_sample_points_visited_during_locate_zeta_from_top_level(), and RefineableBinArray::total_number_of_sample_points_visited_during_locate_zeta_from_top_level().
|
static |
Use equally spaced sample points? (otherwise vertices are sampled repeatedly
Referenced by RefineableBinArray::fill_bin_array(), NonRefineableBinArray::fill_bin_array(), and RefineableBin::locate_zeta().
|
protected |
Use Eulerian coordinates (i.e. interpolated_x) rather than zeta itself (i.e. interpolated_zeta) to identify point.
Referenced by RefineableBinArray::fill_bin_array(), NonRefineableBinArray::fill_bin_array(), NonRefineableBinArray::output_bins(), and use_eulerian_coordinates_during_setup().
|
static |
File to record sequence of visited sample points in.
File to record sequence of visited sample points in. Used for debugging/ illustration of search procedures.
/////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// SamplePointContainer base class /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
Referenced by check_locate_zeta(), RefineableBin::locate_zeta(), and NonRefineableBinArray::locate_zeta().