27 #ifndef OOMPH_QUADTREE_HEADER
28 #define OOMPH_QUADTREE_HEADER
33 #include <oomph-lib-config.h>
50 namespace QuadTreeNames
164 bool& in_neighbouring_tree)
const;
174 const int& direction)
const;
193 std::ofstream& neighbours_file,
194 std::ofstream& neighbours_txt_file,
206 "Don't call an empty constructor for a QuadTree object",
241 bool& in_neighbouring_tree,
317 "Static member data hasn't been setup yet.\n";
318 error_message +=
"Call QuadTree::setup_static_data() before creating\n";
319 error_message +=
"any QuadTreeRoots\n";
326 using namespace QuadTreeNames;
357 using namespace QuadTreeNames;
359 if ((neighbour !=
S) && (neighbour !=
N) && (neighbour !=
W) &&
362 std::ostringstream error_message;
363 error_message <<
"The neighbour can only be N,S,E,W, not"
379 using namespace QuadTreeNames;
416 "Don't call an empty constructor for a QuadTreeForest object",
439 void check_all_neighbours(
DocInfo& doc_info);
443 void open_hanging_node_files(
DocInfo& doc_info,
454 void construct_north_equivalents();
457 void find_neighbours();
473 return dynamic_cast<QuadTreeRoot*
>(Trees_pt[
i]->neighbour_pt(direction));
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Definition: oomph_utilities.h:499
Definition: oomph_definitions.h:222
Definition: quadtree.h:409
QuadTreeForest(const QuadTreeForest &dummy)=delete
Broken copy constructor.
void operator=(const QuadTreeForest &)=delete
Broken assignment operator.
QuadTreeRoot * quadtree_pt(const unsigned &i)
Definition: quadtree.h:462
QuadTreeForest()
Default constructor (empty and broken)
Definition: quadtree.h:412
QuadTreeRoot * quad_neigh_pt(const unsigned &i, const int &direction)
Definition: quadtree.h:471
virtual ~QuadTreeForest()
Definition: quadtree.h:433
Definition: quadtree.h:293
void operator=(const QuadTreeRoot &)=delete
Broken assignment operator.
Vector< int > North_equivalent
Definition: quadtree.h:304
QuadTreeRoot(RefineableElement *const &object_pt)
Definition: quadtree.h:309
QuadTreeRoot(const QuadTreeRoot &dummy)=delete
Broken copy constructor.
int & north_equivalent(const int &neighbour)
Definition: quadtree.h:354
int direction_of_neighbour(QuadTreeRoot *quadtree_root_pt)
Definition: quadtree.h:377
Definition: quadtree.h:104
void operator=(const QuadTree &)=delete
Broken assignment operator.
static Vector< std::string > Direct_string
Translate (enumerated) directions into strings.
Definition: quadtree.h:199
static void doc_neighbours(Vector< Tree * > forest_nodes_pt, std::ofstream &neighbours_file, std::ofstream &neighbours_txt_file, double &max_error)
Definition: quadtree.cc:1402
static DenseMatrix< double > S_step
Definition: quadtree.h:255
void stick_neighbouring_leaves_into_vector(Vector< const QuadTree * > &tree_neighbouring_nodes, Vector< Vector< double >> &tree_neighbouring_s_lo, Vector< Vector< double >> &tree_neighbouring_s_hi, Vector< int > &tree_neighbouring_diff_level, const QuadTree *my_neigh_pt, const int &direction) const
Definition: quadtree.cc:751
static Vector< int > Reflect_edge
Get opposite edge, e.g. Reflect_edge[N]=S.
Definition: quadtree.h:258
QuadTree(RefineableElement *const &object_pt)
Definition: quadtree.h:216
static DenseMatrix< int > Reflect
Definition: quadtree.h:267
static DenseMatrix< int > Rotate
Definition: quadtree.h:271
static void setup_static_data()
Setup the static data, rotation and reflection schemes, etc.
Definition: quadtree.cc:120
QuadTree(const QuadTree &dummy)=delete
Broken copy constructor.
static DenseMatrix< double > S_base
Definition: quadtree.h:250
Tree * construct_son(RefineableElement *const &object_pt, Tree *const &father_pt, const int &son_type)
Definition: quadtree.h:118
QuadTree()
Default constructor (empty and broken)
Definition: quadtree.h:203
static DenseMatrix< int > S_direct
Definition: quadtree.h:282
unsigned self_test()
Definition: quadtree.cc:814
virtual ~QuadTree()
Definition: quadtree.h:108
static Vector< std::string > Colour
Colours for neighbours in various directions.
Definition: quadtree.h:246
QuadTree * gteq_edge_neighbour(const int &direction, Vector< unsigned > &translate_s, Vector< double > &s_lo, Vector< double > &s_hi, int &edge, int &diff_level, bool &in_neighbouring_tree) const
Definition: quadtree.cc:413
static DenseMatrix< bool > Is_adjacent
Definition: quadtree.h:263
QuadTree(RefineableElement *const &object_pt, Tree *const &father_pt, const int &son_type)
Definition: quadtree.h:224
static bool Static_data_has_been_setup
Bool indicating that static member data has been setup.
Definition: quadtree.h:232
static DenseMatrix< int > Rotate_angle
Definition: quadtree.h:277
Definition: refineable_elements.h:97
std::map< int, TreeRoot * > Neighbour_pt
Definition: tree.h:330
RefineableElement * object_pt() const
Definition: tree.h:88
Tree * father_pt() const
Return pointer to father: NULL if it's a root node.
Definition: tree.h:235
int son_type() const
Return son type.
Definition: tree.h:214
static const int OMEGA
Default value for an unassigned neighbour.
Definition: tree.h:262
@ N
Definition: constructor.cpp:22
double max_error
Definition: MortaringCantileverCompareToNonMortaring.cpp:188
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ SE
Definition: quadtree.h:57
@ E
Definition: quadtree.h:61
@ S
Definition: quadtree.h:62
@ OMEGA
Definition: quadtree.h:64
@ NW
Definition: quadtree.h:58
@ NE
Definition: quadtree.h:59
@ W
Definition: quadtree.h:63
@ SW
Definition: quadtree.h:56
@ N
Definition: quadtree.h:60
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86