Actual source code: viewa.c

      1: #include <petsc/private/viewerimpl.h>

      3: const char *const PetscViewerFormats[] = {"DEFAULT", "ASCII_MATLAB", "ASCII_MATHEMATICA", "ASCII_IMPL", "ASCII_INFO", "ASCII_INFO_DETAIL", "ASCII_COMMON", "ASCII_SYMMODU", "ASCII_INDEX", "ASCII_DENSE", "ASCII_MATRIXMARKET", "ASCII_PCICE", "ASCII_PYTHON", "ASCII_FACTOR_INFO", "ASCII_LATEX", "ASCII_XML", "ASCII_FLAMEGRAPH", "ASCII_GLVIS", "ASCII_CSV", "DRAW_BASIC", "DRAW_LG", "DRAW_LG_XRANGE", "DRAW_CONTOUR", "DRAW_PORTS", "VTK_VTS", "VTK_VTR", "VTK_VTU", "BINARY_MATLAB", "NATIVE", "HDF5_PETSC", "HDF5_VIZ", "HDF5_XDMF", "HDF5_MAT", "NOFORMAT", "LOAD_BALANCE", "FAILED", "ALL", "PetscViewerFormat", "PETSC_VIEWER_", NULL};

      5: /*@C
      6:   PetscViewerSetFormat - Sets the format for a `PetscViewer`.

      8:   Logically Collective, No Fortran Support

     10:   This routine is deprecated, you should use `PetscViewerPushFormat()`/`PetscViewerPopFormat()`

     12:   Input Parameters:
     13: + viewer - the `PetscViewer`
     14: - format - the format

     16:   Level: deprecated

     18:   Note:
     19:   See `PetscViewerFormat` for available values

     21: .seealso: [](sec_viewers), `PetscViewerGetFormat()`, `PetscViewerASCIIOpen()`, `PetscViewerBinaryOpen()`, `MatView()`, `VecView()`, `PetscViewerType`,
     22:           `PetscViewerPushFormat()`, `PetscViewerPopFormat()`, `PetscViewerDrawOpen()`, `PetscViewerSocketOpen()`
     23: @*/
     24: PetscErrorCode PetscViewerSetFormat(PetscViewer viewer, PetscViewerFormat format)
     25: {
     26:   PetscFunctionBegin;
     27:   if (!viewer) viewer = PETSC_VIEWER_STDOUT_SELF;
     30:   viewer->format = format;
     31:   PetscFunctionReturn(PETSC_SUCCESS);
     32: }

     34: /*@
     35:   PetscViewerPushFormat - Sets the format for a `PetscViewer`.

     37:   Logically Collective

     39:   Input Parameters:
     40: + viewer - the `PetscViewer`
     41: - format - the format

     43:   Level: intermediate

     45:   Note:
     46:   See `PetscViewerFormat` for available values

     48: .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerFormat`, `PetscViewerASCIIOpen()`, `PetscViewerBinaryOpen()`, `MatView()`, `VecView()`,
     49:           `PetscViewerSetFormat()`, `PetscViewerPopFormat()`
     50: @*/
     51: PetscErrorCode PetscViewerPushFormat(PetscViewer viewer, PetscViewerFormat format)
     52: {
     53:   PetscFunctionBegin;
     56:   PetscCheck(viewer->iformat <= PETSCVIEWERFORMATPUSHESMAX - 1, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Too many PetscViewerPushFormat(), perhaps you forgot PetscViewerPopFormat()?");

     58:   viewer->formats[viewer->iformat++] = viewer->format;
     59:   viewer->format                     = format;
     60:   PetscFunctionReturn(PETSC_SUCCESS);
     61: }

     63: /*@
     64:   PetscViewerPopFormat - Resets the format for a `PetscViewer` to the value it had before the previous call to `PetscViewerPushFormat()`

     66:   Logically Collective

     68:   Input Parameter:
     69: . viewer - the `PetscViewer`

     71:   Level: intermediate

     73: .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerFormat`, `PetscViewerASCIIOpen()`, `PetscViewerBinaryOpen()`, `MatView()`, `VecView()`,
     74:           `PetscViewerSetFormat()`, `PetscViewerPushFormat()`
     75: @*/
     76: PetscErrorCode PetscViewerPopFormat(PetscViewer viewer)
     77: {
     78:   PetscFunctionBegin;
     80:   if (viewer->iformat <= 0) PetscFunctionReturn(PETSC_SUCCESS);

     82:   viewer->format = viewer->formats[--viewer->iformat];
     83:   PetscFunctionReturn(PETSC_SUCCESS);
     84: }

     86: /*@
     87:   PetscViewerGetFormat - Gets the current format for `PetscViewer`.

     89:   Not Collective

     91:   Input Parameter:
     92: . viewer - the `PetscViewer`

     94:   Output Parameter:
     95: . format - the format

     97:   Level: intermediate

     99:   Note:
    100:   See `PetscViewerFormat` for available values

    102: .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerASCIIOpen()`, `PetscViewerBinaryOpen()`, `MatView()`, `VecView()`, `PetscViewerType`,
    103:           `PetscViewerPushFormat()`, `PetscViewerPopFormat()`, `PetscViewerDrawOpen()`, `PetscViewerSocketOpen()`
    104: @*/
    105: PetscErrorCode PetscViewerGetFormat(PetscViewer viewer, PetscViewerFormat *format)
    106: {
    107:   PetscFunctionBegin;
    109:   *format = viewer->format;
    110:   PetscFunctionReturn(PETSC_SUCCESS);
    111: }