一、向量
1.1 定义
串行向量定义:
VecCreateSeq(PETSC_COMM SELF,int m,Vec *x);
分布式向量定义:
VecCreateMPI(MPI_Comm comm,int m,int M,Vec *x); /* # of processors = M / m */
或者
VecCreate(MPI_Comm comm,Vec *v);
VecSetSizes(Vec v, int m, int M);
VecSetFromOptions(Vec v);
1.2 赋值
(串行/分布式) 向量元素赋相同的值:VecSet(Vec x,PetscScalar value);
对数组中一段连续编号的元素赋值:VecSetValues(Vec x,int n,int *indices,PetscScalar *values,INSERT VALUES);
/* n is number of components being set */
赋值结束,必须调用:
VecAssemblyBegin(Vec x);
VecAssemblyEnd(Vec x);
1.3 常见操作
返回全局向量分配在当前节点的子块(block):
VecGetOwnershipRange(Vec vec,int *low,int *high);
对子块内的元素操作:
VecGetArray(Vec v,PetscS