1 /* $Id: viewer.h,v 1.55 1998/08/26 22:04:55 balay Exp bsmith $ */ 2 /* 3 Viewers are objects where other objects can be looked at or stored. 4 */ 5 6 #if !defined(__VIEWER_H) 7 #define __VIEWER_H 8 9 typedef struct _p_Viewer* Viewer; 10 11 /* 12 petsc.h must be included AFTER the definition of Viewer for ADIC to 13 process correctly. 14 */ 15 #include "petsc.h" 16 17 #define VIEWER_COOKIE PETSC_COOKIE+1 18 typedef enum { MATLAB_VIEWER,ASCII_FILE_VIEWER, ASCII_FILES_VIEWER, 19 BINARY_FILE_VIEWER, STRING_VIEWER, DRAW_VIEWER, 20 AMS_VIEWER} ViewerType; 21 22 extern int ViewerFileOpenASCII(MPI_Comm,const char[],Viewer*); 23 typedef enum {BINARY_RDONLY, BINARY_WRONLY, BINARY_CREATE} ViewerBinaryType; 24 extern int ViewerFileOpenBinary(MPI_Comm,const char[],ViewerBinaryType,Viewer*); 25 extern int ViewerMatlabOpen(MPI_Comm,const char[],int,Viewer*); 26 extern int ViewerStringOpen(MPI_Comm,char[],int, Viewer*); 27 extern int ViewerDrawOpenX(MPI_Comm,const char[],const char[],int,int,int,int,Viewer*); 28 extern int ViewerDrawOpenVRML(MPI_Comm,const char[],const char[],Viewer*); 29 extern int ViewerDrawClear(Viewer); 30 31 32 extern int ViewerGetType(Viewer,ViewerType*); 33 extern int ViewerDestroy(Viewer); 34 35 extern int ViewerASCIIGetPointer(Viewer,FILE**); 36 37 extern int ViewerBinaryGetDescriptor(Viewer,int*); 38 extern int ViewerBinaryGetInfoPointer(Viewer,FILE **); 39 40 #define VIEWER_FORMAT_ASCII_DEFAULT 0 41 #define VIEWER_FORMAT_ASCII_MATLAB 1 42 #define VIEWER_FORMAT_ASCII_IMPL 2 43 #define VIEWER_FORMAT_ASCII_INFO 3 44 #define VIEWER_FORMAT_ASCII_INFO_LONG 4 45 #define VIEWER_FORMAT_ASCII_COMMON 5 46 #define VIEWER_FORMAT_ASCII_SYMMODU 6 47 #define VIEWER_FORMAT_ASCII_INDEX 7 48 49 #define VIEWER_FORMAT_BINARY_DEFAULT 0 50 #define VIEWER_FORMAT_BINARY_NATIVE 1 51 52 #define VIEWER_FORMAT_DRAW_BASIC 0 53 #define VIEWER_FORMAT_DRAW_LG 1 54 #define VIEWER_FORMAT_DRAW_CONTOUR 2 55 56 extern int ViewerSetFormat(Viewer,int,char[]); 57 extern int ViewerPushFormat(Viewer,int,char[]); 58 extern int ViewerPopFormat(Viewer); 59 extern int ViewerGetFormat(Viewer,int*); 60 61 extern int ViewerFlush(Viewer); 62 extern int ViewerStringSPrintf(Viewer,char *,...); 63 64 extern Viewer VIEWER_STDOUT_SELF; 65 extern Viewer VIEWER_STDERR_SELF; 66 extern Viewer VIEWER_STDOUT_WORLD; 67 extern Viewer VIEWER_STDOUT_(MPI_Comm); 68 extern int VIEWER_STDOUT_Destroy(MPI_Comm); 69 extern Viewer VIEWER_STDERR_WORLD; 70 extern Viewer VIEWER_STDERR_(MPI_Comm); 71 extern int VIEWER_STDERR_Destroy(MPI_Comm); 72 extern Viewer VIEWER_DRAWX_WORLD_PRIVATE_0; 73 extern Viewer VIEWER_DRAWX_WORLD_PRIVATE_1; 74 extern Viewer VIEWER_DRAWX_WORLD_PRIVATE_2; 75 extern Viewer VIEWER_DRAWX_SELF_PRIVATE; 76 extern Viewer VIEWER_MATLAB_WORLD_PRIVATE; 77 extern Viewer VIEWER_MATLAB_SELF_PRIVATE; /* not yet used */ 78 79 extern int ViewerInitializeDrawXWorld_Private_0(void); 80 extern int ViewerInitializeDrawXWorld_Private_1(void); 81 extern int ViewerInitializeDrawXWorld_Private_2(void); 82 extern int ViewerInitializeDrawXSelf_Private(void); 83 extern int ViewerInitializeMatlabWorld_Private(void); 84 extern Viewer VIEWER_DRAWX_(MPI_Comm); 85 extern int VIEWER_DRAWX_Destroy(MPI_Comm); 86 87 #define VIEWER_DRAWX_WORLD_0 \ 88 (ViewerInitializeDrawXWorld_Private_0(),VIEWER_DRAWX_WORLD_PRIVATE_0) 89 #define VIEWER_DRAWX_WORLD_1 \ 90 (ViewerInitializeDrawXWorld_Private_1(),VIEWER_DRAWX_WORLD_PRIVATE_1) 91 #define VIEWER_DRAWX_WORLD_2 \ 92 (ViewerInitializeDrawXWorld_Private_2(),VIEWER_DRAWX_WORLD_PRIVATE_2) 93 94 #define VIEWER_DRAWX_SELF \ 95 (ViewerInitializeDrawXSelf_Private(),VIEWER_DRAWX_SELF_PRIVATE) 96 #define VIEWER_DRAWX_WORLD VIEWER_DRAWX_WORLD_0 97 98 #define VIEWER_MATLAB_WORLD \ 99 (ViewerInitializeMatlabWorld_Private(),VIEWER_MATLAB_WORLD_PRIVATE) 100 101 extern int ViewersDrawOpenX(MPI_Comm,char *,char **,int,int,int,Viewer**); 102 extern int ViewersDestroy(int,Viewer[]); 103 104 #if defined(HAVE_AMS) 105 #include "ams.h" 106 extern int ViewerAMSGetAMSComm(Viewer,AMS_Comm *); 107 extern int ViewerAMSOpen(MPI_Comm,const char[],Viewer*); 108 extern Viewer VIEWER_AMS_(MPI_Comm); 109 extern int VIEWER_AMS_Destroy(MPI_Comm); 110 extern Viewer VIEWER_AMS_WORLD_PRIVATE; 111 extern int ViewerInitializeAMSWorld_Private(void); 112 #define VIEWER_AMS_WORLD (ViewerInitializeAMSWorld_Private(),VIEWER_AMS_WORLD_PRIVATE) 113 #endif 114 115 #endif 116 117