MOAB: Mesh Oriented datABase  (version 5.4.1)
iMeshP_extensions.h File Reference
#include "iMeshP.h"
#include "iMeshP_protos.h"
#include "moab_mpi.h"
+ Include dependency graph for iMeshP_extensions.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void iMeshP_getCommunicator (iMesh_Instance instance, int *fcomm, MPI_Comm *ccomm, int *err)
 Convert a fortran to C communicator Given a Fortran communicator, convert to a C communicator that can be passed back to iMeshP. Though this is an iMeshP function, it doesn't take an iMeshP Partition handle, since the (C) communicator is needed by the function that creates the partition. COMMUNICATION: None.
void iMeshP_assignGlobalIds (iMesh_Instance instance, const iMeshP_PartitionHandle partition, const iBase_EntitySetHandle this_set, const int dimension, const int start_id, const int largest_dim_only, const int parallel, const int owned_only, int *err)
 Assign a global id space to entities Assign a global id space to entities and vertices, and optionally intermediate-dimension entities.

Function Documentation

void iMeshP_assignGlobalIds ( iMesh_Instance  instance,
const iMeshP_PartitionHandle  partition,
const iBase_EntitySetHandle  this_set,
const int  dimension,
const int  start_id,
const int  largest_dim_only,
const int  parallel,
const int  owned_only,
int *  err 
)

Assign a global id space to entities Assign a global id space to entities and vertices, and optionally intermediate-dimension entities.

COMMUNICATION: Collective.

Definition at line 1796 of file iMeshP_MOAB.cpp.

References moab::ParallelComm::assign_global_ids(), CHKERR, ErrorCode, moab::ParallelComm::get_pcomm(), iBase_FAILURE, itaps_cast(), MOABI, and RETURN.

{
    ErrorCode rval;

    // get partition set
    EntityHandle partitionset = itaps_cast< EntityHandle >( partition );
    if( !partitionset )
    {
        rval = MB_FAILURE;CHKERR( rval, "failed to get partition set" );
    }

    EntityHandle this_mb_set = itaps_cast< EntityHandle >( this_set );

    // get ParallelComm for partition
    MPI_Comm default_comm;
    ParallelComm* pcomm = ParallelComm::get_pcomm( MOABI, partitionset, &default_comm );
    if( !pcomm )
    {
        RETURN( iBase_FAILURE );
    }

    rval = pcomm->assign_global_ids( this_mb_set, dimension, start_id, largest_dim_only, parallel, owned_only );

    RETURN( rval );
}
void iMeshP_getCommunicator ( iMesh_Instance  instance,
int *  fcomm,
MPI_Comm ccomm,
int *  err 
)

Convert a fortran to C communicator Given a Fortran communicator, convert to a C communicator that can be passed back to iMeshP. Though this is an iMeshP function, it doesn't take an iMeshP Partition handle, since the (C) communicator is needed by the function that creates the partition. COMMUNICATION: None.

Parameters:
instance(In) Mesh instance to contain the partition.
fcomm(In) Pointer to fortran communicator
ccomm(Out) Pointer to the C communicator
err(Out) Error code.

Definition at line 1830 of file iMeshP_MOAB.cpp.

References iBase_SUCCESS, and RETURN.

{
    *ccomm = MPI_Comm_f2c( *fcomm );
    RETURN( iBase_SUCCESS );
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines