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