|
EpetraExt Development
|
00001 // @HEADER 00002 // ************************************************************************ 00003 // 00004 // Zoltan_CPP: An Object-Oriented Interface To Zoltan 00005 // Copyright (2001) Sandia Corporation 00006 // 00007 // Questions? Contact Robert J. Hoekstra (rjhoeks@sandia.gov) 00008 // 00009 // ************************************************************************ 00010 // @HEADER 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 } //namespace Zoltan 00242 00243 #endif
1.7.4