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 134 These formats are most often used for viewing matrices and vectors. 135 Currently, the object name is used only in the MATLAB format. 136 137 Concepts: PetscViewer^setting format 138 139 .seealso: PetscViewerASCIIOpen(), PetscViewerBinaryOpen(), MatView(), VecView(), 140 PetscViewerSetFormat(), PetscViewerPopFormat() 141 @*/ 142 PetscErrorCode PetscViewerPushFormat(PetscViewer viewer,PetscViewerFormat format) 143 { 144 PetscFunctionBegin; 145 PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); 146 PetscValidLogicalCollectiveEnum(viewer,format,2); 147 if (viewer->iformat > PETSCVIEWERFORMATPUSHESMAX-1) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Too many PetscViewerPushFormat(), perhaps you forgot PetscViewerPopFormat()?"); 148 149 viewer->formats[viewer->iformat++] = viewer->format; 150 viewer->format = format; 151 PetscFunctionReturn(0); 152 } 153 154 /*@C 155 PetscViewerPopFormat - Resets the format for file PetscViewers. 156 157 Logically Collective on PetscViewer 158 159 Input Parameters: 160 . viewer - the PetscViewer 161 162 Level: intermediate 163 164 Concepts: PetscViewer^setting format 165 166 .seealso: PetscViewerASCIIOpen(), PetscViewerBinaryOpen(), MatView(), VecView(), 167 PetscViewerSetFormat(), PetscViewerPushFormat() 168 @*/ 169 PetscErrorCode PetscViewerPopFormat(PetscViewer viewer) 170 { 171 PetscFunctionBegin; 172 PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); 173 if (viewer->iformat <= 0) PetscFunctionReturn(0); 174 175 viewer->format = viewer->formats[--viewer->iformat]; 176 PetscFunctionReturn(0); 177 } 178 179 PetscErrorCode PetscViewerGetFormat(PetscViewer viewer,PetscViewerFormat *format) 180 { 181 PetscFunctionBegin; 182 *format = viewer->format; 183 PetscFunctionReturn(0); 184 } 185 186 187 188