xref: /petsc/src/benchmarks/PetscVecNorm.c (revision abdd934af67c1cc360c4d0cfcf2de16e188d627e)
1 #include <petscvec.h>
2 #include <petsctime.h>
3 
main(int argc,char ** argv)4 int main(int argc, char **argv)
5 {
6   Vec            x;
7   PetscReal      norm;
8   PetscLogDouble t1, t2;
9   PetscInt       n = 10000;
10 
11   PetscCall(PetscInitialize(&argc, &argv, 0, 0));
12   PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL));
13 
14   PetscCall(VecCreate(PETSC_COMM_SELF, &x));
15   PetscCall(VecSetSizes(x, n, n));
16   PetscCall(VecSetFromOptions(x));
17 
18   PetscPreLoadBegin(PETSC_TRUE, "VecNorm");
19   PetscCall(PetscTime(&t1));
20   PetscCall(VecNorm(x, NORM_2, &norm));
21   PetscCall(VecNorm(x, NORM_2, &norm));
22   PetscCall(VecNorm(x, NORM_2, &norm));
23   PetscCall(VecNorm(x, NORM_2, &norm));
24   PetscCall(VecNorm(x, NORM_2, &norm));
25   PetscCall(VecNorm(x, NORM_2, &norm));
26   PetscCall(VecNorm(x, NORM_2, &norm));
27   PetscCall(VecNorm(x, NORM_2, &norm));
28   PetscCall(VecNorm(x, NORM_2, &norm));
29   PetscCall(VecNorm(x, NORM_2, &norm));
30   PetscPreLoadEnd();
31   PetscCall(PetscTime(&t2));
32   fprintf(stdout, "%s : \n", "VecNorm");
33   fprintf(stdout, " Time %g\n", t2 - t1);
34   PetscCall(PetscFinalize());
35   return 0;
36 }
37