Mesh Oriented datABase  (version 5.5.0)
An array-based unstructured mesh library
bvh_tree.hpp File Reference
#include <vector>
#include <set>
#include <iostream>
#include <map>
#include <algorithm>
#include <bitset>
#include <numeric>
#include <cmath>
#include <tr1/unordered_map>
#include <limits>
#include "common_tree.hpp"
+ Include dependency graph for bvh_tree.hpp:

Go to the source code of this file.

Classes

class  moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >
 

Namespaces

 moab
 Class representing axis-aligned bounding box.
 
 moab::_bvh
 

Macros

#define BVH_TREE_HPP
 
#define NUM_SPLITS   4
 
#define NUM_BUCKETS   ( NUM_SPLITS + 1 )
 
#define SMAX   5
 

Macro Definition Documentation

◆ BVH_TREE_HPP

#define BVH_TREE_HPP

bvh_tree.hpp Ryan H. Lewis (C) 2012

An element tree partitions a mesh composed of elements. We subdivide the bounding box of a me, by putting boxes on the left if there center is on the left of a split line and vice versa.

Definition at line 25 of file bvh_tree.hpp.

◆ NUM_BUCKETS

#define NUM_BUCKETS   ( NUM_SPLITS + 1 )

Definition at line 243 of file bvh_tree.hpp.

◆ NUM_SPLITS

#define NUM_SPLITS   4

Definition at line 242 of file bvh_tree.hpp.

◆ SMAX

#define SMAX   5

Definition at line 244 of file bvh_tree.hpp.

Variable Documentation

◆ bounding_box

ct::Box< double > bounding_box

◆ child

◆ dim

std::size_t dim
Examples
DeformMeshRemap.cpp, LaplacianSmoother.cpp, ReduceExchangeTags.cpp, and StructuredMeshSimple.cpp.

Definition at line 45 of file bvh_tree.hpp.

