8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
16 #include "../../mpi/issmmpi.h"
17 #include "../../../shared/shared.h"
34 MatGetLocalSize(A,&m,&n);;
36 MatMult(A,X_rel,AX); ;
37 #if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
58 MatGetLocalSize(A,&local_m,&local_n);;
59 VecGetLocalSize(x,&range);;
61 if (local_n!=range)result=0;
66 if (sumresult!=num_procs){
80 int lower_row,upper_row,range;
86 VecCreate(comm,&outvector); ;
87 VecSetSizes(outvector,m,PETSC_DECIDE); ;
88 VecSetFromOptions(outvector); ;
91 VecGetOwnershipRange(vector,&lower_row,&upper_row); ;
93 range=upper_row-lower_row+1;
95 index=xNew<int>(range);
96 values=xNew<double>(range);
97 for (
int i=0;i<range;i++){
98 *(index+i)=lower_row+i;
100 VecGetValues(vector,range,index,values);
101 VecSetValues(outvector,range,index,values,INSERT_VALUES);
105 VecAssemblyBegin(outvector);;
106 VecAssemblyEnd(outvector);;
110 xDelete<double>(values);
113 *poutvector=outvector;