26 #ifndef OOMPH_SAMPLE_POINT_CONTAINER_HEADER
27 #define OOMPH_SAMPLE_POINT_CONTAINER_HEADER
31 #include <CGAL/Cartesian_d.h>
32 #include <CGAL/Search_traits_d.h>
33 #include <CGAL/Search_traits_adapter.h>
34 #include <boost/iterator/zip_iterator.hpp>
35 #include <CGAL/Orthogonal_k_neighbor_search.h>
113 const unsigned& bin_index_in_bin_array)
136 const Vector<double>& zeta_coordinates);
142 GeomObject*& sub_geom_object_pt,
146 void output(std::ofstream& outfile,
const bool& don_t_recurse =
false);
189 const Vector<std::pair<double, double>>& min_and_max_coordinates);
194 Vector<std::pair<double, double>>& min_and_max_coordinates);
213 const bool& ignore_halo_elements_during_locate_zeta_search,
220 Ignore_halo_elements_during_locate_zeta_search(
221 ignore_halo_elements_during_locate_zeta_search),
236 throw OomphLibError(
"Broken default constructor. Don't call this!",
254 GeomObject*& sub_geom_object_pt,
255 Vector<double>&
s) = 0;
283 const unsigned&
i)
const
299 bool ignore_halo_elements_during_locate_zeta_search()
const
301 return Ignore_halo_elements_during_locate_zeta_search;
372 bool Ignore_halo_elements_during_locate_zeta_search;
409 const bool& ignore_halo_elements_during_locate_zeta_search,
414 ignore_halo_elements_during_locate_zeta_search,
428 throw OomphLibError(
"Broken default constructor. Don't call this!",
449 Vector<unsigned>& neighbouring_bin_index,
450 const bool& use_old_version =
true);
464 Vector<unsigned>& bin_index);
474 virtual unsigned nbin()
const = 0;
536 for (
unsigned i = 0;
i <
n;
i++)
578 unsigned n = sample_point_pt.size();
579 for (
unsigned i = 0;
i <
n;
i++)
582 Vector<double>
zeta(n_dim);
585 unsigned e = sample_point_pt[
i]->element_index_in_mesh();
586 FiniteElement* el_pt =
Mesh_pt->finite_element_pt(
e);
589 unsigned j = sample_point_pt[
i]->sample_point_index_in_element();
590 Vector<double>
s(n_dim);
591 bool use_equally_spaced_interior_sample_points =
596 use_equally_spaced_interior_sample_points);
599 el_pt->interpolated_x(
s,
zeta);
603 el_pt->interpolated_zeta(
s,
zeta);
613 const Vector<double>&
zeta)
619 if (
Bin_pt[bin_index] == 0)
624 Bin_pt[bin_index]->add_sample_point(new_sample_point_pt,
zeta);
631 GeomObject*& sub_geom_object_pt,
637 const unsigned& bin_index,
675 unsigned n_bin =
Bin_pt.size();
676 for (
unsigned i = 0;
i < n_bin;
i++)
691 std::ofstream& outfile);
755 const unsigned& n_element);
823 SamplePointContainerParameters* bin_array_parameters_pt);
841 GeomObject*& sub_geom_object_pt,
847 const unsigned n_lagrangian =
ndim_zeta();
849 for (
unsigned i = 1;
i < n_lagrangian;
i++)
898 unsigned& max_n_entry,
899 unsigned& min_n_entry,
900 unsigned& tot_n_entry,
901 unsigned& n_empty)
const;
914 Vector<Vector<double>>& bin_vertex);
919 void get_bin(
const Vector<double>&
zeta,
int& bin_number);
925 const Vector<double>&
zeta,
927 Vector<std::pair<FiniteElement*, Vector<double>>>& sample_point_pairs);
930 Vector<Vector<std::pair<FiniteElement*, Vector<double>>>>
bin_content()
const
932 Vector<Vector<std::pair<FiniteElement*, Vector<double>>>> all_vals;
957 std::ofstream outfile;
1011 SparseVector<Vector<std::pair<FiniteElement*, Vector<double>>>>
1033 #ifdef OOMPH_HAS_CGAL
1043 CGALSamplePointContainer(
1044 SamplePointContainerParameters* sample_point_container_parameters_pt);
1047 CGALSamplePointContainer(
const CGALSamplePointContainer&
data) =
delete;
1050 void operator=(
const CGALSamplePointContainer&) =
delete;
1053 virtual ~CGALSamplePointContainer()
1055 unsigned n = Sample_point_pt.size();
1056 for (
unsigned i = 0;
i <
n;
i++)
1058 delete Sample_point_pt[
i];
1059 Sample_point_pt[
i] = 0;
1061 delete CGAL_tree_d_pt;
1067 unsigned& first_sample_point_to_actually_lookup_during_locate_zeta()
1069 return First_sample_point_to_actually_lookup_during_locate_zeta;
1074 unsigned& last_sample_point_to_actually_lookup_during_locate_zeta()
1076 return Last_sample_point_to_actually_lookup_during_locate_zeta;
1087 unsigned& multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta()
1089 return Multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta;
1095 unsigned& initial_last_sample_point_to_actually_lookup_during_locate_zeta()
1097 return Initial_last_sample_point_to_actually_lookup_during_locate_zeta;
1104 void locate_zeta(
const Vector<double>&
zeta,
1105 GeomObject*& sub_geom_object_pt,
1113 void limited_locate_zeta(
1114 const Vector<double>&
zeta,
1115 const unsigned& max_sample_points_for_newton_based_search,
1116 GeomObject*& sub_geom_object_pt,
1121 unsigned ndim_zeta()
const
1127 unsigned total_number_of_sample_points_computed_recursively()
const;
1131 double get_sample_points();
1137 typedef CGAL::Cartesian_d<double> Kernel_d;
1138 typedef Kernel_d::Point_d Point_d;
1139 typedef boost::tuple<Point_d, SamplePoint*> Point_d_and_pointer;
1140 typedef CGAL::Search_traits_d<Kernel_d> Traits_base_d;
1141 typedef CGAL::Search_traits_adapter<
1142 Point_d_and_pointer,
1143 CGAL::Nth_of_tuple_property_map<0, Point_d_and_pointer>,
1146 typedef CGAL::Orthogonal_k_neighbor_search<Traits_d> K_neighbor_search_d;
1149 Vector<Point_d> CGAL_sample_point_zeta_d;
1152 K_neighbor_search_d::Tree* CGAL_tree_d_pt;
1157 Vector<SamplePoint*> Sample_point_pt;
1161 unsigned First_sample_point_to_actually_lookup_during_locate_zeta;
1165 unsigned Last_sample_point_to_actually_lookup_during_locate_zeta;
1175 Multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta;
1180 unsigned Initial_last_sample_point_to_actually_lookup_during_locate_zeta;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Array< double, 1, 3 > e(1./3., 0.5, 2.)
int data[]
Definition: Map_placement_new.cpp:1
Base class for all bin arrays.
Definition: sample_point_container.h:402
unsigned dimension_of_bin_array(const unsigned &i) const
Number of bins in coordinate direction i.
Definition: sample_point_container.h:486
unsigned max_bin_dimension() const
Max. bin dimension (number of bins in coordinate directions)
Definition: sample_point_container.cc:659
Vector< unsigned > dimensions_of_bin_array() const
Definition: sample_point_container.h:494
virtual void output_bins(std::ofstream &outfile)=0
Output bins (boundaries and number of sample points in them)
void get_neighbouring_bins_helper(const unsigned &bin_index, const unsigned &radius, Vector< unsigned > &neighbouring_bin_index, const bool &use_old_version=true)
Definition: sample_point_container.cc:1350
unsigned dimensions_of_bin_array(const unsigned &i) const
Number of bins in specified coordinate direction.
Definition: sample_point_container.h:501
unsigned ndim_zeta() const
Dimension of the zeta ( = dim of local coordinate of elements)
Definition: sample_point_container.h:480
Vector< unsigned > Dimensions_of_bin_array
Number of bins in each coordinate direction.
Definition: sample_point_container.h:508
virtual unsigned nbin() const =0
virtual ~BinArray()
Virtual destructor.
Definition: sample_point_container.h:440
BinArray(const BinArray &data)=delete
Broken copy constructor.
BinArray()
Definition: sample_point_container.h:425
unsigned coords_to_bin_index(const Vector< double > &zeta)
Definition: sample_point_container.cc:1840
void profile_get_neighbouring_bins_helper()
Definition: sample_point_container.cc:1227
BinArray(Mesh *mesh_pt, const Vector< std::pair< double, double >> &min_and_max_coordinates, const Vector< unsigned > &dimensions_of_bin_array, const bool &use_eulerian_coordinates_during_setup, const bool &ignore_halo_elements_during_locate_zeta_search, const unsigned &nsample_points_generated_per_element)
Constructor.
Definition: sample_point_container.h:405
void operator=(const BinArray &)=delete
Broken assignment operator.
void coords_to_vectorial_bin_index(const Vector< double > &zeta, Vector< unsigned > &bin_index)
Get "coordinates" of bin that contains specified zeta.
Definition: sample_point_container.cc:1969
virtual void output_bin_vertices(std::ofstream &outfile)=0
Output bin vertices (allowing display of bin boundaries as zones).
NonRefineableBinArray class.
Definition: sample_point_container.h:819
static bool Already_warned_about_small_number_of_bin_cells
Definition: sample_point_container.h:991
void get_bin(const Vector< double > &zeta, int &bin_number)
Definition: sample_point_container.cc:2794
void get_bin(const Vector< double > &zeta, int &bin_number, Vector< std::pair< FiniteElement *, Vector< double >>> &sample_point_pairs)
static bool Suppress_warning_about_large_total_number_of_bins
Boolean to supppress warnings about large number of bins.
Definition: sample_point_container.h:976
void fill_bin_array()
Fill the bin array with sample points from FiniteElements stored in mesh.
Definition: sample_point_container.cc:2402
void create_bins_of_objects()
unsigned n_spiral_chunk() const
Number of spirals to be searched in one go const version.
Definition: sample_point_container.h:866
const std::map< unsigned, Vector< std::pair< FiniteElement *, Vector< double > > > > * get_all_bins_content() const
Get the contents of all bins in vector.
Definition: sample_point_container.h:938
unsigned Nspiral_chunk
Number of spirals to be searched in one go.
Definition: sample_point_container.h:1025
unsigned Max_spiral_level
Definition: sample_point_container.h:1016
static unsigned long Total_nbin_cells_counter
Definition: sample_point_container.h:967
void operator=(const NonRefineableBinArray &)=delete
Broken assignment operator.
void locate_zeta(const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s)
Definition: sample_point_container.cc:3088
static unsigned Threshold_for_elements_per_bin_warning
Definition: sample_point_container.h:984
unsigned Current_min_spiral_level
Current min. spiralling level.
Definition: sample_point_container.h:1019
void get_bin_vertices(const unsigned &i_bin, Vector< Vector< double >> &bin_vertex)
Definition: sample_point_container.cc:2912
unsigned Current_max_spiral_level
Current max. spiralling level.
Definition: sample_point_container.h:1022
static bool Suppress_warning_about_small_number_of_bins
Boolean to supppress warnings about small number of bins.
Definition: sample_point_container.h:987
void fill_bin_by_diffusion(const unsigned &bin_diffusion_radius=1)
Definition: sample_point_container.cc:2667
void output_bins(std::string &filename)
Output bins.
Definition: sample_point_container.h:955
unsigned total_number_of_sample_points_computed_recursively() const
Compute total number of sample points recursively.
Definition: sample_point_container.cc:2284
NonRefineableBinArray(const NonRefineableBinArray &data)=delete
Broken copy constructor.
void output_bin_vertices(std::ofstream &outfile)
Output bin vertices (allowing display of bins as zones).
Definition: sample_point_container.cc:2357
static bool Already_warned_about_large_number_of_bin_cells
Definition: sample_point_container.h:980
SparseVector< Vector< std::pair< FiniteElement *, Vector< double > > > > Bin_object_coord_pairs
Storage for paired objects and coords in each bin.
Definition: sample_point_container.h:1012
void output_bins(std::ofstream &outfile)
Output bins.
Definition: sample_point_container.cc:2308
Vector< Vector< std::pair< FiniteElement *, Vector< double > > > > bin_content() const
Get the contents of all bins in vector.
Definition: sample_point_container.h:930
static unsigned Default_n_bin_1d
Default number of bins (in each coordinate direction)
Definition: sample_point_container.h:860
unsigned & max_spiral_level()
Definition: sample_point_container.h:879
unsigned & current_max_spiral_level()
Access function to current max. spiral level.
Definition: sample_point_container.h:891
unsigned & n_spiral_chunk()
Number of spirals to be searched in one go.
Definition: sample_point_container.h:872
void get_fill_stats(unsigned &n_bin, unsigned &max_n_entry, unsigned &min_n_entry, unsigned &tot_n_entry, unsigned &n_empty) const
Provide some stats on the fill level of the associated bin.
Definition: sample_point_container.cc:2629
void flush_bins_of_objects()
Definition: sample_point_container.h:1004
static unsigned long Threshold_for_total_bin_cell_number_warning
Definition: sample_point_container.h:973
NonRefineableBinArray(SamplePointContainerParameters *bin_array_parameters_pt)
Constructor.
Definition: sample_point_container.cc:2169
unsigned & current_min_spiral_level()
Access function to current min. spiral level.
Definition: sample_point_container.h:885
double min_distance(const unsigned &i_bin, const Vector< double > &zeta)
Definition: sample_point_container.cc:3057
unsigned nbin() const
Total number of bins (empty or not)
Definition: sample_point_container.h:845
~NonRefineableBinArray()
Destructor:
Definition: sample_point_container.h:826
RefineableBinArray class.
Definition: sample_point_container.h:521
unsigned Multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta
Definition: sample_point_container.h:800
unsigned depth() const
Depth of the hierarchical bin_array.
Definition: sample_point_container.h:641
unsigned & max_depth()
Max depth of the hierarchical bin_array.
Definition: sample_point_container.h:653
~RefineableBinArray()
Destructor.
Definition: sample_point_container.h:533
Vector< RefineableBin * > Bin_pt
Vector of pointers to constituent RefineableBins.
Definition: sample_point_container.h:759
unsigned max_depth() const
Max depth of the hierarchical bin_array; const version.
Definition: sample_point_container.h:647
unsigned Max_depth
Max depth of the hierarchical bin_array.
Definition: sample_point_container.h:771
unsigned total_number_of_sample_points_computed_recursively() const
Compute total number of sample points recursively.
Definition: sample_point_container.cc:1820
unsigned First_sample_point_to_actually_lookup_during_locate_zeta
Definition: sample_point_container.h:785
void fill_bin_array(const Vector< SamplePoint * > &sample_point_pt)
Fill the bin array with specified SamplePoints.
Definition: sample_point_container.h:574
bool bin_array_is_recursive() const
Is the BinArray recursive?
Definition: sample_point_container.h:659
static unsigned Default_n_bin_1d
Default number of bins (in each coordinate direction)
Definition: sample_point_container.h:568
void operator=(const RefineableBinArray &)=delete
Broken assignment operator.
void add_sample_point(SamplePoint *new_sample_point_pt, const Vector< double > &zeta)
Add specified SamplePoint to RefineableBinArray.
Definition: sample_point_container.h:612
void locate_zeta(const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s)
Definition: sample_point_container.cc:2002
unsigned & initial_last_sample_point_to_actually_lookup_during_locate_zeta()
Definition: sample_point_container.h:741
unsigned & total_number_of_sample_points_visited_during_locate_zeta_from_top_level()
Definition: sample_point_container.h:696
unsigned nbin() const
Number of bins (not taking recursion into account)
Definition: sample_point_container.h:559
RefineableBinArray * Root_bin_array_pt
Pointer to root bin array.
Definition: sample_point_container.h:778
unsigned Depth
Definition: sample_point_container.h:768
unsigned Max_number_of_sample_point_per_bin
Definition: sample_point_container.h:775
RefineableBinArray * root_bin_array_pt() const
Root bin array.
Definition: sample_point_container.h:547
void fill_bin_array()
Fill the bin array with sample points from FiniteElements stored in mesh.
Definition: sample_point_container.cc:1882
void output_bin_vertices(std::ofstream &outfile)
Output bin vertices (allowing display of bins as zones).
Definition: sample_point_container.cc:1027
void output_neighbouring_bins(const unsigned &bin_index, const unsigned &radius, std::ofstream &outfile)
Output neighbouring bins at given "radius" of the specified bin.
Definition: sample_point_container.cc:1044
unsigned Last_sample_point_to_actually_lookup_during_locate_zeta
Definition: sample_point_container.h:790
unsigned & first_sample_point_to_actually_lookup_during_locate_zeta()
Definition: sample_point_container.h:712
void output_bins(std::ofstream &outfile)
Output bins.
Definition: sample_point_container.h:672
void get_bin_boundaries(const unsigned &bin_index, Vector< std::pair< double, double >> &min_and_max_coordinates)
Definition: sample_point_container.cc:995
void create_sample_points_from_element(FiniteElement *const element_pt, const unsigned &n_element)
unsigned Initial_last_sample_point_to_actually_lookup_during_locate_zeta
Definition: sample_point_container.h:806
RefineableBin * bin_pt(const unsigned &i) const
Pointer to i-th bin; can be null if bin is empty.
Definition: sample_point_container.h:553
unsigned & last_sample_point_to_actually_lookup_during_locate_zeta()
Definition: sample_point_container.h:720
unsigned & multiplier_for_max_sample_point_to_actually_lookup_during_locate_zeta()
Definition: sample_point_container.h:732
RefineableBinArray(SamplePointContainerParameters *bin_array_parameters_pt)
Constructor.
Definition: sample_point_container.cc:841
unsigned max_number_of_sample_point_per_bin() const
Definition: sample_point_container.h:666
RefineableBinArray(const RefineableBinArray &data)=delete
Broken copy constructor.
bool Bin_array_is_recursive
Definition: sample_point_container.h:763
Definition: sample_point_container.h:107
void output_bins(std::ofstream &outfile)
Output bin vertices (allowing display of bins as zones).
unsigned nsample_points_in_bin()
Number of sample points stored in bin.
Definition: sample_point_container.h:155
void output(std::ofstream &outfile, const bool &don_t_recurse=false)
Output bin; x,[y,[z]],n_sample_points.
Definition: sample_point_container.cc:181
void add_sample_point(SamplePoint *new_sample_point_pt, const Vector< double > &zeta_coordinates)
Add a new sample point to RefineableBin.
Definition: sample_point_container.cc:392
void get_bin_boundaries(Vector< std::pair< double, double >> &min_and_max_coordinates)
Definition: sample_point_container.cc:603
RefineableBinArray * Sub_bin_array_pt
Pointer to a possible sub-BinArray. Null by default.
Definition: sample_point_container.h:174
void output_bin_vertices(std::ofstream &outfile)
Output bin vertices (allowing display of bins as zones).
Definition: sample_point_container.cc:291
unsigned total_number_of_sample_points_computed_recursively() const
Compute total number of sample points recursively.
Definition: sample_point_container.cc:65
unsigned Bin_index_in_bin_array
Index of bin in its bin array.
Definition: sample_point_container.h:180
~RefineableBin()
Destructor.
Definition: sample_point_container.cc:42
void locate_zeta(const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s)
Definition: sample_point_container.cc:438
Vector< SamplePoint * > * Sample_point_pt
Definition: sample_point_container.h:171
void operator=(const RefineableBin &)=delete
Broken assignment operator.
RefineableBin(RefineableBinArray *bin_array_pt, const unsigned &bin_index_in_bin_array)
Definition: sample_point_container.h:112
void make_sub_bin_array(const Vector< std::pair< double, double >> &min_and_max_coordinates)
Definition: sample_point_container.cc:91
RefineableBinArray * Bin_array_pt
Pointer to the bin array which "owns" this RefineableBin.
Definition: sample_point_container.h:177
RefineableBin(const RefineableBin &data)=delete
Broken copy constructor.
Base class for all sample point containers.
Definition: sample_point_container.h:206
static bool Always_fail_elemental_locate_zeta
Boolean flag to make to make locate zeta fail.
Definition: sample_point_container.h:339
static double Percentage_offset
Offset of sample point container boundaries beyond max/min coords.
Definition: sample_point_container.h:349
Vector< std::pair< double, double > > Min_and_max_coordinates
Definition: sample_point_container.h:363
static bool Enable_timing_of_setup
Time setup?
Definition: sample_point_container.h:346
unsigned & nsample_points_generated_per_element()
"Measure of" number of sample points generated in each element
Definition: sample_point_container.h:314
const std::pair< double, double > & min_and_max_coordinates(const unsigned &i) const
Definition: sample_point_container.h:282
SamplePointContainer()
Definition: sample_point_container.h:233
const Vector< std::pair< double, double > > & min_and_max_coordinates() const
Definition: sample_point_container.h:290
bool use_eulerian_coordinates_during_setup() const
Definition: sample_point_container.h:308
SamplePointContainer(const SamplePointContainer &data)=delete
Broken copy constructor.
virtual ~SamplePointContainer()
Virtual destructor.
Definition: sample_point_container.h:248
unsigned Nsample_points_generated_per_element
"Measure of" number of sample points generated in each element
Definition: sample_point_container.h:377
unsigned Total_number_of_sample_points_visited_during_locate_zeta_from_top_level
Definition: sample_point_container.h:382
bool Use_eulerian_coordinates_during_setup
Definition: sample_point_container.h:367
Mesh * Mesh_pt
Pointer to mesh from whose FiniteElements sample points are created.
Definition: sample_point_container.h:357
double Max_search_radius
Definition: sample_point_container.h:389
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.
Definition: sample_point_container.h:209
virtual unsigned total_number_of_sample_points_computed_recursively() const =0
virtual void locate_zeta(const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s)=0
static std::ofstream Visited_sample_points_file
File to record sequence of visited sample points in.
Definition: sample_point_container.h:335
double & max_search_radius()
Definition: sample_point_container.h:327
Mesh * mesh_pt() const
Pointer to mesh from whose FiniteElements sample points are created.
Definition: sample_point_container.h:275
void operator=(const SamplePointContainer &)=delete
Broken assignment operator.
virtual unsigned & total_number_of_sample_points_visited_during_locate_zeta_from_top_level()
Definition: sample_point_container.h:261
virtual unsigned ndim_zeta() const =0
Dimension of the zeta ( = dim of local coordinate of elements)
void setup_min_and_max_coordinates()
Setup the min and max coordinates for the mesh, in each dimension.
Definition: sample_point_container.cc:684
static bool Use_equally_spaced_interior_sample_points
Definition: sample_point_container.h:343
Definition: sample_point_container.h:53
SamplePoint(const unsigned &element_index_in_mesh, const unsigned &sample_point_index_in_element)
Definition: sample_point_container.h:57
void operator=(const SamplePoint &)=delete
Broken assignment operator.
SamplePoint(const SamplePoint &data)=delete
Broken copy constructor.
unsigned element_index_in_mesh() const
Access function to the index of finite element in its mesh.
Definition: sample_point_container.h:71
unsigned Sample_point_index_in_element
Index of the sample point within element.
Definition: sample_point_container.h:88
unsigned Element_index_in_mesh
Index of finite element in its mesh.
Definition: sample_point_container.h:85
unsigned sample_point_index_in_element() const
Index of sample point within element.
Definition: sample_point_container.h:77
Matrix< Type, Size, 1 > Vector
\cpp11 SizeĆ1 vector of type Type.
Definition: Eigen/Eigen/src/Core/Matrix.h:515
RealScalar s
Definition: level1_cplx_impl.h:130
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
string filename
Definition: MergeRestartFiles.py:39
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2