1 
2 static char help[] = "Tests VecMax() with index.\n\
3   -n <length> : vector length\n\n";
4 
5 #include <petscvec.h>
6 
main(int argc,char ** argv)7 int main(int argc,char **argv)
8 {
9   PetscErrorCode ierr;
10   PetscInt       n = 5,idx;
11   PetscReal      value;
12   Vec            x;
13   PetscScalar    one = 1.0;
14 
15   ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
16   ierr = PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL);CHKERRQ(ierr);
17 
18   /* create vector */
19   ierr = VecCreate(PETSC_COMM_WORLD,&x);CHKERRQ(ierr);
20   ierr = VecSetSizes(x,PETSC_DECIDE,n);CHKERRQ(ierr);
21   ierr = VecSetFromOptions(x);CHKERRQ(ierr);
22 
23 
24   ierr = VecSet(x,one);CHKERRQ(ierr);
25   ierr = VecSetValue(x,0,0.0,INSERT_VALUES);CHKERRQ(ierr);
26   ierr = VecSetValue(x,n-1,2.0,INSERT_VALUES);CHKERRQ(ierr);
27   ierr = VecAssemblyBegin(x);CHKERRQ(ierr);
28   ierr = VecAssemblyEnd(x);CHKERRQ(ierr);
29 
30   ierr = VecView(x,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
31   ierr = VecMax(x,&idx,&value);CHKERRQ(ierr);
32   ierr = PetscPrintf(PETSC_COMM_WORLD,"Maximum value %g index %D\n",(double)value,idx);CHKERRQ(ierr);
33   ierr = VecMin(x,&idx,&value);CHKERRQ(ierr);
34   ierr = PetscPrintf(PETSC_COMM_WORLD,"Minimum value %g index %D\n",(double)value,idx);CHKERRQ(ierr);
35 
36   ierr = VecDestroy(&x);CHKERRQ(ierr);
37 
38   ierr = PetscFinalize();
39   return ierr;
40 }
41 
42 
43 
44 /*TEST
45    test:
46 
47    test:
48       suffix: 2
49       nsize: 2
50 
51 TEST*/
52