![]() |
|
#include <quadtree.h>
Public Member Functions | |
QuadTreeForest () | |
Default constructor (empty and broken) More... | |
QuadTreeForest (Vector< TreeRoot * > &trees_pt) | |
QuadTreeForest (const QuadTreeForest &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const QuadTreeForest &)=delete |
Broken assignment operator. More... | |
virtual | ~QuadTreeForest () |
void | check_all_neighbours (DocInfo &doc_info) |
void | open_hanging_node_files (DocInfo &doc_info, Vector< std::ofstream * > &output_stream) |
unsigned | self_test () |
![]() | |
TreeForest (Vector< TreeRoot * > &trees_pt) | |
TreeForest () | |
Default constructor (empty and broken) More... | |
TreeForest (const TreeForest &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const TreeForest &)=delete |
Broken assignment operator. More... | |
virtual | ~TreeForest () |
Kill tree forest: Delete the constituent trees. More... | |
void | stick_leaves_into_vector (Vector< Tree * > &forest_nodes) |
Traverse forst and stick pointers to leaf "nodes" into Vector. More... | |
void | stick_all_tree_nodes_into_vector (Vector< Tree * > &all_forest_nodes) |
Traverse forest and stick pointers to all "nodes" into Vector. More... | |
void | close_hanging_node_files (DocInfo &doc_info, Vector< std::ofstream * > &output_stream) |
unsigned | ntree () |
Number of trees in forest. More... | |
TreeRoot * | tree_pt (const unsigned &i) const |
Return pointer to i-th tree in forest. More... | |
void | flush_trees () |
Flush trees from forest. More... | |
Private Member Functions | |
void | construct_north_equivalents () |
Construct the rotation schemes. More... | |
void | find_neighbours () |
Construct the neighbour lookup scheme. More... | |
QuadTreeRoot * | quadtree_pt (const unsigned &i) |
QuadTreeRoot * | quad_neigh_pt (const unsigned &i, const int &direction) |
Additional Inherited Members | |
![]() | |
Vector< TreeRoot * > | Trees_pt |
Vector containing the pointers to the trees. More... | |
A QuadTreeForest consists of a collection of QuadTreeRoots. Each member tree can have neighbours to its S/W/N/E and the orientation of their compasses can differ, allowing for complex, unstructured meshes.
|
inline |
Default constructor (empty and broken)
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Constructor: Pass vector of pointers to the roots of the constituent QuadTrees
Constructor for QuadTreeForest:
Pass:
Note that the pointers to the neighbour's of each tree must have been allocated before the constructor is called, otherwise the relative rotation scheme will not be constructed correctly.
References construct_north_equivalents(), and find_neighbours().
|
delete |
Broken copy constructor.
|
inlinevirtual |
|
virtual |
Document and check all the neighbours of all the nodes in the forest. DocInfo object specifies the output directory and file numbers for the various files. If doc_info.disable_doc()
has been called no output is created.
Document and check all the neighbours in all the nodes in the forest
Implements oomph::TreeForest.
References oomph::DocInfo::directory(), oomph::QuadTree::doc_neighbours(), oomph::DocInfo::is_doc_enabled(), MeshRefinement::max_error, oomph::Tree::max_neighbour_finding_tolerance(), oomph::DocInfo::number(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, and oomph::TreeForest::stick_all_tree_nodes_into_vector().
|
private |
Construct the rotation schemes.
Construct the rotation scheme for the quadtree forest. Note that all pointers to neighbours must have been allocated for this to work.
References oomph::QuadTreeRoot::direction_of_neighbour(), Global_Physical_Variables::E, i, N, oomph::QuadTreeRoot::north_equivalent(), oomph::TreeForest::ntree(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, quad_neigh_pt(), quadtree_pt(), oomph::QuadTreeNames::S, and oomph::QuadTreeNames::W.
Referenced by QuadTreeForest().
|
private |
Construct the neighbour lookup scheme.
Setup the neighbour lookup schemes for all constituent quadtrees.
References Global_Physical_Variables::E, i, j, n, N, oomph::TreeForest::ntree(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::QuadTreeNames::S, oomph::TreeForest::Trees_pt, and oomph::QuadTreeNames::W.
Referenced by QuadTreeForest().
|
virtual |
Open output files that will store any hanging nodes in the forest and return a vector of the streams.
Open output files that will stored any hanging nodes that are
Implements oomph::TreeForest.
References oomph::DocInfo::directory(), i, oomph::DocInfo::is_doc_enabled(), and oomph::DocInfo::number().
|
delete |
Broken assignment operator.
|
inlineprivate |
Given the number i of the root quadtree in this forest, return pointer to its neighbour in the specified direction. NULL if neighbour doesn't exist. (This does the dynamic cast from a TreeRoot to a QuadTreeRoot internally).
References i.
Referenced by construct_north_equivalents().
|
inlineprivate |
Return pointer to i-th root quadtree in this forest. (Performs a dynamic cast from the TreeRoot to a QuadTreeRoot).
References i.
Referenced by construct_north_equivalents().
unsigned oomph::QuadTreeForest::self_test | ( | ) |
Self-test: Check all neighbours. Return success (0) if the max. distance between corresponding points in the neighbours is less than the tolerance specified in the static value QuadTree::Max_neighbour_finding_tolerance.
Self test: Check neighbour finding routine. For each element in the tree and for each vertex, determine the distance between the vertex and its position in the neigbour. If the difference is less than Tree::Max_neighbour_finding_tolerance. return success (0), otherwise failure (1)
References oomph::QuadTree::doc_neighbours(), i, MeshRefinement::max_error, oomph::Tree::max_neighbour_finding_tolerance(), oomph::oomph_info, and oomph::TreeForest::stick_all_tree_nodes_into_vector().