Actual source code: pvecimpl.h
2: #ifndef __PVECIMPL
5: #include private/vecimpl.h
6: #include src/vec/vec/impls/dvecimpl.h
8: typedef struct {
9: VECHEADER
10: MPI_Request *send_waits,*recv_waits; /* for communication during VecAssembly() */
11: PetscInt nsends,nrecvs;
12: PetscScalar *svalues,*rvalues;
13: PetscInt rmax;
14:
15: PetscInt nghost; /* length of local portion including ghost padding */
16:
17: Vec localrep; /* local representation of vector */
18: VecScatter localupdate; /* scatter to update ghost values */
19: } Vec_MPI;
21: EXTERN PetscErrorCode VecNorm_Seq(Vec,NormType,PetscReal *work);
22: EXTERN PetscErrorCode VecMDot_MPI(Vec,PetscInt,const Vec[],PetscScalar *);
23: EXTERN PetscErrorCode VecMTDot_MPI(Vec,PetscInt,const Vec[],PetscScalar *);
24: EXTERN PetscErrorCode VecNorm_MPI(Vec,NormType,PetscReal *);
25: EXTERN PetscErrorCode VecMax_MPI(Vec,PetscInt *,PetscReal *);
26: EXTERN PetscErrorCode VecMin_MPI(Vec,PetscInt *,PetscReal *);
27: EXTERN PetscErrorCode VecDestroy_MPI(Vec);
28: EXTERN PetscErrorCode VecView_MPI_File(Vec,PetscViewer);
29: EXTERN PetscErrorCode VecView_MPI_Files(Vec,PetscViewer);
30: EXTERN PetscErrorCode VecView_MPI_Binary(Vec,PetscViewer);
31: EXTERN PetscErrorCode VecView_MPI_Netcdf(Vec,PetscViewer);
32: EXTERN PetscErrorCode VecView_MPI_Draw_LG(Vec,PetscViewer);
33: EXTERN PetscErrorCode VecView_MPI_Socket(Vec,PetscViewer);
34: EXTERN PetscErrorCode VecView_MPI(Vec,PetscViewer);
35: EXTERN PetscErrorCode VecGetSize_MPI(Vec,PetscInt *);
36: EXTERN PetscErrorCode VecSetValues_MPI(Vec,PetscInt,const PetscInt [],const PetscScalar[],InsertMode);
37: EXTERN PetscErrorCode VecSetValuesBlocked_MPI(Vec,PetscInt,const PetscInt [],const PetscScalar[],InsertMode);
38: EXTERN PetscErrorCode VecAssemblyBegin_MPI(Vec);
39: EXTERN PetscErrorCode VecAssemblyEnd_MPI(Vec);
41: EXTERN PetscErrorCode VecCreate_MPI_Private(Vec,PetscInt,const PetscScalar[]);
43: #endif