00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ZOLTAN_QUERYOBJECT_H_
00013 #define ZOLTAN_QUERYOBJECT_H_
00014
00015 #include "EpetraExt_ConfigDefs.h"
00016
00017 #include <zoltan.h>
00018
00019 namespace Zoltan {
00020
00022
00028 class QueryObject
00029 {
00030
00031 public:
00032
00034
00036 virtual int Number_Objects ( void * data,
00037 int * ierr );
00038
00040 virtual void Object_List ( void * data,
00041 int num_gid_entries,
00042 int num_lid_entries,
00043 ZOLTAN_ID_PTR global_ids,
00044 ZOLTAN_ID_PTR local_ids,
00045 int weight_dim,
00046 float * object_weights,
00047 int * ierr );
00048
00050 virtual int First_Object ( void * data,
00051 int num_gid_entries,
00052 int num_lid_entries,
00053 ZOLTAN_ID_PTR first_global_id,
00054 ZOLTAN_ID_PTR first_local_id,
00055 int weight_dim,
00056 float * first_weight,
00057 int * ierr );
00058
00060 virtual int Next_Object ( void * data,
00061 int num_gid_entries,
00062 int num_lid_entries,
00063 ZOLTAN_ID_PTR global_id,
00064 ZOLTAN_ID_PTR local_id,
00065 ZOLTAN_ID_PTR next_global_id,
00066 ZOLTAN_ID_PTR next_local_id,
00067 int weight_dim,
00068 float * next_weight,
00069 int * ierr );
00070
00072 virtual int Number_Border_Objects ( void * data,
00073 int number_neighbor_procs,
00074 int * ierr );
00075
00077 virtual void Border_Object_List ( void * data,
00078 int num_gid_entries,
00079 int num_lid_entries,
00080 int number_neighbor_procs,
00081 ZOLTAN_ID_PTR global_ids,
00082 ZOLTAN_ID_PTR local_ids,
00083 int weight_dim,
00084 float * object_weights,
00085 int * ierr );
00086
00088 virtual int First_Border_Object ( void * data,
00089 int num_gid_entries,
00090 int num_lid_entries,
00091 int number_neighbor_procs,
00092 ZOLTAN_ID_PTR first_global_id,
00093 ZOLTAN_ID_PTR first_local_id,
00094 int weight_dim,
00095 float * first_weight,
00096 int * ierr );
00097
00099 virtual int Next_Border_Object ( void * data,
00100 int num_gid_entries,
00101 int num_lid_entries,
00102 ZOLTAN_ID_PTR global_id,
00103 ZOLTAN_ID_PTR local_id,
00104 int number_neighbor_procs,
00105 ZOLTAN_ID_PTR next_global_id,
00106 ZOLTAN_ID_PTR next_local_id,
00107 int weight_dim,
00108 float * next_weight,
00109 int * ierr );
00110
00112
00114
00116 virtual int Number_Geometry_Objects ( void * data,
00117 int * ierr );
00118
00120 virtual void Geometry_Values ( void * data,
00121 int num_gid_entries,
00122 int num_lid_entries,
00123 ZOLTAN_ID_PTR global_id,
00124 ZOLTAN_ID_PTR local_id,
00125 double * geometry_vector,
00126 int * ierr );
00127
00129
00131
00133 virtual int Number_Edges ( 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 int * ierr );
00139
00141 virtual void Edge_List ( void * data,
00142 int num_gid_entries,
00143 int num_lid_entries,
00144 ZOLTAN_ID_PTR global_id,
00145 ZOLTAN_ID_PTR local_id,
00146 ZOLTAN_ID_PTR neighbor_global_ids,
00147 int * neighbor_procs,
00148 int weight_dim,
00149 float * edge_weights,
00150 int * ierr );
00151
00153
00155
00157 virtual int Number_Coarse_Objects ( void * data,
00158 int * ierr );
00159
00161 virtual void Coarse_Object_List ( void * data,
00162 int num_gid_entries,
00163 int num_lid_entries,
00164 ZOLTAN_ID_PTR global_ids,
00165 ZOLTAN_ID_PTR local_ids,
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
00175 virtual int First_Coarse_Object ( void * data,
00176 int num_gid_entries,
00177 int num_lid_entries,
00178 ZOLTAN_ID_PTR first_global_id,
00179 ZOLTAN_ID_PTR first_local_id,
00180 int * assigned,
00181 int * number_vertices,
00182 ZOLTAN_ID_PTR vertices,
00183 int * in_order,
00184 ZOLTAN_ID_PTR in_vertex,
00185 ZOLTAN_ID_PTR out_vertex,
00186 int * ierr );
00187
00189 virtual int Next_Coarse_Object ( void * data,
00190 int num_gid_entries,
00191 int num_lid_entries,
00192 ZOLTAN_ID_PTR global_id,
00193 ZOLTAN_ID_PTR local_id,
00194 ZOLTAN_ID_PTR next_global_id,
00195 ZOLTAN_ID_PTR next_local_id,
00196 int * assigned,
00197 int * number_vertices,
00198 ZOLTAN_ID_PTR vertices,
00199 ZOLTAN_ID_PTR in_vertex,
00200 ZOLTAN_ID_PTR out_vertex,
00201 int * ierr );
00202
00204 virtual int Number_Children ( void * data,
00205 int num_gid_entries,
00206 int num_lid_entries,
00207 ZOLTAN_ID_PTR global_id,
00208 ZOLTAN_ID_PTR local_id,
00209 int * ierr );
00210
00212 virtual void Child_List ( void * data,
00213 int num_gid_entries,
00214 int num_lid_entries,
00215 ZOLTAN_ID_PTR parent_global_id,
00216 ZOLTAN_ID_PTR parent_local_id,
00217 ZOLTAN_ID_PTR child_global_id,
00218 ZOLTAN_ID_PTR child_local_id,
00219 int * assigned,
00220 int * number_vertices,
00221 ZOLTAN_ID_PTR vertices,
00222 ZOLTAN_REF_TYPE * reference_type,
00223 ZOLTAN_ID_PTR in_vertex,
00224 ZOLTAN_ID_PTR out_vertex,
00225 int * ierr );
00226
00228 virtual void Child_Weight ( void * data,
00229 int num_gid_entries,
00230 int num_lid_entries,
00231 ZOLTAN_ID_PTR global_id,
00232 ZOLTAN_ID_PTR local_id,
00233 int weight_dim,
00234 float * object_weight,
00235 int * ierr );
00236
00238
00239 };
00240
00241 }
00242
00243 #endif