p4est
1.0
|
00001 /* 00002 This file is part of p4est. 00003 p4est is a C library to manage a collection (a forest) of multiple 00004 connected adaptive quadtrees or octrees in parallel. 00005 00006 Copyright (C) 2010 The University of Texas System 00007 Written by Carsten Burstedde, Lucas C. Wilcox, and Tobin Isaac 00008 00009 p4est is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation; either version 2 of the License, or 00012 (at your option) any later version. 00013 00014 p4est is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU General Public License for more details. 00018 00019 You should have received a copy of the GNU General Public License 00020 along with p4est; if not, write to the Free Software Foundation, Inc., 00021 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00022 */ 00023 00024 #ifndef P4EST_SEARCH_H 00025 #define P4EST_SEARCH_H 00026 00027 #include <p4est.h> 00028 00029 SC_EXTERN_C_BEGIN; 00030 00035 ssize_t p4est_find_lower_bound (sc_array_t * array, 00036 const p4est_quadrant_t * q, 00037 size_t guess); 00038 00043 ssize_t p4est_find_higher_bound (sc_array_t * array, 00044 const p4est_quadrant_t * q, 00045 size_t guess); 00046 00061 void p4est_split_array (sc_array_t * array, int level, 00062 size_t indices[]); 00063 00085 int32_t p4est_find_range_boundaries (p4est_quadrant_t * lq, 00086 p4est_quadrant_t * uq, 00087 int level, int faces[], 00088 int corners[]); 00089 00115 typedef int (*p4est_search_query_t) (p4est_t * p4est, 00116 p4est_topidx_t which_tree, 00117 p4est_quadrant_t * quadrant, 00118 p4est_locidx_t local_num, 00119 void *point); 00120 00149 void p4est_search (p4est_t * p4est, 00150 p4est_search_query_t search_quadrant_fn, 00151 p4est_search_query_t search_point_fn, 00152 sc_array_t * points); 00153 00154 SC_EXTERN_C_END; 00155 00156 #endif