Actual source code: ex7.c

  1: const char help[] = "Test PetscOptionsCreateViewers()";

  3: #include <petscviewer.h>

  5: #define N_MAX 5

  7: int main(int argc, char **argv)
  8: {
  9:   PetscInt          n_max = N_MAX;
 10:   PetscViewer       viewers[N_MAX];
 11:   PetscViewerFormat formats[N_MAX];

 13:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
 14:   PetscCall(PetscOptionsCreateViewers(PETSC_COMM_WORLD, NULL, NULL, "-test_view", &n_max, viewers, formats, NULL));
 15:   for (PetscInt i = 0; i < n_max; i++) {
 16:     PetscCall(PetscViewerPushFormat(viewers[i], formats[i]));
 17:     PetscCall(PetscViewerASCIIPrintf(viewers[i], "This is viewer %d\n", (int)i));
 18:     PetscCall(PetscViewerPopFormat(viewers[i]));
 19:     PetscCall(PetscViewerDestroy(&viewers[i]));
 20:   }
 21:   PetscCall(PetscFinalize());
 22:   return 0;
 23: }

 25: /*TEST

 27:   test:
 28:     suffix: 0
 29:     args: -test_view ascii:viewer0.txt,ascii:viewer1.txt
 30:     filter: cat viewer0.txt viewer1.txt

 32:   test:
 33:     suffix: 1
 34:     args: -test_view ,,,ascii:viewer3.txt,

 36:   test:
 37:     suffix: 2
 38:     args: -test_view ,,,ascii:viewer3.txt,
 39:     filter: cat viewer3.txt

 41: TEST*/