EpetraExt Development
Zoltan_QueryFunctions.h
Go to the documentation of this file.
00001 /*
00002 //@HEADER
00003 // ***********************************************************************
00004 //
00005 //     EpetraExt: Epetra Extended - Linear Algebra Services Package
00006 //                 Copyright (2011) Sandia Corporation
00007 //
00008 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00009 // the U.S. Government retains certain rights in this software.
00010 //
00011 // Redistribution and use in source and binary forms, with or without
00012 // modification, are permitted provided that the following conditions are
00013 // met:
00014 //
00015 // 1. Redistributions of source code must retain the above copyright
00016 // notice, this list of conditions and the following disclaimer.
00017 //
00018 // 2. Redistributions in binary form must reproduce the above copyright
00019 // notice, this list of conditions and the following disclaimer in the
00020 // documentation and/or other materials provided with the distribution.
00021 //
00022 // 3. Neither the name of the Corporation nor the names of the
00023 // contributors may be used to endorse or promote products derived from
00024 // this software without specific prior written permission.
00025 //
00026 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00027 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00028 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00029 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00030 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00031 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00032 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00033 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00034 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00035 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00036 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00037 //
00038 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
00039 //
00040 // ***********************************************************************
00041 //@HEADER
00042 */
00043 
00044 //-------------------------------------------------------------------------
00045 // Filename       : $Zoltan_QueryFunctions.h$
00046 //
00047 // Purpose        : Static methods which are directly registered with
00048 //                  Zoltan.  They us the static container to access
00049 //                  the dynamic object methods.
00050 //
00051 // Special Notes  :
00052 //
00053 // Creator        : Robert J. Hoekstra, Parallel Computational Sciences
00054 //
00055 // Creation Date  : 08/04/2000
00056 //
00057 // Revision Information:
00058 // ---------------------
00059 //
00060 // Revision Number: $Revision$
00061 //
00062 // Revision Date  : $Date$
00063 //
00064 // Current Owner  : $Author$
00065 //-------------------------------------------------------------------------
00066 
00067 #ifndef ZOLTAN_QUERYFUNCTIONS_H_
00068 #define ZOLTAN_QUERYFUNCTIONS_H_
00069 
00070 #include "EpetraExt_ConfigDefs.h"
00071 
00072 #include <zoltan.h>
00073 
00074 namespace Zoltan {
00075 
00076 class EPETRAEXT_DEPRECATED QueryFunctions
00077 {
00078 
00079 public:
00080 
00081   //General Functions
00082   static int Number_Objects   ( void * data,
00083         int * ierr );
00084 
00085   static void Object_List     ( void * data,
00086         int num_gid_entries,
00087         int num_lid_entries,
00088         ZOLTAN_ID_PTR global_ids,
00089         ZOLTAN_ID_PTR local_ids, 
00090         int weight_dim,
00091         float * object_weights,
00092         int * ierr );
00093 
00094   static int First_Object     ( void * data,
00095         int num_gid_entries,
00096         int num_lid_entries,
00097         ZOLTAN_ID_PTR first_global_id,
00098         ZOLTAN_ID_PTR first_local_id, 
00099         int weight_dim,
00100         float * first_weight,
00101         int * ierr );
00102 
00103   static int Next_Object      ( void * data,
00104         int num_gid_entries,
00105         int num_lid_entries,
00106         ZOLTAN_ID_PTR global_id,
00107         ZOLTAN_ID_PTR local_id, 
00108         ZOLTAN_ID_PTR next_global_id,
00109         ZOLTAN_ID_PTR next_local_id,
00110         int weight_dim,
00111         float * next_weight,
00112         int * ierr );
00113 
00114   static int Number_Border_Objects    ( void * data,
00115           int number_neighbor_procs,
00116           int * ierr );
00117 
00118   static void Border_Object_List      ( void * data,
00119           int num_gid_entries,
00120           int num_lid_entries,
00121           int number_neighbor_procs, 
00122           ZOLTAN_ID_PTR global_ids,
00123           ZOLTAN_ID_PTR local_ids,
00124           int weight_dim, 
00125           float * object_weights,
00126           int * ierr );
00127 
00128   static int First_Border_Object      ( void * data,
00129           int num_gid_entries,
00130           int num_lid_entries,
00131           int number_neighbor_procs, 
00132           ZOLTAN_ID_PTR first_global_id,
00133           ZOLTAN_ID_PTR first_local_id,
00134           int weight_dim,
00135           float * first_weight,
00136           int * ierr );
00137 
00138   static int Next_Border_Object       ( void * data,
00139           int num_gid_entries,
00140           int num_lid_entries,
00141           ZOLTAN_ID_PTR global_id,
00142           ZOLTAN_ID_PTR local_id,
00143           int number_neighbor_procs,
00144           ZOLTAN_ID_PTR next_global_id,
00145           ZOLTAN_ID_PTR next_local_id,
00146           int weight_dim,
00147           float * next_weight,
00148           int * ierr );
00149 
00150   //Geometry Based Functions
00151   static int Number_Geometry_Objects  ( void * data,
00152           int * ierr );
00153 
00154   static void Geometry_Values ( void * data,
00155         int num_gid_entries,
00156         int num_lid_entries,
00157         ZOLTAN_ID_PTR global_id, 
00158         ZOLTAN_ID_PTR local_id,
00159         double * geometry_vector,
00160         int * ierr );
00161 
00162   //Graph Based Functions
00163   static int Number_Edges     ( void * data,
00164         int num_gid_entries,
00165         int num_lid_entries,
00166         ZOLTAN_ID_PTR global_id, 
00167         ZOLTAN_ID_PTR local_id,
00168         int * ierr );
00169 
00170   static void Edge_List       ( void * data,
00171         int num_gid_entries,
00172         int num_lid_entries,
00173         ZOLTAN_ID_PTR global_id, 
00174         ZOLTAN_ID_PTR local_id,
00175         ZOLTAN_ID_PTR neighbor_global_ids,
00176         int * neighbor_procs,
00177         int weight_dim,
00178         float * edge_weights,
00179         int * ierr );
00180 
00181   //Tree Based Functions
00182   static int Number_Coarse_Objects    ( void * data,
00183           int * ierr );
00184 
00185   static void Coarse_Object_List      ( void * data,
00186           int num_gid_entries,
00187           int num_lid_entries,
00188           ZOLTAN_ID_PTR global_ids,
00189           ZOLTAN_ID_PTR local_ids,
00190           int * assigned,
00191           int * number_vertices,
00192           ZOLTAN_ID_PTR vertices,
00193           int * in_order,
00194           ZOLTAN_ID_PTR in_vertex,
00195           ZOLTAN_ID_PTR out_vertex,
00196           int * ierr );
00197 
00198   static int First_Coarse_Object      ( void * data,
00199           int num_gid_entries,
00200           int num_lid_entries,
00201           ZOLTAN_ID_PTR first_global_id,
00202           ZOLTAN_ID_PTR first_local_id,
00203           int * assigned,
00204           int * number_vertices,
00205           ZOLTAN_ID_PTR vertices,
00206           int * in_order,
00207           ZOLTAN_ID_PTR in_vertex,
00208           ZOLTAN_ID_PTR out_vertex,
00209           int * ierr );
00210 
00211   static int Next_Coarse_Object       ( void * data,
00212           int num_gid_entries,
00213           int num_lid_entries,
00214           ZOLTAN_ID_PTR global_id,
00215           ZOLTAN_ID_PTR local_id,
00216           ZOLTAN_ID_PTR next_global_id,
00217           ZOLTAN_ID_PTR next_local_id,
00218           int * assigned,
00219           int * number_vertices,
00220           ZOLTAN_ID_PTR vertices,
00221           ZOLTAN_ID_PTR in_vertex,
00222           ZOLTAN_ID_PTR out_vertex,
00223           int * ierr );
00224 
00225   static int Number_Children  ( void * data,
00226         int num_gid_entries,
00227         int num_lid_entries,
00228         ZOLTAN_ID_PTR global_id, 
00229         ZOLTAN_ID_PTR local_id,
00230         int * ierr);
00231 
00232   static void Child_List      ( void * data,
00233         int num_gid_entries,
00234         int num_lid_entries,
00235         ZOLTAN_ID_PTR parent_global_id, 
00236         ZOLTAN_ID_PTR parent_local_id,
00237         ZOLTAN_ID_PTR child_global_ids, 
00238         ZOLTAN_ID_PTR child_local_ids,
00239         int * assigned,
00240         int * number_vertices,
00241         ZOLTAN_ID_PTR vertices,
00242         ZOLTAN_REF_TYPE * reference_type,
00243         ZOLTAN_ID_PTR in_vertex,
00244         ZOLTAN_ID_PTR out_vertex,
00245         int * ierr );
00246 
00247   static void Child_Weight    ( void * data,
00248         int num_gid_entries,
00249         int num_lid_entries,
00250         ZOLTAN_ID_PTR global_id, 
00251         ZOLTAN_ID_PTR local_id,
00252         int weight_dim,
00253         float * object_weight,
00254         int * ierr );
00255 
00256 };
00257 
00258 } //namespace Zoltan
00259 
00260 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines