Actual source code: view.c

      1: #define PETSC_DLL

      3: #include "src/sys/src/viewer/viewerimpl.h"  /*I "petsc.h" I*/

      5: PetscCookie PETSC_VIEWER_COOKIE = 0;

      9: /*@C
     10:    PetscViewerDestroy - Destroys a PetscViewer.

     12:    Collective on PetscViewer

     14:    Input Parameters:
     15: .  viewer - the PetscViewer to be destroyed.

     17:    Level: beginner

     19: .seealso: PetscViewerSocketOpen(), PetscViewerASCIIOpen(), PetscViewerCreate(), PetscViewerDrawOpen()

     21: @*/
     22: PetscErrorCode PETSC_DLLEXPORT PetscViewerDestroy(PetscViewer viewer)
     23: {

     28:   if (--viewer->refct > 0) return(0);

     30:   PetscObjectDepublish(viewer);

     32:   if (viewer->ops->destroy) {
     33:     (*viewer->ops->destroy)(viewer);
     34:   }
     35:   PetscHeaderDestroy(viewer);
     36:   return(0);
     37: }

     41: /*@C
     42:    PetscViewerGetType - Returns the type of a PetscViewer.

     44:    Not Collective

     46:    Input Parameter:
     47: .   viewer - the PetscViewer

     49:    Output Parameter:
     50: .  type - PetscViewer type (see below)

     52:    Available Types Include:
     53: .  PETSC_VIEWER_SOCKET - Socket PetscViewer
     54: .  PETSC_VIEWER_ASCII - ASCII PetscViewer
     55: .  PETSC_VIEWER_BINARY - binary file PetscViewer
     56: .  PETSC_VIEWER_STRING - string PetscViewer
     57: .  PETSC_VIEWER_DRAW - drawing PetscViewer

     59:    Level: intermediate

     61:    Note:
     62:    See include/petscviewer.h for a complete list of PetscViewers.

     64:    PetscViewerType is actually a string

     66: .seealso: PetscViewerCreate(), PetscViewerSetType()

     68: @*/
     69: PetscErrorCode PETSC_DLLEXPORT PetscViewerGetType(PetscViewer viewer,PetscViewerType *type)
     70: {
     73:   *type = (PetscViewerType) viewer->type_name;
     74:   return(0);
     75: }

     79: /*@C
     80:    PetscViewerSetOptionsPrefix - Sets the prefix used for searching for all
     81:    PetscViewer options in the database.

     83:    Collective on PetscViewer

     85:    Input Parameter:
     86: +  viewer - the PetscViewer context
     87: -  prefix - the prefix to prepend to all option names

     89:    Notes:
     90:    A hyphen (-) must NOT be given at the beginning of the prefix name.
     91:    The first character of all runtime options is AUTOMATICALLY the hyphen.

     93:    Level: advanced

     95: .keywords: PetscViewer, set, options, prefix, database

     97: .seealso: PetscViewerSetFromOptions()
     98: @*/
     99: PetscErrorCode PETSC_DLLEXPORT PetscViewerSetOptionsPrefix(PetscViewer viewer,const char prefix[])
    100: {

    105:   PetscObjectSetOptionsPrefix((PetscObject)viewer,prefix);
    106:   return(0);
    107: }

    111: /*@C
    112:    PetscViewerAppendOptionsPrefix - Appends to the prefix used for searching for all
    113:    PetscViewer options in the database.

    115:    Collective on PetscViewer

    117:    Input Parameters:
    118: +  viewer - the PetscViewer context
    119: -  prefix - the prefix to prepend to all option names

    121:    Notes:
    122:    A hyphen (-) must NOT be given at the beginning of the prefix name.
    123:    The first character of all runtime options is AUTOMATICALLY the hyphen.

    125:    Level: advanced

    127: .keywords: PetscViewer, append, options, prefix, database

    129: .seealso: PetscViewerGetOptionsPrefix()
    130: @*/
    131: PetscErrorCode PETSC_DLLEXPORT PetscViewerAppendOptionsPrefix(PetscViewer viewer,const char prefix[])
    132: {
    134:
    137:   PetscObjectAppendOptionsPrefix((PetscObject)viewer,prefix);
    138:   return(0);
    139: }

    143: /*@C
    144:    PetscViewerGetOptionsPrefix - Sets the prefix used for searching for all
    145:    PetscViewer options in the database.

    147:    Not Collective

    149:    Input Parameter:
    150: .  viewer - the PetscViewer context

    152:    Output Parameter:
    153: .  prefix - pointer to the prefix string used

    155:    Notes: On the fortran side, the user should pass in a string 'prefix' of
    156:    sufficient length to hold the prefix.

    158:    Level: advanced

    160: .keywords: PetscViewer, get, options, prefix, database

    162: .seealso: PetscViewerAppendOptionsPrefix()
    163: @*/
    164: PetscErrorCode PETSC_DLLEXPORT PetscViewerGetOptionsPrefix(PetscViewer viewer,const char *prefix[])
    165: {

    170:   PetscObjectGetOptionsPrefix((PetscObject)viewer,prefix);
    171:   return(0);
    172: }

    176: /*@
    177:    PetscViewerSetUp - Sets up the internal viewer data structures for the later use.

    179:    Collective on PetscViewer

    181:    Input Parameters:
    182: .  viewer - the PetscViewer context

    184:    Notes:
    185:    For basic use of the PetscViewer classes the user need not explicitly call
    186:    PetscViewerSetUp(), since these actions will happen automatically.

    188:    Level: advanced

    190: .keywords: PetscViewer, setup

    192: .seealso: PetscViewerCreate(), PetscViewerDestroy()
    193: @*/
    194: PetscErrorCode PETSC_DLLEXPORT PetscViewerSetUp(PetscViewer viewer)
    195: {
    198:   return(0);
    199: }

    203: /*@C
    204:    PetscViewerView - Visualizes a viewer object.

    206:    Collective on PetscViewer

    208:    Input Parameters:
    209: +  v - the viewer
    210: -  viewer - visualization context

    212:   Notes:
    213:   The available visualization contexts include
    214: +    PETSC_VIEWER_STDOUT_SELF - standard output (default)
    215: .    PETSC_VIEWER_STDOUT_WORLD - synchronized standard
    216:         output where only the first processor opens
    217:         the file.  All other processors send their
    218:         data to the first processor to print.
    219: -     PETSC_VIEWER_DRAW_WORLD - graphical display of nonzero structure

    221:    Level: beginner

    223: .seealso: PetscViewerSetFormat(), PetscViewerASCIIOpen(), PetscViewerDrawOpen(),
    224:           PetscViewerSocketOpen(), PetscViewerBinaryOpen(), PetscViewerLoad()
    225: @*/
    226: PetscErrorCode PETSCVEC_DLLEXPORT PetscViewerView(PetscViewer v,PetscViewer viewer)
    227: {
    228:   PetscErrorCode    ierr;
    229:   PetscTruth        iascii;
    230:   const char        *cstr;
    231:   PetscViewerFormat format;

    236:   if (!viewer) viewer = PETSC_VIEWER_STDOUT_(v->comm);

    240:   PetscTypeCompare((PetscObject)viewer,PETSC_VIEWER_ASCII,&iascii);
    241:   if (iascii) {
    242:     PetscViewerGetFormat(viewer,&format);
    243:     if (format == PETSC_VIEWER_ASCII_INFO || format == PETSC_VIEWER_ASCII_INFO_DETAIL) {
    244:       if (v->prefix) {
    245:         PetscViewerASCIIPrintf(viewer,"PetscViewer Object:(%s)\n",v->prefix);
    246:       } else {
    247:         PetscViewerASCIIPrintf(viewer,"PetscViewer Object:\n");
    248:       }
    249:       PetscViewerASCIIPushTab(viewer);
    250:       PetscViewerGetType(v,&cstr);
    251:       PetscViewerASCIIPrintf(viewer,"type=%s\n",cstr);
    252:     }
    253:   }
    254:   if (!iascii) {
    255:     SETERRQ1(PETSC_ERR_SUP,"Viewer type %s not supported",((PetscObject)viewer)->type_name);
    256:   } else {
    257:     PetscViewerGetFormat(viewer,&format);
    258:     if (format == PETSC_VIEWER_ASCII_INFO || format == PETSC_VIEWER_ASCII_INFO_DETAIL) {
    259:       PetscViewerASCIIPopTab(viewer);
    260:     }
    261:   }
    262:   return(0);
    263: }