Actual source code: pvecimpl.h
1: /* $Id: pvecimpl.h,v 1.33 2001/01/15 21:45:04 bsmith Exp $ */
2: /*
3: */
5: #ifndef __PVECIMPL
8: #include "src/vec/vecimpl.h"
9: #include "src/vec/impls/dvecimpl.h"
11: typedef struct {
12: VECHEADER
13: int size,rank;
14: InsertMode insertmode;
15: PetscTruth donotstash; /* Flag indicates stash values should be ignored */
16: int *browners; /* block-row-ownership,used for assembly */
17: MPI_Request *send_waits,*recv_waits; /* for communication during VecAssembly() */
18: int nsends,nrecvs;
19: Scalar *svalues,*rvalues;
20: int rmax;
21:
22: int nghost; /* length of local portion including ghost padding */
23:
24: Vec localrep; /* local representation of vector */
25: VecScatter localupdate; /* scatter to update ghost values */
26: } Vec_MPI;
28: EXTERN int VecNorm_Seq(Vec,NormType,double *work);
29: EXTERN int VecMDot_MPI(int,Vec,const Vec[],Scalar *);
30: EXTERN int VecMTDot_MPI(int,Vec,const Vec[],Scalar *);
31: EXTERN int VecNorm_MPI(Vec,NormType,double *);
32: EXTERN int VecMax_MPI(Vec,int *,double *);
33: EXTERN int VecMin_MPI(Vec,int *,double *);
34: EXTERN int VecGetOwnershipRange_MPI(Vec,int *,int*);
35: EXTERN int VecDestroy_MPI(Vec);
36: EXTERN int VecView_MPI_File(Vec,PetscViewer);
37: EXTERN int VecView_MPI_Files(Vec,PetscViewer);
38: EXTERN int VecView_MPI_Binary(Vec,PetscViewer);
39: EXTERN int VecView_MPI_Draw_LG(Vec,PetscViewer);
40: EXTERN int VecView_MPI_Socket(Vec,PetscViewer);
41: EXTERN int VecView_MPI(Vec,PetscViewer);
42: EXTERN int VecGetSize_MPI(Vec,int *);
43: EXTERN int VecSetValues_MPI(Vec,int,const int [],const Scalar[],InsertMode);
44: EXTERN int VecSetValuesBlocked_MPI(Vec,int,const int [],const Scalar[],InsertMode);
45: EXTERN int VecAssemblyBegin_MPI(Vec);
46: EXTERN int VecAssemblyEnd_MPI(Vec);
48: EXTERN int VecCreate_MPI_Private(Vec,int,const Scalar[],Map);
50: #endif