1 2 #include <petsc/private/viewerimpl.h> /*I "petscsys.h" I*/ 3 4 const char *const PetscViewerFormats[] = { 5 "DEFAULT", 6 "ASCII_MATLAB", 7 "ASCII_MATHEMATICA", 8 "ASCII_IMPL", 9 "ASCII_INFO", 10 "ASCII_INFO_DETAIL", 11 "ASCII_COMMON", 12 "ASCII_SYMMODU", 13 "ASCII_INDEX", 14 "ASCII_DENSE", 15 "ASCII_MATRIXMARKET", 16 "ASCII_VTK", 17 "ASCII_VTK_CELL", 18 "ASCII_VTK_COORDS", 19 "ASCII_PCICE", 20 "ASCII_PYTHON", 21 "ASCII_FACTOR_INFO", 22 "ASCII_LATEX", 23 "ASCII_XML", 24 "ASCII_GLVIS", 25 "DRAW_BASIC", 26 "DRAW_LG", 27 "DRAW_CONTOUR", 28 "DRAW_PORTS", 29 "VTK_VTS", 30 "VTK_VTR", 31 "VTK_VTU", 32 "BINARY_MATLAB", 33 "NATIVE", 34 "HDF5_VIZ", 35 "NOFORMAT", 36 "LOAD_BALANCE", 37 "PetscViewerFormat", 38 "PETSC_VIEWER_", 39 0 40 }; 41 42 /*@C 43 PetscViewerSetFormat - Sets the format for PetscViewers. 44 45 Logically Collective on PetscViewer 46 47 This routine is deprecated, you should use PetscViewerPushFormat()/PetscViewerPopFormat() 48 49 Input Parameters: 50 + viewer - the PetscViewer 51 - format - the format 52 53 Level: intermediate 54 55 Notes: 56 Available formats include 57 + PETSC_VIEWER_DEFAULT - default format 58 . PETSC_VIEWER_ASCII_MATLAB - MATLAB format 59 . PETSC_VIEWER_ASCII_DENSE - print matrix as dense 60 . PETSC_VIEWER_ASCII_IMPL - implementation-specific format 61 (which is in many cases the same as the default) 62 . PETSC_VIEWER_ASCII_INFO - basic information about object 63 . PETSC_VIEWER_ASCII_INFO_DETAIL - more detailed info 64 about object 65 . PETSC_VIEWER_ASCII_COMMON - identical output format for 66 all objects of a particular type 67 . PETSC_VIEWER_ASCII_INDEX - (for vectors) prints the vector 68 element number next to each vector entry 69 . PETSC_VIEWER_ASCII_SYMMODU - print parallel vectors without 70 indicating the processor ranges 71 . PETSC_VIEWER_ASCII_VTK - outputs the object to a VTK file 72 . PETSC_VIEWER_NATIVE - store the object to the binary 73 file in its native format (for example, dense 74 matrices are stored as dense), DMDA vectors are dumped directly to the 75 file instead of being first put in the natural ordering 76 . PETSC_VIEWER_DRAW_BASIC - views the vector with a simple 1d plot 77 . PETSC_VIEWER_DRAW_LG - views the vector with a line graph 78 - PETSC_VIEWER_DRAW_CONTOUR - views the vector with a contour plot 79 80 These formats are most often used for viewing matrices and vectors. 81 82 If a format (for example PETSC_VIEWER_DRAW_CONTOUR) was applied to a viewer 83 where it didn't apply (PETSC_VIEWER_STDOUT_WORLD) it cause the default behavior 84 for that viewer to be used. 85 86 Note: This supports passing in a NULL for the viewer for use in the debugger, but it should never be called in the code with a NULL viewer 87 88 Concepts: PetscViewer^setting format 89 90 .seealso: PetscViewerASCIIOpen(), PetscViewerBinaryOpen(), MatView(), VecView(), PetscViewerType, 91 PetscViewerPushFormat(), PetscViewerPopFormat(), PetscViewerDrawOpen(),PetscViewerSocketOpen() 92 @*/ 93 PetscErrorCode PetscViewerSetFormat(PetscViewer viewer,PetscViewerFormat format) 94 { 95 PetscFunctionBegin; 96 if (!viewer) viewer = PETSC_VIEWER_STDOUT_SELF; 97 PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); 98 PetscValidLogicalCollectiveEnum(viewer,format,2); 99 viewer->format = format; 100 PetscFunctionReturn(0); 101 } 102 103 /*@C 104 PetscViewerPushFormat - Sets the format for file PetscViewers. 105 106 Logically Collective on PetscViewer 107 108 Input Parameters: 109 + viewer - the PetscViewer 110 - format - the format 111 112 Level: intermediate 113 114 Notes: 115 Available formats include 116 + PETSC_VIEWER_DEFAULT - default format 117 . PETSC_VIEWER_ASCII_MATLAB - MATLAB format 118 . PETSC_VIEWER_ASCII_IMPL - implementation-specific format 119 (which is in many cases the same as the default) 120 . PETSC_VIEWER_ASCII_INFO - basic information about object 121 . PETSC_VIEWER_ASCII_INFO_DETAIL - more detailed info 122 about object 123 . PETSC_VIEWER_ASCII_COMMON - identical output format for 124 all objects of a particular type 125 . PETSC_VIEWER_ASCII_INDEX - (for vectors) prints the vector 126 element number next to each vector entry 127 . PETSC_VIEWER_NATIVE - store the object to the binary 128 file in its native format (for example, dense 129 matrices are stored as dense), for DMDA vectors displays vectors in DMDA ordering, not natural 130 . PETSC_VIEWER_DRAW_BASIC - views the vector with a simple 1d plot 131 . PETSC_VIEWER_DRAW_LG - views the vector with a line graph 132 . PETSC_VIEWER_DRAW_CONTOUR - views the vector with a contour plot 133 - PETSC_VIEWER_ASCII_XML - saves the data in XML format, needed for PetscLogView() when viewing with PetscLogNestedBegin() 134 135 These formats are most often used for viewing matrices and vectors. 136 Currently, the object name is used only in the MATLAB format. 137 138 Concepts: PetscViewer^setting format 139 140 .seealso: PetscViewerASCIIOpen(), PetscViewerBinaryOpen(), MatView(), VecView(), 141 PetscViewerSetFormat(), PetscViewerPopFormat() 142 @*/ 143 PetscErrorCode PetscViewerPushFormat(PetscViewer viewer,PetscViewerFormat format) 144 { 145 PetscFunctionBegin; 146 PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); 147 PetscValidLogicalCollectiveEnum(viewer,format,2); 148 if (viewer->iformat > PETSCVIEWERFORMATPUSHESMAX-1) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Too many PetscViewerPushFormat(), perhaps you forgot PetscViewerPopFormat()?"); 149 150 viewer->formats[viewer->iformat++] = viewer->format; 151 viewer->format = format; 152 PetscFunctionReturn(0); 153 } 154 155 /*@C 156 PetscViewerPopFormat - Resets the format for file PetscViewers. 157 158 Logically Collective on PetscViewer 159 160 Input Parameters: 161 . viewer - the PetscViewer 162 163 Level: intermediate 164 165 Concepts: PetscViewer^setting format 166 167 .seealso: PetscViewerASCIIOpen(), PetscViewerBinaryOpen(), MatView(), VecView(), 168 PetscViewerSetFormat(), PetscViewerPushFormat() 169 @*/ 170 PetscErrorCode PetscViewerPopFormat(PetscViewer viewer) 171 { 172 PetscFunctionBegin; 173 PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); 174 if (viewer->iformat <= 0) PetscFunctionReturn(0); 175 176 viewer->format = viewer->formats[--viewer->iformat]; 177 PetscFunctionReturn(0); 178 } 179 180 PetscErrorCode PetscViewerGetFormat(PetscViewer viewer,PetscViewerFormat *format) 181 { 182 PetscFunctionBegin; 183 *format = viewer->format; 184 PetscFunctionReturn(0); 185 } 186 187 188 189