00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef ZOLTAN_QUERYFUNCTIONS_H_
00031 #define ZOLTAN_QUERYFUNCTIONS_H_
00032
00033 #include "EpetraExt_ConfigDefs.h"
00034
00035 #include <zoltan.h>
00036
00037 namespace Zoltan {
00038
00039 class QueryFunctions
00040 {
00041
00042 public:
00043
00044
00045 static int Number_Objects ( void * data,
00046 int * ierr );
00047
00048 static void Object_List ( void * data,
00049 int num_gid_entries,
00050 int num_lid_entries,
00051 ZOLTAN_ID_PTR global_ids,
00052 ZOLTAN_ID_PTR local_ids,
00053 int weight_dim,
00054 float * object_weights,
00055 int * ierr );
00056
00057 static int First_Object ( void * data,
00058 int num_gid_entries,
00059 int num_lid_entries,
00060 ZOLTAN_ID_PTR first_global_id,
00061 ZOLTAN_ID_PTR first_local_id,
00062 int weight_dim,
00063 float * first_weight,
00064 int * ierr );
00065
00066 static int Next_Object ( void * data,
00067 int num_gid_entries,
00068 int num_lid_entries,
00069 ZOLTAN_ID_PTR global_id,
00070 ZOLTAN_ID_PTR local_id,
00071 ZOLTAN_ID_PTR next_global_id,
00072 ZOLTAN_ID_PTR next_local_id,
00073 int weight_dim,
00074 float * next_weight,
00075 int * ierr );
00076
00077 static int Number_Border_Objects ( void * data,
00078 int number_neighbor_procs,
00079 int * ierr );
00080
00081 static void Border_Object_List ( void * data,
00082 int num_gid_entries,
00083 int num_lid_entries,
00084 int number_neighbor_procs,
00085 ZOLTAN_ID_PTR global_ids,
00086 ZOLTAN_ID_PTR local_ids,
00087 int weight_dim,
00088 float * object_weights,
00089 int * ierr );
00090
00091 static int First_Border_Object ( void * data,
00092 int num_gid_entries,
00093 int num_lid_entries,
00094 int number_neighbor_procs,
00095 ZOLTAN_ID_PTR first_global_id,
00096 ZOLTAN_ID_PTR first_local_id,
00097 int weight_dim,
00098 float * first_weight,
00099 int * ierr );
00100
00101 static int Next_Border_Object ( void * data,
00102 int num_gid_entries,
00103 int num_lid_entries,
00104 ZOLTAN_ID_PTR global_id,
00105 ZOLTAN_ID_PTR local_id,
00106 int number_neighbor_procs,
00107 ZOLTAN_ID_PTR next_global_id,
00108 ZOLTAN_ID_PTR next_local_id,
00109 int weight_dim,
00110 float * next_weight,
00111 int * ierr );
00112
00113
00114 static int Number_Geometry_Objects ( void * data,
00115 int * ierr );
00116
00117 static void Geometry_Values ( void * data,
00118 int num_gid_entries,
00119 int num_lid_entries,
00120 ZOLTAN_ID_PTR global_id,
00121 ZOLTAN_ID_PTR local_id,
00122 double * geometry_vector,
00123 int * ierr );
00124
00125
00126 static int Number_Edges ( void * data,
00127 int num_gid_entries,
00128 int num_lid_entries,
00129 ZOLTAN_ID_PTR global_id,
00130 ZOLTAN_ID_PTR local_id,
00131 int * ierr );
00132
00133 static void Edge_List ( void * data,
00134 int num_gid_entries,
00135 int num_lid_entries,
00136 ZOLTAN_ID_PTR global_id,
00137 ZOLTAN_ID_PTR local_id,
00138 ZOLTAN_ID_PTR neighbor_global_ids,
00139 int * neighbor_procs,
00140 int weight_dim,
00141 float * edge_weights,
00142 int * ierr );
00143
00144
00145 static int Number_Coarse_Objects ( void * data,
00146 int * ierr );
00147
00148 static void Coarse_Object_List ( void * data,
00149 int num_gid_entries,
00150 int num_lid_entries,
00151 ZOLTAN_ID_PTR global_ids,
00152 ZOLTAN_ID_PTR local_ids,
00153 int * assigned,
00154 int * number_vertices,
00155 ZOLTAN_ID_PTR vertices,
00156 int * in_order,
00157 ZOLTAN_ID_PTR in_vertex,
00158 ZOLTAN_ID_PTR out_vertex,
00159 int * ierr );
00160
00161 static int First_Coarse_Object ( void * data,
00162 int num_gid_entries,
00163 int num_lid_entries,
00164 ZOLTAN_ID_PTR first_global_id,
00165 ZOLTAN_ID_PTR first_local_id,
00166 int * assigned,
00167 int * number_vertices,
00168 ZOLTAN_ID_PTR vertices,
00169 int * in_order,
00170 ZOLTAN_ID_PTR in_vertex,
00171 ZOLTAN_ID_PTR out_vertex,
00172 int * ierr );
00173
00174 static int Next_Coarse_Object ( void * data,
00175 int num_gid_entries,
00176 int num_lid_entries,
00177 ZOLTAN_ID_PTR global_id,
00178 ZOLTAN_ID_PTR local_id,
00179 ZOLTAN_ID_PTR next_global_id,
00180 ZOLTAN_ID_PTR next_local_id,
00181 int * assigned,
00182 int * number_vertices,
00183 ZOLTAN_ID_PTR vertices,
00184 ZOLTAN_ID_PTR in_vertex,
00185 ZOLTAN_ID_PTR out_vertex,
00186 int * ierr );
00187
00188 static int Number_Children ( void * data,
00189 int num_gid_entries,
00190 int num_lid_entries,
00191 ZOLTAN_ID_PTR global_id,
00192 ZOLTAN_ID_PTR local_id,
00193 int * ierr);
00194
00195 static void Child_List ( void * data,
00196 int num_gid_entries,
00197 int num_lid_entries,
00198 ZOLTAN_ID_PTR parent_global_id,
00199 ZOLTAN_ID_PTR parent_local_id,
00200 ZOLTAN_ID_PTR child_global_ids,
00201 ZOLTAN_ID_PTR child_local_ids,
00202 int * assigned,
00203 int * number_vertices,
00204 ZOLTAN_ID_PTR vertices,
00205 ZOLTAN_REF_TYPE * reference_type,
00206 ZOLTAN_ID_PTR in_vertex,
00207 ZOLTAN_ID_PTR out_vertex,
00208 int * ierr );
00209
00210 static void Child_Weight ( void * data,
00211 int num_gid_entries,
00212 int num_lid_entries,
00213 ZOLTAN_ID_PTR global_id,
00214 ZOLTAN_ID_PTR local_id,
00215 int weight_dim,
00216 float * object_weight,
00217 int * ierr );
00218
00219 };
00220
00221 }
00222
00223 #endif