|
EpetraExt Development
|
00001 //------------------------------------------------------------------------- 00002 // Copyright Notice 00003 // 00004 // Copyright (c) 2000, Sandia Corporation, Albuquerque, NM. 00005 //------------------------------------------------------------------------- 00006 00007 //------------------------------------------------------------------------- 00008 // Filename : $Zoltan_QueryFunctions.h$ 00009 // 00010 // Purpose : Static methods which are directly registered with 00011 // Zoltan. They us the static container to access 00012 // the dynamic object methods. 00013 // 00014 // Special Notes : 00015 // 00016 // Creator : Robert J. Hoekstra, Parallel Computational Sciences 00017 // 00018 // Creation Date : 08/04/2000 00019 // 00020 // Revision Information: 00021 // --------------------- 00022 // 00023 // Revision Number: $Revision$ 00024 // 00025 // Revision Date : $Date$ 00026 // 00027 // Current Owner : $Author$ 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 //General Functions 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 //Geometry Based Functions 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 //Graph Based Functions 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 //Tree Based Functions 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 } //namespace Zoltan 00222 00223 #endif
1.7.4