EpetraExt Development
Zoltan_QueryFunctions.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines