ZOLTAN_OBJ_SIZE_MULTI_FN or ZOLTAN_OBJ_SIZE_FNThe "MULTI_" versions of the packing/unpacking functions take lists of IDs as input and pack/unpack data for all objects in the lists. Only one function of each type must be provided (e.g., either a ZOLTAN_PACK_OBJ_FN or ZOLTAN_PACK_OBJ_MULTI_FN, but not both).
ZOLTAN_PACK_OBJ_MULTI_FN or ZOLTAN_PACK_OBJ_FN
ZOLTAN_UNPACK_OBJ_MULTI_FN or ZOLTAN_UNPACK_OBJ_FN
Optional, additional query functions for migration may also be registered; these functions are called at the beginning, middle, and end of migration in Zoltan_Migrate. Interprocessor communication is allowed in these functions.
ZOLTAN_PRE_MIGRATE_PP_FNFor backward compatibility with previous versions of Zoltan, the following functions may be used with Zoltan_Help_Migrate.
ZOLTAN_MID_MIGRATE_PP_FN
ZOLTAN_POST_MIGRATE_PP_FN
ZOLTAN_PRE_MIGRATE_FN
ZOLTAN_MID_MIGRATE_FN
ZOLTAN_POST_MIGRATE_FN
C and C++: |
typedef int ZOLTAN_OBJ_SIZE_FN(
void *data, int num_gid_entries, int num_lid_entries, ZOLTAN_ID_PTR global_id, ZOLTAN_ID_PTR local_id, int *ierr); |
FORTRAN: | FUNCTION Obj_Size(data, num_gid_entries, num_lid_entries,
global_id, local_id, ierr)
INTEGER(Zoltan_INT) :: Obj_Size <type-data>, INTENT(IN) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_id, local_id INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_OBJ_SIZE_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
global_id | Pointer to the global ID of the object. |
local_id | Pointer to the local ID of the object. |
ierr | Error code to be set by function. |
Returned Value: | |
int | The size (in bytes) of the required data buffer. |
C and C++: |
typedef void ZOLTAN_OBJ_SIZE_MULTI_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_ids, ZOLTAN_ID_PTR global_ids, ZOLTAN_ID_PTR local_ids, int *sizes, int *ierr); |
FORTRAN: | SUBROUTINE Obj_Size_Multi(data, num_gid_entries, num_lid_entries,
num_ids, global_ids, local_ids, sizes, ierr)
<type-data>, INTENT(IN) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries, num_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_ids, local_ids INTEGER(Zoltan_INT), INTENT(OUT), DIMENSION(*) :: sizes INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_OBJ_SIZE_MULTI_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
num_ids | The number of objects whose sizes are to be returned. |
global_ids | An array of global IDs of the objects. The ID for the i-th object begins in global_ids[i*num_gid_entries]. |
local_ids | An array of local IDs of the objects. The ID for the i-th object begins in local_ids[i*num_lid_entries]. |
sizes | Upon return, array of sizes (in bytes) for each object in the ID lists. |
ierr | Error code to be set by function. |
C and C++: |
typedef void ZOLTAN_PACK_OBJ_FN (
void *data, int num_gid_entries, int num_lid_entries, ZOLTAN_ID_PTR global_id, ZOLTAN_ID_PTR local_id, int dest, int size, char *buf, int *ierr); |
FORTRAN: | SUBROUTINE Pack_Obj(data, num_gid_entries, num_lid_entries,
global_id, local_id, dest, size, buf, ierr)
<type-data>, INTENT(IN) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_id INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: local_id INTEGER(Zoltan_INT), INTENT(IN) :: dest, size INTEGER(Zoltan_INT), INTENT(OUT), DIMENSION(*) :: buf INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_PACK_OBJ_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
global_id | The global ID of the object for which data should be copied into the communication buffer. |
local_id | The local ID of the object for which data should be copied into the communication buffer. |
dest | The destination part (i.e., the part to which the object is being sent) |
size | The size (in bytes) of the communication buffer for the specified object. This value is at least as large as the value returned by the ZOLTAN_OBJ_SIZE_MULTI_FN or ZOLTAN_OBJ_SIZE_FN query function; it may be slightly larger due to padding for data alignment in the buffer. |
buf | The starting address of the communication buffer into which the object's data should be packed. |
ierr | Error code to be set by function. |
C and C++: |
typedef void ZOLTAN_PACK_OBJ_MULTI_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_ids, ZOLTAN_ID_PTR global_ids, ZOLTAN_ID_PTR local_ids, int *dest, int *sizes, int *idx, char *buf, int *ierr); |
FORTRAN: | SUBROUTINE Pack_Obj_Multi(data, num_gid_entries, num_lid_entries,
num_ids, global_ids, local_ids, dest, sizes, idx, buf, ierr)
<type-data>, INTENT(IN) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries, num_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: dest INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: sizes INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: idx INTEGER(Zoltan_INT), INTENT(OUT), DIMENSION(*) :: buf INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_PACK_OBJ_FN_MULTI_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
num_ids | The number of objects to be packed. |
global_ids | An array of global IDs of the objects. The ID for the i-th object begins in global_ids[i*num_gid_entries]. |
local_ids | An array of local IDs of the objects. The ID for the i-th object begins in local_ids[i*num_lid_entries]. |
dest | An array of destination part numbers (i.e., the parts to which the objects are being sent) |
sizes | An array containing the per-object sizes (in bytes) of the communication buffer for each object. Each value is at least as large as the corresponding value returned by the ZOLTAN_OBJ_SIZE_MULTI_FN or ZOLTAN_OBJ_SIZE_FN query function; it may be slightly larger due to padding for data alignment in the buffer. |
idx | For each object, an index into the buf array giving the starting location of that object's data. Data for the i-th object are stored in buf[idx[i]], buf[idx[i]+1], ..., buf[idx[i]+sizes[i]-1]. Because Zoltan adds some tag information to packed data, idx[i] != sum[j=0,i-1](sizes[j]). |
buf | The address of the communication buffer into which the objects' data should be packed. |
ierr | Error code to be set by function. |
C and C++: |
typedef void ZOLTAN_UNPACK_OBJ_FN
(
void *data, int num_gid_entries, ZOLTAN_ID_PTR global_id, int size, char *buf, int *ierr); |
FORTRAN: | SUBROUTINE Unpack_Obj(data, num_gid_entries, global_id,
size, buf, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_id INTEGER(Zoltan_INT), INTENT(IN) :: size INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: buf INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_UNPACK_OBJ_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
global_id | The global ID of the object whose data has been received in the communication buffer. |
size | The size (in bytes) of the object's data in the communication buffer. This value is at least as large as the value returned by the ZOLTAN_OBJ_SIZE_MULTI_FN or ZOLTAN_OBJ_SIZE_FN query function; it may be slightly larger due to padding for data alignment in the buffer. |
buf | The starting address of the communication buffer for this object. |
ierr | Error code to be set by function. |
C and C++: |
typedef void ZOLTAN_UNPACK_OBJ_MULTI_FN
(
void *data, int num_gid_entries, int num_ids, ZOLTAN_ID_PTR global_ids, int *sizes, int *idx, char *buf, int *ierr); |
FORTRAN: | SUBROUTINE Unpack_Obj_Multi(data, num_gid_entries, num_ids, global_ids,
sizes, idx, buf, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: sizes INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: idx INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: buf INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_UNPACK_OBJ_MULTI_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_ids | The number of objects to be unpacked. |
global_ids | An array of global IDs of the objects. The ID for the i-th object begins in global_ids[i*num_gid_entries]. |
sizes | An array containing the per-object sizes (in bytes) of the communication buffer for each object. Each value is at least as large as the corresponding value returned by the ZOLTAN_OBJ_SIZE_MULTI_FN or ZOLTAN_OBJ_SIZE_FN query function; it may be slightly larger due to padding for data alignment in the buffer. |
idx | For each object, an index into the buf array giving the starting location of that object's data. Data for the i-th object are stored in buf[idx[i]], buf[idx[i]+1], ..., buf[idx[i]+sizes[i]-1]. Because Zoltan adds some tag information to packed data, idx[i] != sum[j=0,i-1](sizes[j]). |
buf | The address of the communication buffer from which data is unpacked. |
ierr | Error code to be set by function. |
C and C++: |
typedef void ZOLTAN_PRE_MIGRATE_PP_FN
(
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int *import_to_part, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *export_to_part, int *ierr); |
FORTRAN: | SUBROUTINE Pre_Migrate_PP(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, import_to_part, num_export,
export_global_ids, export_local_ids, export_procs, export_to_part, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_to_part, export_to_part INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_PRE_MIGRATE_PP_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
num_import | The number of objects that will be received by this processor. |
import_global_ids | An array of num_import global IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_local_ids | An array of num_import local IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_procs | An array of size num_import listing the processor IDs of the source processors. This array may be NULL, as the processor does not necessarily need to know which objects is will receive. |
import_to_part | An array of size num_import listing the parts to which objects will be imported. This array may be NULL, as the processor does not necessarily need to know from which objects it will receive. |
num_export | The number of objects that will be sent from this processor to other processors. |
export_global_ids | An array of num_export global IDs of objects to be sent from this processor. |
export_local_ids | An array of num_export local IDs of objects to be sent from this processor. |
export_procs | An array of size num_export listing the processor IDs of the destination processors. |
export_to_part | An array of size num_export listing the parts to which objects will be sent. |
ierr | Error code to be set by function. |
Default: | |
No pre-processing is done if a ZOLTAN_PRE_MIGRATE_PP_FN is not registered. |
C and C++: |
typedef void ZOLTAN_MID_MIGRATE_PP_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int *import_to_part, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *export_to_part, int *ierr); |
FORTRAN: | SUBROUTINE Mid_Migrate_PP(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, import_to_part, num_export,
export_global_ids, export_local_ids, export_procs, export_to_part, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_to_part, export_to_part INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_MID_MIGRATE_PP_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
num_import | The number of objects that will be received by this processor. |
import_global_ids | An array of num_import global IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_local_ids | An array of num_import local IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_procs | An array of size num_import listing the processor IDs of the source processors. This array may be NULL, as the processor does not necessarily need to know which objects is will receive. |
import_to_part | An array of size num_import listing the parts to which objects will be imported. This array may be NULL, as the processor does not necessarily need to know from which objects it will receive. |
num_export | The number of objects that will be sent from this processor to other processors. |
export_global_ids | An array of num_export global IDs of objects to be sent from this processor. |
export_local_ids | An array of num_export local IDs of objects to be sent from this processor. |
export_procs | An array of size num_export listing the processor IDs of the destination processors. |
export_to_part | An array of size num_export listing the parts to which objects will be sent. |
ierr | Error code to be set by function. |
Default: | |
No processing is done if a ZOLTAN_MID_MIGRATE_PP_FN is not registered. |
C and C++: |
typedef void ZOLTAN_POST_MIGRATE_PP_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int *import_to_part, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *export_to_part, int *ierr); |
FORTRAN: | SUBROUTINE Post_Migrate_PP(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, import_to_part, num_export,
export_global_ids, export_local_ids, export_procs, export_to_part, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_to_part, export_to_part INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_POST_MIGRATE_PP_FN_TYPE |
Arguments: | |
data | Pointer to user-defined data. |
num_gid_entries | The number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
num_lid_entries | The number of array entries used to describe a single local ID. This value is the maximum value over all processors of the parameter NUM_LID_ENTRIES. |
num_import | The number of objects that will be received by this processor. |
import_global_ids | An array of num_import global IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_local_ids | An array of num_import local IDs of objects to be received by this processor. This array may be NULL, as the processor does not necessarily need to know which objects it will receive. |
import_procs | An array of size num_import listing the processor IDs of the source processors. This array may be NULL, as the processor does not necessarily need to know which objects is will receive. |
import_to_part | An array of size num_import listing the parts to which objects will be imported. This array may be NULL, as the processor does not necessarily need to know from which objects it will receive. |
num_export | The number of objects that will be sent from this processor to other processors. |
export_global_ids | An array of num_export global IDs of objects to be sent from this processor. |
export_local_ids | An array of num_export local IDs of objects to be sent from this processor. |
export_procs | An array of size num_export listing the processor IDs of the destination processors. |
export_to_part | An array of size num_export listing the parts to which objects will be sent. |
ierr | Error code to be set by function. |
Default: | |
No post-processing is done if a ZOLTAN_POST_MIGRATE_PP_FN is not registered. |
C: |
typedef void ZOLTAN_PRE_MIGRATE_FN
(
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *ierr); |
FORTRAN: | SUBROUTINE Pre_Migrate(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, num_export,
export_global_ids, export_local_ids, export_procs, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_PRE_MIGRATE_FN_TYPE |
Arguments: | |
All arguments are analogous to those in ZOLTAN_PRE_MIGRATE_PP_FN. Part-assignment arguments import_to_part and export_to_part are not included, as processor and parts numbers are considered to be the same in Zoltan_Help_Migrate. | |
Default: | |
No pre-processing is done if a ZOLTAN_PRE_MIGRATE_FN is not registered. |
C: |
typedef void ZOLTAN_MID_MIGRATE_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *ierr); |
FORTRAN: | SUBROUTINE Mid_Migrate(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, num_export,
export_global_ids, export_local_ids, export_procs, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_MID_MIGRATE_FN_TYPE |
Arguments: | |
All arguments are analogous to those in ZOLTAN_MID_MIGRATE_PP_FN. Part-assignment arguments import_to_part and export_to_part are not included, as processor and parts numbers are considered to be the same in Zoltan_Help_Migrate. | |
Default: | |
No processing is done if a ZOLTAN_MID_MIGRATE_FN is not registered. |
C: |
typedef void ZOLTAN_POST_MIGRATE_FN (
void *data, int num_gid_entries, int num_lid_entries, int num_import, ZOLTAN_ID_PTR import_global_ids, ZOLTAN_ID_PTR import_local_ids, int *import_procs, int num_export, ZOLTAN_ID_PTR export_global_ids, ZOLTAN_ID_PTR export_local_ids, int *export_procs, int *ierr); |
FORTRAN: | SUBROUTINE Post_Migrate(data, num_gid_entries, num_lid_entries,
num_import, import_global_ids, import_local_ids, import_procs, num_export,
export_global_ids, export_local_ids, export_procs, ierr)
<type-data>, INTENT(INOUT) :: data INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries, num_lid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_import, num_export INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_global_ids, export_global_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_local_ids, export_local_ids INTEGER(Zoltan_INT), INTENT(IN), DIMENSION(*) :: import_procs, export_procs INTEGER(Zoltan_INT), INTENT(OUT) :: ierr <type-data> can be any of INTEGER(Zoltan_INT), DIMENSION(*) or REAL(Zoltan_FLOAT), DIMENSION(*) or REAL(Zoltan_DOUBLE), DIMENSION(*) or TYPE(Zoltan_User_Data_x) where x is 1, 2, 3 or 4. See the section on Fortran query functions for an explanation. |
Function Type: | ZOLTAN_POST_MIGRATE_FN_TYPE |
Arguments: | |
All arguments are analogous to those in ZOLTAN_POST_MIGRATE_PP_FN. Part-assignment arguments import_to_part and export_to_part are not included, as processor and parts numbers are considered to be the same in Zoltan_Help_Migrate. | |
Default: | |
No post-processing is done if a ZOLTAN_POST_MIGRATE_FN is not registered. |