Referenced by moab::GeomTopoTool::add_geo_set(), moab::ParallelComm::assign_global_ids(), moab::DGMSolver::backsolve_polyfit_safeguarded(), moab::BVHTree::bruteforce_find(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::bucket_index(), moab::BVHTree::Bucket::bucket_index(), moab::SweptElementData::calc_num_entities(), moab::ScdElementData::calc_num_entities(), moab::Core::check_adjacencies(), moab::AEntityFactory::check_equiv_entities(), check_valid_connectivity(), moab::MeshTopoUtil::common_entity(), moab::common_tree::compute_box_center(), SphereDecomp::compute_nodes(), moab::DualTool::construct_dual_hyperplanes(), moab::NestedRefine::construct_hm_1D(), moab::DualTool::construct_new_hyperplane(), moab::GeomTopoTool::construct_obb_tree(), moab::ReadCGM::create_entity_sets(), moab::ReadABAQUS::create_instance_of_part(), moab::ReadOBJ::create_new_object(), moab::ReadGmsh::create_sets(), moab::SpectralMeshTool::create_spectral_elems(), moab::ReadCGM::create_topology(), moab::DataCoupler::DataCoupler(), moab::GeomTopoTool::delete_obb_tree(), moab::GeomTopoTool::dimension(), moab::BVHTree::distance_search(), dot_nodes(), moab::GeomTopoTool::duplicate_model(), moab::Bvh_tree< _Entity_handles, _Box, _Moab, _Parametrizer >::establish_buckets(), moab::BVHTree::establish_buckets(), moab::ParallelComm::exchange_owned_meshs(), moab::DualTool::face_shrink(), DeformMeshRemap::find_other_sets(), moab::Skinner::find_skin(), moab::Skinner::find_skin_vertices(), moab::MeshSet::FIRST_OF_DIM(), moab::DualTool::foc_delete_dual(), moab::ParallelComm::gather_data(), moab::WriteHDF5::gather_mesh_info(), moab::ReadUtil::gather_related_ents(), moab::ReadRTT::generate_topology(), moab::ScdBox::get_adj_edge_or_face(), get_adjacent_elems(), get_degree_seq(), get_dim_ranges(), moab::Core::get_dimension(), moab::DualTool::get_dual_entities(), moab::DualTool::get_dual_hyperplanes(), moab::GeomTopoTool::get_gsets_by_dimension(), moab::ParallelComm::get_iface_entities(), get_max_volume(), moab::Core::get_number_entities_by_dimension(), moab::ReadUtil::get_ordered_vertices(), moab::ParallelComm::get_part_entities(), moab::ParallelComm::get_pstatus_entities(), moab::ReadABAQUS::get_set_elements(), moab::ReadABAQUS::get_set_nodes(), moab::ParallelComm::get_shared_entities(), moab::DGMSolver::get_tri_natural_coords(), hcFilter(), moab::HDF5_can_append_hyperslabs(), moab::CN::HONodeParent(), iMOAB_CreateVertices(), GaussIntegration::initialize(), moab::WriteHDF5::initialize_mesh(), moab::ReorderTool::int_order_from_sets_and_adj(), moab::AdaptiveKDTree::intersect_children_with_elems(), laplacianFilter(), moab::MeshSet::LAST_OF_DIM(), moab::Core::list_entity(), moab::Tqdcfr::load_file(), moab::ReadHDF5::load_file_partial(), main(), moab::BVHTree::median_order(), moab::ParallelMergeMesh::merge(), moab::AEntityFactory::merge_adjust_adjacencies(), moab::MergeMesh::merge_higher_dimensions(), mhdf_createAdjacency(), mhdf_createPolyConnectivity(), mhdf_createSetChildren(), mhdf_createSetData(), mhdf_createSetParents(), mhdf_openAdjacency(), mhdf_openSetChildren(), mhdf_openSetData(), mhdf_openSetParents(), mhdf_readHistory(), mhdf_writeHistory(), moab::AEntityFactory::notify_delete_entity(), moab::GeomTopoTool::num_ents_of_dim(), moab::Range::num_of_dimension(), parse_id_list(), perform_laplacian_smoothing(), moab::LloydSmoother::perform_smooth(), moab::ParallelMergeMesh::PerformMerge(), moab::permute_this(), moab::CN::permuteThis(), moab::ElemUtil::point_in_trilinear_hex(), moab::BVHTree::point_search(), moab::ParallelMergeMesh::PopulateMySkinEnts(), moab::HalfFacetRep::print_tags(), moab::print_type_sets(), moab::putSpectralElementField(), quads_to_tris(), moab::ReadTetGen::read_elem_file(), DeformMeshRemap::read_file(), moab::ReadTetGen::read_node_file(), moab::ReadHDF5::read_nodes(), moab::GeomTopoTool::remove_root(), moab::CN::resetPermutation(), moab::GeomTopoTool::restore_obb_index(), moab::GeomTopoTool::restore_topology_from_adjacency(), SphereDecomp::retrieve_subdiv_verts(), moab::DualTool::rev_atomic_pillow(), moab::DualTool::rev_face_shrink(), moab::rev_permute_this(), moab::CN::revPermuteThis(), moab::Core::set_dimension(), moab::CN::setPermutation(), moab::Core::side_element(), moab::Skinner::skin_box(), moab::FBEngine::split_bedge_at_new_mesh_node(), moab::FBEngine::split_edge_at_mesh_node(), moab::FBEngine::split_edge_at_point(), moab::MeshTopoUtil::split_entities_manifold(), moab::MeshTopoUtil::star_next_entity(), moab::ReadCGM::store_group_content(), SphereDecomp::subdivide_tet(), moab::CN::SubEntityNodeIndices(), tag_depth(), moab::ParallelMergeMesh::TagSharedElements(), moab::DualTool::traverse_hyperplane(), moab::ReadVtk::vtk_read_texture_attrib(), and moab::WriteHDF5::write_nodes().

◆ entities

Entities entities

Definition at line 48 of file bvh_tree.hpp.

Referenced by moab::AdaptiveKDTree::AdaptiveKDTree(), moab::MeshSet::add_entities(), moab::Core::add_entities(), moab::FBEngine::addEntArrToSet(), moab::common_tree::assign_entities(), moab::ParallelComm::assign_entities_part(), moab::ParallelComm::assign_global_ids(), moab::WriteHDF5::assign_ids(), moab::TempestRemapper::assign_vertex_element_IDs(), moab::AdaptiveKDTree::best_subdivision_plane(), moab::AdaptiveKDTree::best_subdivision_snap_plane(), moab::AdaptiveKDTree::best_vertex_median_plane(), moab::AdaptiveKDTree::best_vertex_sample_plane(), moab::ParallelComm::broadcast_entities(), moab::Point_search< _Tree, _Boxes >::bruteforce_locate_points(), moab::OrientedBoxTreeTool::build(), moab::OrientedBoxTreeTool::build_tree(), moab::AdaptiveKDTree::build_tree(), moab::BVHTree::build_tree(), moab::AxisBox::calculate(), moab::SequenceManager::check_valid_entities(), moab::DenseTag::clear_data(), moab::MeshTag::clear_data(), moab::SparseTag::clear_data(), moab::VarLenDenseTag::clear_data(), moab::VarLenSparseTag::clear_data(), compute_area(), RuntimeContext::compute_centroids(), moab::FBEngine::compute_intersection_points(), moab::SmoothCurve::compute_tangents_for_each_edge(), moab::TempestOnlineMap::ComputeMetrics(), moab::DualTool::construct_dual(), moab::DualTool::construct_dual_hyperplanes(), moab::DualTool::construct_hex_dual(), moab::MeshSet::contains_entities(), moab::Core::contains_entities(), moab::HigherOrderFactory::convert(), moab::TempestRemapper::convert_tempest_mesh_private(), create_fine_mesh(), moab::ReadGmsh::create_sets(), RuntimeContext::create_sv_tags(), moab::TempestOnlineMap::DefineAnalyticalSolution(), moab::Skinner::deinitialize(), moab::DualTool::delete_dual_entities(), moab::Core::delete_entities(), moab::SequenceManager::delete_entities(), moab::ParallelComm::estimate_ents_buffer_size(), moab::ParallelComm::estimate_sets_buffer_size(), moab::ParallelComm::exchange_tags(), moab::ElemEvaluator::find_containing_entity(), moab::BVHTree::find_point(), moab::Skinner::find_skin(), moab::Skinner::find_skin_vertices(), moab::Skinner::find_skin_vertices_3D(), moab::TempestRemapper::GenerateMeshMetadata(), moab::MeshTopoUtil::get_average_position(), moab::Core::get_coords(), moab::VarLenDenseTag::get_data(), moab::VarLenSparseTag::get_data(), moab::DenseTag::get_data(), moab::MeshTag::get_data(), moab::SparseTag::get_data(), moab::MeshSetSequence::get_dimension(), moab::DualTool::get_dual_entities(), moab::Tqdcfr::get_entities(), moab::ReorderTool::get_entities(), moab::MeshSetSequence::get_entities(), moab::MeshSet::get_entities(), moab::Core::get_entities_by_dimension(), moab::Core::get_entities_by_handle(), moab::Core::get_entities_by_type(), moab::Core::get_entities_by_type_and_tag(), moab::BitTag::get_entities_with_bits(), moab::WriteUtil::get_entity_list_pointers(), moab::SequenceManager::get_memory_use(), moab::Tqdcfr::get_mesh_entities(), moab::WriteUtil::get_node_coords(), moab::Tqdcfr::get_ref_entities(), moab::ParallelComm::get_sharing_data(), moab::get_tagged(), moab::BitTag::get_tagged(), moab::BitTag::get_tagged_entities(), moab::DenseTag::get_tagged_entities(), moab::VarLenDenseTag::get_tagged_entities(), moab::VarLenSparseTag::get_tagged_entities(), moab::MeshSetSequence::get_type(), moab::FBEngine::get_vert_edges(), moab::FBEngine::getEgVtxSense(), moab::FBEngine::getVtxCoord(), moab::ReorderTool::handle_order_from_int_tag(), moab::Skinner::initialize(), moab::Core::list_entities(), moab::DualTool::list_entities(), moab::ReadParallel::load_file(), moab::BVHTree::local_build_tree(), moab::Point_search< _Tree, _Boxes >::locate_points(), main(), moab::FBEngine::measure(), moab::MergeMesh::merge_all(), min_edge_length(), moab::Coupler::nat_param(), moab::Coupler::normalize_mesh(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_sets(), moab::ParallelComm::pack_tags(), ZoltanPartitioner::partition_mesh_and_geometry(), moab::Core::print(), moab::Tqdcfr::put_into_set(), moab::Tqdcfr::read_block(), moab::ParCommGraph::receive_mesh(), moab::ParallelComm::reduce_tags(), moab::DenseTag::remove_data(), moab::MeshTag::remove_data(), moab::SparseTag::remove_data(), moab::VarLenDenseTag::remove_data(), moab::VarLenSparseTag::remove_data(), moab::MeshSet::remove_entities(), moab::Core::remove_entities(), moab::ParallelComm::remove_entities_part(), moab::ReorderTool::reorder_entities(), moab::ParallelComm::scatter_entities(), moab::ParallelComm::send_recv_entities(), moab::VarLenDenseTag::set_data(), moab::DenseTag::set_data(), moab::MeshTag::set_data(), moab::SparseTag::set_data(), moab::VarLenSparseTag::set_data(), moab::TempestRemapper::SetMeshSet(), moab::ParallelComm::settle_intersection_points(), moab::GeomTopoTool::setup_implicit_complement(), moab::split_box(), moab::MeshTopoUtil::split_entities_manifold(), moab::FBEngine::split_surface_with_direction(), moab::ReadCGM::store_group_content(), moab::Coupler::test_local_box(), moab::ParallelComm::unpack_sets(), moab::ParallelComm::unpack_tags(), moab::ReadVtk::vtk_read_attrib_data(), moab::ReadVtk::vtk_read_color_attrib(), moab::ReadVtk::vtk_read_field_attrib(), moab::ReadVtk::vtk_read_scalar_attrib(), moab::ReadVtk::vtk_read_tag_data(), moab::ReadVtk::vtk_read_tensor_attrib(), moab::ReadVtk::vtk_read_texture_attrib(), moab::ReadVtk::vtk_read_vector_attrib(), moab::WriteVtk::write_bit_tag(), moab::WriteNCDF::write_file(), moab::WriteSLAC::write_file(), moab::WriteVtk::write_tag(), and moab::WriteVtk::write_tags().

◆ left_box

◆ Lmax

double Lmax

Definition at line 47 of file bvh_tree.hpp.

◆ nl

◆ nr

◆ right_box

◆ Rmin

double Rmin

Definition at line 47 of file bvh_tree.hpp.

◆ size

std::size_t size
Examples
CrystalRouterExample.cpp, and GenLargeMesh.cpp.

Definition at line 139 of file bvh_tree.hpp.

Referenced by moab::ReadUtil::assign_ids(), moab::MeshGeneration::BrickInstance(), moab::FBEngine::chain_edges(), moab::check_int_tag(), moab::WriteHDF5Parallel::check_serial_tag_data(), moab::TagInfo::check_valid_sizes(), check_valid_tag(), moab::BitTag::clear_data(), moab::NCWriteHelper::collect_variable_data(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::ReadHDF5::convert_id_to_handle(), moab::WriteHDF5Parallel::create_adjacency_tables(), moab::NCHelper::create_dummy_variables(), moab::SequenceManager::create_element(), moab::WriteHDF5Parallel::create_element_tables(), moab::ReadMCNP5::create_elements(), moab::SequenceManager::create_entity_sequence(), moab::NCHelperESMF::create_local_cells(), moab::NCHelperMPAS::create_local_cells(), moab::WriteHDF5Parallel::create_meshset_tables(), moab::ReadParallel::create_partition_sets(), moab::BitTag::create_tag(), create_tag_common(), moab::WriteHDF5Parallel::create_tag_tables(), moab::DeInitialize(), moab::FBEngine::delete_smooth_tags(), do_rank_subst(), moab::TagInfo::equals_default_value(), moab::BVHTree::establish_buckets(), moab::find_map_values_equal(), moab::find_map_varlen_values_equal(), moab::find_tag_values_equal(), moab::find_tag_varlen_values_equal(), moab::DualTool::foc_get_addl_ents(), moab::WriteNCDF::gather_mesh_information(), moab::TempestOnlineMap::GenerateRemappingWeights(), moab::FileTokenizer::get_binary(), moab::BitTag::get_data(), moab::BitTag::get_entities_with_bits(), get_max_volume(), moab::ReadSms::get_set(), get_tag_desc(), moab::WriteUtil::get_tag_list(), moab::get_tagged(), moab::BitTag::get_tagged(), moab::ReadHDF5::get_tagged_entities(), moab::ParallelMergeMesh::GetGlobalBox(), moab::TempestRemapper::GetOverlapAugmentedEntities(), hash_build_2(), hash_build_3(), hash_opt_size_2(), hash_opt_size_3(), iMOAB_WriteLocalMesh(), moab::insert_in_vector(), moab::Intx2Mesh::intersect_meshes(), moab::is_zero_bytes(), moab::TempestOnlineMap::IsConservative(), moab::ReadCGNS::load_file(), moab::ReadTetGen::load_file(), moab::ReadMCNP5::load_one_file(), main(), mhdf_createDenseTagData(), mhdf_createTag(), mhdf_getFileSummary(), mhdf_getNativeType(), mhdf_getTagInfo(), mhdf_getTagNames(), mhdf_malloc(), mhdf_name_to_path_cat(), mhdf_name_to_path_copy(), mhdf_openDenseTagData(), mhdf_realloc(), parse_opaque_value(), parse_tag_spec(), parse_values(), moab::ParallelMergeMesh::PerformMerge(), moab::AdaptiveKDTree::print(), moab::print_buff(), moab::DebugOutput::print_real(), moab::ErrorOutput::print_real(), print_stats(), moab::print_type_sets(), moab::ProcConfig::ProcConfig(), moab::ReadHDF5::read_all_set_meta(), moab::ReadMCNP5::read_element_values_and_errors(), moab::Tqdcfr::read_nodes(), moab::ReadNCDF::read_nodesets(), moab::ReadNCDF::read_qa_records(), moab::ReadNCDF::read_sidesets(), moab::TempestOnlineMap::ReadParallelMap(), moab::BitTag::remove_data(), moab::remove_from_vector(), moab::SequenceManager::reserve_tag_array(), moab::DualTool::rev_atomic_pillow(), scalloc(), moab::ReadHDF5::search_tag_values(), moab::SequenceManager::sequence_start_handle(), moab::BitTag::set_data(), moab::FBEngine::set_default_neumann_tags(), moab::VerdictWrapper::set_size(), moab::ReadHDF5::set_up_read(), smalloc(), moab::ParallelMergeMesh::SortMyMatches(), moab::MeshTopoUtil::split_entities_manifold(), srealloc(), string_tag_value(), moab::Core::tag_get_default_value(), moab::Core::tag_get_handle(), tag_type_string(), test_spectral_quad(), v_hex_relative_size_squared(), v_hex_shape_and_size(), v_hex_shear_and_size(), v_quad_shape_and_size(), v_quad_shear_and_size(), v_set_hex_size(), v_set_quad_size(), v_set_tet_size(), v_set_tri_size(), v_tet_relative_size_squared(), v_tet_shape_and_size(), v_tri_quality(), v_tri_relative_size_squared(), v_tri_shape_and_size(), moab::ReadVtk::vtk_read_color_attrib(), moab::ReadVtk::vtk_read_polygons(), moab::ReadVtk::vtk_read_scalar_attrib(), moab::ReadVtk::vtk_read_tag_data(), moab::WriteHDF5::write_sets(), write_svg(), moab::TempestOnlineMap::WriteHDF5MapFile(), moab::TempestOnlineMap::WriteSCRIPMapFile(), and moab::TempestRemapper::WriteTempestIntersectionMesh().

◆ split