You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							861 lines
						
					
					
						
							39 KiB
						
					
					
				
			
		
		
	
	
							861 lines
						
					
					
						
							39 KiB
						
					
					
				| <!-------- @HEADER
 | |
|  !
 | |
|  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
|  !
 | |
|  !  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
 | |
|  !                  Copyright 2012 Sandia Corporation
 | |
|  !
 | |
|  ! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
 | |
|  ! the U.S. Government retains certain rights in this software.
 | |
|  !
 | |
|  ! Redistribution and use in source and binary forms, with or without
 | |
|  ! modification, are permitted provided that the following conditions are
 | |
|  ! met:
 | |
|  !
 | |
|  ! 1. Redistributions of source code must retain the above copyright
 | |
|  ! notice, this list of conditions and the following disclaimer.
 | |
|  !
 | |
|  ! 2. Redistributions in binary form must reproduce the above copyright
 | |
|  ! notice, this list of conditions and the following disclaimer in the
 | |
|  ! documentation and/or other materials provided with the distribution.
 | |
|  !
 | |
|  ! 3. Neither the name of the Corporation nor the names of the
 | |
|  ! contributors may be used to endorse or promote products derived from
 | |
|  ! this software without specific prior written permission.
 | |
|  !
 | |
|  ! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
 | |
|  ! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
|  ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | |
|  ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
 | |
|  ! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 | |
|  ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 | |
|  ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 | |
|  ! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 | |
|  ! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | |
|  ! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
|  ! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
|  !
 | |
|  ! Questions? Contact Karen Devine	kddevin@sandia.gov
 | |
|  !                    Erik Boman	egboman@sandia.gov
 | |
|  !
 | |
|  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
|  !
 | |
|  ! @HEADER
 | |
| -------> 
 | |
| <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 | |
| <html>
 | |
| <head>
 | |
|    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 | |
|    <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
 | |
|    <meta name="sandia.approved" content="SAND99-1376">
 | |
|    <meta name="author" content="karen devine, kddevin@sandia.gov">
 | |
|    <title> Zoltan Developer's Guide:  Load Balancing Data Structures</title>
 | |
| 
 | |
| </head>
 | |
| <body bgcolor="#FFFFFF">
 | |
| 
 | |
| <div align=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> 
 | |
| |  <a href="dev_services.html">Next</a>  |  <a href="dev_lb_types.html">Previous</a></i></b></div>
 | |
| 
 | |
| <h2>
 | |
| <a NAME="interface_structs"></a>Data Structures</h2>
 | |
| The <b>Zoltan_Struct</b> data structure is the main data structure for interfacing
 | |
| between Zoltan and the application. The application
 | |
| creates an <b>Zoltan_Struct</b> data structure through a call to <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.
 | |
| Fields of the data structure are then set through calls from the application
 | |
| to interface routines such as <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| and <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>.
 | |
| The fields of the <b>Zoltan_Struct</b> data structure are listed and described
 | |
| in the <a href="#Zoltan_Struct">table</a> below. See the <a href="../ug_html/ug.html">Zoltan
 | |
| User's Guide</a> for descriptions of the function types used in the <b>Zoltan_Struct</b>.
 | |
| <p>A <b>Zoltan_Struct</b> data structure <i>zz</i> is passed from the application
 | |
| to Zoltan in the call to <b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>.
 | |
| This data structure is passed to the individual load-balancing routines.
 | |
| The <i>zz->LB.Data_Structure</i> pointer field should point to the main data
 | |
| structures of the particular load-balancing algorithm so that the data
 | |
| structures may be preserved for future calls to <b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>
 | |
| and so that separate instances of the same load-balancing algorithm (with
 | |
| different <b>Zoltan_Struct</b> structures) can be used by the application.
 | |
| <br> 
 | |
| <center><table BORDER WIDTH="90%" NOSAVE >
 | |
| <tr>
 | |
| <th><a NAME="Zoltan_Struct"></a>Fields of Zoltan_Struct</th>
 | |
| 
 | |
| <th>Description</th>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>MPI_Comm <i>Communicator</i></td>
 | |
| 
 | |
| <td>The MPI communicator to be used by the Zoltan structure; set
 | |
| by
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Proc</i></td>
 | |
| 
 | |
| <td>The rank of the processor within <i>Communicator</i>; set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Num_Proc</i></td>
 | |
| 
 | |
| <td>The number of processors in <i>Communicator</i>; set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Num_GID</i></td>
 | |
| 
 | |
| <td>The number of array entries used to represent a 
 | |
| <a href="dev_lb_types.html">global ID</a>.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#NUM_GID_ENTRIES">NUM_GID_ENTRIES</a>.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Num_LID</i></td>
 | |
| 
 | |
| <td>The number of array entries used to represent a 
 | |
| <a href="dev_lb_types.html">local ID</a>.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#NUM_LID_ENTRIES">NUM_LID_ENTRIES</a>.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i><a href="../ug_html/ug_param.html#Debug Levels in Zoltan">Debug_Level</a></i></td>
 | |
| 
 | |
| <td>A flag indicating the amount of debugging information that should be
 | |
| printed by Zoltan.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Fortran</i></td>
 | |
| 
 | |
| <td>A flag indicating whether or not the structure was created by a call
 | |
| from Fortran.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>PARAM_LIST *<i> Params</i></td>
 | |
| 
 | |
| <td>A linked list of string pairs. The first item in each pair is the name
 | |
| of a modifiable parameter. The second string is the new value the parameter
 | |
| should adopt. These string pairs are read upon invocation of a Zoltan
 | |
| algorithm and the appropriate parameter changes are made. This design allows
 | |
| for different Zoltan structures to have different parameter settings.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr VALIGN=TOP NOSAVE>
 | |
| <td NOSAVE>int <i>Deterministic</i></td>
 | |
| 
 | |
| <td>Flag indicating whether algorithms used should be forced to be deterministic;
 | |
| used to obtain completely reproducible results.  Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#DETERMINISTIC">DETERMINISTIC</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Obj_Weight_Dim</i></td>
 | |
| 
 | |
| <td>Number of weights per object.
 | |
|   Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#OBJ_WEIGHT_DIM">OBJ_WEIGHT_DIM</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Edge_Weight_Dim</i></td>
 | |
| 
 | |
| <td>For graph algorithms, number of weights per edge. 
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#EDGE_WEIGHT_DIM">EDGE_WEIGHT_DIM</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Timer</i></td>
 | |
| 
 | |
| <td>  Timer type that is currently active.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_param.html#TIMER">TIMER</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_EDGES">ZOLTAN_NUM_EDGES_FN</a>
 | |
| *<i> Get_Num_Edges</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of edges associated with a given object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Edges_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Edges_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Edges</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Edges_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_EDGE_LIST_FN">ZOLTAN_EDGE_LIST_FN</a>
 | |
| *<i> Get_Edge_List</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns a given
 | |
| object's neighbors along its edges. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Edge_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Edge_List_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Edge_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Edge_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_GEOM_FN">ZOLTAN_NUM_GEOM_FN</a>
 | |
| *<i> Get_Num_Geom</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of geometry values needed to describe the positions of objects. Set in
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Geom_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Geom_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Geom</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Geom_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_GEOM_FN">ZOLTAN_GEOM_FN</a>
 | |
| *<i> Get_Geom</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns a given
 | |
| object's geometry information (e.g., coordinates). Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Geom_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Geom_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Geom</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Geom_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN</a>
 | |
| *<i> Get_Num_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of objects assigned to the processor before load balancing. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN</a>
 | |
| *<i> Get_Obj_List</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns arrays
 | |
| of objects assigned to the processor before load balancing. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Obj_List_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_OBJ_FN">ZOLTAN_FIRST_OBJ_FN</a>
 | |
| *<i> Get_First_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the first
 | |
| object assigned to the processor before load balancing. Used with <i>Get_Next_Obj</i>
 | |
| as an iterator over all objects. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_First_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_First_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_OBJ_FN">ZOLTAN_NEXT_OBJ_FN</a>
 | |
| *<i> Get_Next_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that, given an object
 | |
| assigned to the processor, returns the next object assigned to the processor
 | |
| before load balancing. Used with <i>Get_First_Obj</i> as an iterator over
 | |
| all objects. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Next_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Next_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_BORDER_OBJ_FN">ZOLTAN_NUM_BORDER_OBJ_FN</a>
 | |
| *<i> Get_Num_Border_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of objects sharing a subdomain border with a given processor. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Border_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_BORDER_OBJ_LIST_FN">ZOLTAN_BORDER_OBJ_LIST_FN</a>
 | |
| *<i> Get_Border_Obj_List</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns arrays
 | |
| of objects that share a subdomain border with a given processor. Set in
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Border_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Border_Obj_List_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Border_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Border_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_BORDER_OBJ_FN">ZOLTAN_FIRST_BORDER_OBJ_FN</a>
 | |
| *<i> Get_First_Border_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the first
 | |
| object sharing a subdomain border with a given processor. Used with <i>Get_Next_Border_Obj</i>
 | |
| as an iterator over objects along borders. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_First_Border_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_First_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_BORDER_OBJ_FN">ZOLTAN_NEXT_BORDER_OBJ_FN</a>
 | |
| *<i> Get_Next_Border_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that, given an object,
 | |
| returns the next object sharing a subdomain border with a given processor.
 | |
| Used with <i>Get_First_Border_Obj</i> as an iterator over objects along
 | |
| borders. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Next_Border_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Next_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Border_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_COARSE_OBJ_FN">ZOLTAN_NUM_COARSE_OBJ_FN</a>
 | |
| *<i> Get_Num_Coarse_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of objects in the initial coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Coarse_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_COARSE_OBJ_LIST_FN">ZOLTAN_COARSE_OBJ_LIST_FN</a>
 | |
| *<i> Get_Coarse_Obj_List</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns arrays
 | |
| of objects in the initial coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Coarse_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Coarse_Obj_List_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Coarse_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Coarse_Obj_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_COARSE_OBJ_FN">ZOLTAN_FIRST_COARSE_OBJ_FN</a>
 | |
| *<i> Get_First_Coarse_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the first
 | |
| object of the initial coarse grid. Used with <i>Get_Next_Coarse_Obj</i>
 | |
| as an iterator over all objects in the coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_First_Coarse_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_First_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_COARSE_OBJ_FN">ZOLTAN_NEXT_COARSE_OBJ_FN</a>
 | |
| *<i> Get_Next_Coarse_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that, given an object
 | |
| in the initial coarse grid, returns the next object in the coarse grid.
 | |
| Used with <i>Get_First_Coarse_Obj</i> as an iterator over all objects in
 | |
| the coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Next_Coarse_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Next_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Coarse_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_CHILD_FN">ZOLTAN_NUM_CHILD_FN</a>
 | |
| *<i> Get_Num_Child</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the number
 | |
| of refinement children of an object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Child_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Num_Child_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Num_Child</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Child_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_CHILD_LIST_FN">ZOLTAN_CHILD_LIST_FN</a>
 | |
| *<i> Get_Child_List</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns arrays
 | |
| of objects that are refinement children of a given object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Child_List_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Child_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_List_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_CHILD_WEIGHT_FN">ZOLTAN_CHILD_WEIGHT_FN</a>
 | |
| *<i> Get_Child_Weight</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the weight
 | |
| of an object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_Weight_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Child_Weight_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Child_Weight</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_Weight_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_OBJ_SIZE_FN">ZOLTAN_OBJ_SIZE_FN</a>
 | |
| *<i> Get_Obj_Size</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that returns the size
 | |
| (in bytes) of data objects to be migrated. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>. 
 | |
| Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_Size_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Get_Obj_Size_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Get_Obj_Size</i>.  Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_Size_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PACK_OBJ_FN">ZOLTAN_PACK_OBJ_FN</a>
 | |
| *<i> Pack_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that packs all data
 | |
| for a given object into a communication buffer provided by the migration
 | |
| tools in preparation for data-migration communication. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
 | |
| for each object to be exported.  Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pack_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Pack_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Pack_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pack_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_UNPACK_OBJ_FN">ZOLTAN_UNPACK_OBJ_FN</a>
 | |
| *<i> Unpack_Obj</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that unpacks all data
 | |
| for a given object from a communication buffer after the communication
 | |
| for data migration is completed. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
 | |
| for each imported object.  Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Unpack_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Unpack_Obj_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Unpack_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Unpack_Obj_Fn</a></b>.</td>
 | |
| </tr>
 | |
| <tr>
 | |
| <td VALIGN=TOP>ZOLTAN_LB <i>LB</i></td>
 | |
| 
 | |
| <td>A structure with data used by the load-balancing tools. See the <a href="#LB_Fields">table</a>
 | |
| below.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>ZOLTAN_MIGRATE <i>Migrate</i></td>
 | |
| 
 | |
| <td>A structure with data used by the migration tools. See the <a href="#Migrate_Fields">table</a>
 | |
| below.</td>
 | |
| </tr>
 | |
| 
 | |
| <caption ALIGN=BOTTOM><i>Fields of the </i><b>Zoltan_Struct</b><i> data structure.</i></caption>
 | |
| </table></center>
 | |
| 
 | |
| <p>Each <b>Zoltan_Struct</b> data structure has a <b>ZOLTAN_LB</b> sub-structure.
 | |
| The <b>ZOLTAN_LB</b> structure contains data used by the load-balancing tools,
 | |
| including pointers to specific load-balancing methods and load-balancing data
 | |
| structures. 
 | |
| The fields of the <b>ZOLTAN_LB</b> structure are listed and described
 | |
| in in the following <a href="#LB_Fields">table</a>.
 | |
| <br> 
 | |
| <center><table BORDER WIDTH="90%" NOSAVE >
 | |
| <tr>
 | |
| <th><a NAME="LB_Fields"></a>Fields of ZOLTAN_LB</th>
 | |
| 
 | |
| <th>Description</th>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void *<i> Data_Structure</i></td>
 | |
| 
 | |
| <td>The <a href="dev_add_struct.html">data structure</a> used by the selected load-balancing algorithm; this
 | |
| pointer is cast by the algorithm to the appropriate data type.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>double <i>Imbalance_Tol</i></td>
 | |
| 
 | |
| <td>The degree of load balance which is considered acceptable.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#IMBALANCE_TOL">IMBALANCE_TOL</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Num_Global_Parts</i></td>
 | |
| <td>
 | |
| The total number of parts to be generated.  
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#NUM_GLOBAL_PARTS">NUM_GLOBAL_PARTS</a> or through
 | |
| summation of 
 | |
| <a href="../ug_html/ug_alg.html#NUM_LOCAL_PARTS">NUM_LOCAL_PARTS</a> 
 | |
| parameters.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Num_Local_Parts</i></td>
 | |
| <td>
 | |
| The number of parts to be generated on this processor.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#NUM_LOCAL_PARTS">NUM_LOCAL_PARTS</a> or (roughly) through
 | |
| division of the
 | |
| <a href="../ug_html/ug_alg.html#NUM_GLOBAL_PARTS">NUM_GLOBAL_PARTS</a>
 | |
| parameter by the number of processors.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Return_Lists</i></td>
 | |
| 
 | |
| <td>A flag indicating whether the application wants import and/or export
 | |
| lists returned by <a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition"><b>Zoltan_LB_Partition</b></a>.
 | |
| Set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>ZOLTAN_LB_METHOD <i>Method</i></td>
 | |
| 
 | |
| <td>An enumerated type designating which load-balancing algorithm should
 | |
| be used with this Zoltan structure; 
 | |
| set via a call to
 | |
| <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#LB_METHOD">LB_METHOD</a>.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>LB_FN *<i> LB_Fn</i></td>
 | |
| 
 | |
| <td>A pointer to the load-balancing function specified by <i>Method</i>.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>ZOLTAN_LB_FREE_DATA_FN <i>*Free_Structure</i></td>
 | |
| <td> Pointer to a function that frees the Data_Structure memory.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>ZOLTAN_LB_POINT_ASSIGN_FN <i>*Point_Assign</i></td>
 | |
| <td> Pointer to the function that performs 
 | |
| <a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Point_Assign">Zoltan_LB_Point_Assign</a> for the particular load-balancing method.  
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <td VALIGN=TOP>ZOLTAN_LB_BOX_ASSIGN_FN <i>*Box_Assign</i></td>
 | |
| <td> Pointer to the function that performs 
 | |
| <a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Box_Assign">Zoltan_LB_Box_Assign</a> for the particular load-balancing method.  
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <caption ALIGN=BOTTOM><i>Fields of the </i><b>ZOLTAN_LB</b><i> data structure.</i></caption>
 | |
| </table></center>
 | |
| 
 | |
| 
 | |
| <p>Each <b>Zoltan_Struct</b> data structure has a <b>ZOLTAN_MIGRATE</b> sub-structure.
 | |
| The <b>ZOLTAN_MIGRATE</b> structure contains data used by the migration tools,
 | |
| including pointers to pre- and post-processing routines. These pointers
 | |
| are set through the interface routine <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| and are used in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>.
 | |
| The fields of the <b>ZOLTAN_MIGRATE</b> structure are listed and described
 | |
| in in the following <a href="#Migrate_Fields">table</a>.
 | |
| <br> 
 | |
| <center><table BORDER WIDTH="90%" NOSAVE >
 | |
| <tr>
 | |
| <th><a NAME="Migrate_Fields"></a>Fields of ZOLTAN_MIGRATE</th>
 | |
| 
 | |
| <th>Description</th>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>int <i>Auto_Migrate</i></td>
 | |
| 
 | |
| <td>A flag indicating whether Zoltan should perform
 | |
| auto-migration for the application. If true, Zoltan
 | |
| calls <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
 | |
| to move objects to their new processors; if false, data migration is left
 | |
| to the user. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
 | |
| for <a href="../ug_html/ug_alg.html#AUTO_MIGRATE">AUTO_MIGRATE</a>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PRE_MIGRATE_PP_FN">ZOLTAN_PRE_MIGRATE_PP_FN</a>
 | |
| *<i> Pre_Migrate_PP</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs pre-processing
 | |
| for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
 | |
| before data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_PP_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Pre_Migrate_PP_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Pre_Migrate_PP</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_PP_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_MID_MIGRATE_PP_FN">ZOLTAN_MID_MIGRATE_PP_FN</a>
 | |
| *<i> Mid_Migrate_PP</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs processing
 | |
| between the packing and unpacking operations in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>.
 | |
| Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_PP_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Mid_Migrate_PP_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Mid_Migrate_PP</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_PP_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr NOSAVE>
 | |
| <td VALIGN=TOP NOSAVE><a href="../ug_html/ug_query_mig.html#ZOLTAN_POST_MIGRATE_PP_FN">ZOLTAN_POST_MIGRATE_PP_FN</a>
 | |
| *<i>Post_Migrate_PP</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs post-processing
 | |
| for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
 | |
| after data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_PP_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr NOSAVE>
 | |
| <td VALIGN=TOP NOSAVE>void *<i>Post_Migrate_PP_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Post_Migrate_PP</i>.  Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_PP_Fn</a></b>. </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PRE_MIGRATE_FN">ZOLTAN_PRE_MIGRATE_FN</a>
 | |
| *<i> Pre_Migrate</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs pre-processing
 | |
| for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>
 | |
| before data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_Fn</a></b>.
 | |
| Maintained for backward compatibility with Zoltan v1.3 interface.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Pre_Migrate_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Pre_Migrate</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_MID_MIGRATE_FN">ZOLTAN_MID_MIGRATE_FN</a>
 | |
| *<i> Mid_Migrate</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs processing
 | |
| between the packing and unpacking operations in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>.
 | |
| Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_Fn</a></b>.
 | |
| Maintained for backward compatibility with Zoltan v1.3 interface.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr>
 | |
| <td VALIGN=TOP>void <i>*Mid_Migrate_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Mid_Migrate</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_Fn</a></b>.</td>
 | |
| </tr>
 | |
| 
 | |
| <tr NOSAVE>
 | |
| <td VALIGN=TOP NOSAVE><a href="../ug_html/ug_query_mig.html#ZOLTAN_POST_MIGRATE_FN">ZOLTAN_POST_MIGRATE_FN</a>
 | |
| *<i>Post_Migrate</i></td>
 | |
| 
 | |
| <td>A pointer to an application-registered function that performs post-processing
 | |
| for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>
 | |
| after data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_Fn</a></b>.
 | |
| Maintained for backward compatibility with Zoltan v1.3 interface.
 | |
| </td>
 | |
| </tr>
 | |
| 
 | |
| <tr NOSAVE>
 | |
| <td VALIGN=TOP NOSAVE>void *<i>Post_Migrate_Data</i></td>
 | |
| 
 | |
| <td>A pointer to data provided by the user that will be passed to the function
 | |
| pointed to by <i>Post_Migrate</i>.  Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
 | |
| or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_Fn</a></b>. </td>
 | |
| </tr>
 | |
| 
 | |
| 
 | |
| <caption ALIGN=BOTTOM><i>Fields of the </i><b>ZOLTAN_MIGRATE</b><i> data structure.</i></caption>
 | |
| </table></center>
 | |
| 
 | |
| <p>For each pointer to an application registered function in the
 | |
| <b>Zoltan_Struct</b>
 | |
| and <b>ZOLTAN_MIGRATE</b> data structures there is also a pointer to a Fortran
 | |
| application registered function, of the form ZOLTAN_FUNCNAME_FORT_FN *<i>Get_Funcname_Fort</i>.
 | |
| These are for use within the Fortran interface. The Zoltan routines 
 | |
| should invoke the usual application registered function regardless of whether
 | |
| the Zoltan structure was created from C or Fortran.
 | |
| 
 | |
| 
 | |
| 
 | |
| <hr WIDTH="100%">
 | |
| <br>[<a href="dev.html">Table of Contents</a>  |  <a href="dev_services.html">Next: 
 | |
| Services</a>  |  <a href="dev_lb_types.html">Previous: 
 | |
| ID Data Types</a>  |  <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
 | |
| </body>
 | |
| </html>
 | |
| 
 |