petsc-3.4.5 2014-06-29

PetscThreadCommGetInts

Gets pointers to locations for storing three PetscInts that may be passed to PetscThreadCommRunKernel to ensure that the scalar values remain valid even after the main thread exits the calling function.

Synopsis

#include "petscthreadcomm.h" 
PetscErrorCode PetscThreadCommGetInts(MPI_Comm comm,PetscInt **val1, PetscInt **val2, PetscInt **val3)

Input Parameters

comm - the MPI communicator having the thread communicator
val1 - pointer to store the first integer value
val2 - pointer to store the second integer value
val3 - pointer to store the third integer value

Notes

This is a utility function to ensure that any scalars passed to PetscThreadCommRunKernel remain valid even after the main thread exits the calling function. If any scalars need to passed to PetscThreadCommRunKernel then these should be first stored in the locations provided by PetscThreadCommGetInts()

Pass NULL if any pointers are not needed.

Called by the main thread only, not from within kernels

Typical usage

PetscScalar *valptr; PetscThreadCommGetScalars(comm,&valptr,NULL,NULL); *valptr = alpha; (alpha is the scalar you wish to pass in PetscThreadCommRunKernel)

PetscThreadCommRunKernel(comm,(PetscThreadKernel)kernel_func,3,x,y,valptr);

See Also

PetscThreadCommRunKernel()

Level:developer
Location:
src/sys/threadcomm/interface/threadcomm.c
Index of all PetscThreadComm routines
Table of Contents for all manual pages
Index of all manual pages