![]() |
|
#include <binary_tree.h>
Public Member Functions | |
BinaryTreeForest () | |
Default constructor (empty and broken) More... | |
BinaryTreeForest (Vector< TreeRoot * > &trees_pt) | |
BinaryTreeForest (const BinaryTreeForest &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const BinaryTreeForest &)=delete |
Broken assignment operator. More... | |
virtual | ~BinaryTreeForest () |
void | check_all_neighbours (DocInfo &doc_info) |
Document and check all the neighbours in all the nodes in the forest. More... | |
void | open_hanging_node_files (DocInfo &doc_info, Vector< std::ofstream * > &output_stream) |
A line mesh cannot have hanging nodes so make this function empty. More... | |
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 | find_neighbours () |
Construct the neighbour lookup scheme. More... | |
BinaryTreeRoot * | binary_tree_pt (const unsigned &i) |
BinaryTreeRoot * | binary_neigh_pt (const unsigned &i, const int &direction) |
Additional Inherited Members | |
![]() | |
Vector< TreeRoot * > | Trees_pt |
Vector containing the pointers to the trees. More... | |
A BinaryTreeForest consists of a collection of BinaryTreeRoots. Each member tree can have neighbours to its left and right.
|
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 BinaryTrees
Constructor for BinaryTreeForest:
Pass:
References find_neighbours().
|
delete |
Broken copy constructor.
|
inlinevirtual |
|
inlineprivate |
Given the number i of the root binary tree in this forest, return a pointer to its neighbour in the specified direction. NULL if neighbour doesn't exist. (This does the dynamic cast from a TreeRoot to a BinaryTreeRoot internally).
References i.
|
inlineprivate |
|
virtual |
Document and check all the neighbours in all the nodes in the forest.
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.
Implements oomph::TreeForest.
References oomph::DocInfo::directory(), oomph::BinaryTree::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 neighbour lookup scheme.
Set up the neighbour lookup schemes for all constituent binary trees.
References i, j, L, n, oomph::TreeForest::ntree(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, R, and oomph::TreeForest::Trees_pt.
Referenced by BinaryTreeForest().
|
inlinevirtual |
A line mesh cannot have hanging nodes so make this function empty.
Implements oomph::TreeForest.
|
delete |
Broken assignment operator.
unsigned oomph::BinaryTreeForest::self_test | ( | ) |
Self-test: Check all neighbours. Return success (0) if the maximum distance between corresponding points in the neighbours is less than the tolerance specified in the static value BinaryTree::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 neighbour. If the difference is less than Tree::Max_neighbour_finding_tolerance return success (0), otherwise failure (1).
References oomph::BinaryTree::doc_neighbours(), i, MeshRefinement::max_error, oomph::Tree::max_neighbour_finding_tolerance(), oomph::oomph_info, and oomph::TreeForest::stick_all_tree_nodes_into_vector().