xref: /petsc/include/petscviewer.h (revision 2fc52814d27bf1f4e71021c1c3ebb532b583ed60)
173f4d377SMatthew Knepley /* $Id: petscviewer.h,v 1.85 2001/08/06 21:13:28 bsmith Exp $ */
284cb2905SBarry Smith /*
3b0a32e0cSBarry Smith      PetscViewers are objects where other objects can be looked at or stored.
484cb2905SBarry Smith */
53c119ea2SBarry Smith 
60a835dfdSSatish Balay #if !defined(__PETSCVIEWER_H)
70a835dfdSSatish Balay #define __PETSCVIEWER_H
8e9fa29b7SSatish Balay #if defined(PETSC_USE_EXTERN_CXX) && defined(__cplusplus)
9e9fa29b7SSatish Balay extern "C" {
10e9fa29b7SSatish Balay #endif
112eb8c8abSBarry Smith 
128ba1e511SMatthew Knepley extern int PETSC_VIEWER_COOKIE;
138ba1e511SMatthew Knepley 
14b9617806SBarry Smith /*S
15b9617806SBarry Smith      PetscViewer - Abstract PETSc object that helps view (in ASCII, binary, graphically etc)
16b9617806SBarry Smith          other PETSc objects
17b9617806SBarry Smith 
18b9617806SBarry Smith    Level: beginner
19b9617806SBarry Smith 
20b9617806SBarry Smith   Concepts: viewing
21b9617806SBarry Smith 
22b9617806SBarry Smith .seealso:  PetscViewerCreate(), PetscViewerSetType(), PetscViewerType
23b9617806SBarry Smith S*/
24b0a32e0cSBarry Smith typedef struct _p_PetscViewer* PetscViewer;
253c119ea2SBarry Smith 
26e9fa29b7SSatish Balay #if defined(PETSC_USE_EXTERN_CXX) && defined(__cplusplus)
27e9fa29b7SSatish Balay }
28e9fa29b7SSatish Balay #endif
29e9fa29b7SSatish Balay 
30e9fa29b7SSatish Balay 
313c119ea2SBarry Smith /*
32b0a32e0cSBarry Smith     petsc.h must be included AFTER the definition of PetscViewer for ADIC to
333c119ea2SBarry Smith    process correctly.
343c119ea2SBarry Smith */
352eb8c8abSBarry Smith #include "petsc.h"
36e9fa29b7SSatish Balay PETSC_EXTERN_CXX_BEGIN
37b9617806SBarry Smith /*E
38b9617806SBarry Smith     PetscViewerType - String with the name of a PETSc PETScViewer
39b9617806SBarry Smith 
40b9617806SBarry Smith    Level: beginner
41b9617806SBarry Smith 
42b9617806SBarry Smith .seealso: PetscViewerSetType(), PetscViewer
43b9617806SBarry Smith E*/
4449773a63SBarry Smith #define PetscViewerType char*
45b0a32e0cSBarry Smith #define PETSC_VIEWER_SOCKET       "socket"
46b0a32e0cSBarry Smith #define PETSC_VIEWER_ASCII        "ascii"
47fb9695e5SSatish Balay #define PETSC_VIEWER_BINARY       "binary"
48b0a32e0cSBarry Smith #define PETSC_VIEWER_STRING       "string"
49fb9695e5SSatish Balay #define PETSC_VIEWER_DRAW         "draw"
50b0a32e0cSBarry Smith #define PETSC_VIEWER_AMS          "ams"
5144c73c46SMatthew Knepley #define PETSC_VIEWER_VU           "vu"
524ebda54eSMatthew Knepley #define PETSC_VIEWER_MATHEMATICA  "mathematica"
534ebda54eSMatthew Knepley #define PETSC_VIEWER_SILO         "silo"
54e3eb5169SDinesh Kaushik #define PETSC_VIEWER_NETCDF       "netcdf"
5500ccbe27SDinesh Kaushik #define PETSC_VIEWER_HDF4         "hdf4"
56cbb32127SBarry Smith #define PETSC_VIEWER_MATLAB       "matlab"
5777ed5343SBarry Smith 
58b0a32e0cSBarry Smith extern PetscFList PetscViewerList;
590e33f6ddSBarry Smith EXTERN int PetscViewerRegisterAll(const char *);
60b0a32e0cSBarry Smith EXTERN int PetscViewerRegisterDestroy(void);
617b2a1423SBarry Smith 
620e33f6ddSBarry Smith EXTERN int PetscViewerRegister(const char*,const char*,const char*,int(*)(PetscViewer));
6330de9b25SBarry Smith 
6430de9b25SBarry Smith /*MC
6530de9b25SBarry Smith    PetscViewerRegisterDynamic - Adds a method to the Krylov subspace solver package.
6630de9b25SBarry Smith 
6730de9b25SBarry Smith    Synopsis:
6830de9b25SBarry Smith    int PetscViewerRegisterDynamic(char *name_solver,char *path,char *name_create,int (*routine_create)(PetscViewer))
6930de9b25SBarry Smith 
7030de9b25SBarry Smith    Not Collective
7130de9b25SBarry Smith 
7230de9b25SBarry Smith    Input Parameters:
7330de9b25SBarry Smith +  name_solver - name of a new user-defined solver
7430de9b25SBarry Smith .  path - path (either absolute or relative) the library containing this solver
7530de9b25SBarry Smith .  name_create - name of routine to create method context
7630de9b25SBarry Smith -  routine_create - routine to create method context
7730de9b25SBarry Smith 
7830de9b25SBarry Smith    Level: developer
7930de9b25SBarry Smith 
8030de9b25SBarry Smith    Notes:
8130de9b25SBarry Smith    PetscViewerRegisterDynamic() may be called multiple times to add several user-defined solvers.
8230de9b25SBarry Smith 
8330de9b25SBarry Smith    If dynamic libraries are used, then the fourth input argument (routine_create)
8430de9b25SBarry Smith    is ignored.
8530de9b25SBarry Smith 
8630de9b25SBarry Smith    Sample usage:
8730de9b25SBarry Smith .vb
8830de9b25SBarry Smith    PetscViewerRegisterDynamic("my_viewer_type",/home/username/my_lib/lib/libO/solaris/mylib.a,
8930de9b25SBarry Smith                "MyViewerCreate",MyViewerCreate);
9030de9b25SBarry Smith .ve
9130de9b25SBarry Smith 
9230de9b25SBarry Smith    Then, your solver can be chosen with the procedural interface via
9330de9b25SBarry Smith $     PetscViewerSetType(ksp,"my_viewer_type")
9430de9b25SBarry Smith    or at runtime via the option
9530de9b25SBarry Smith $     -viewer_type my_viewer_type
9630de9b25SBarry Smith 
9730de9b25SBarry Smith   Concepts: registering^Viewers
9830de9b25SBarry Smith 
9930de9b25SBarry Smith .seealso: PetscViewerRegisterAll(), PetscViewerRegisterDestroy()
10030de9b25SBarry Smith M*/
101aa482453SBarry Smith #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
102b0a32e0cSBarry Smith #define PetscViewerRegisterDynamic(a,b,c,d) PetscViewerRegister(a,b,c,0)
1037b2a1423SBarry Smith #else
104b0a32e0cSBarry Smith #define PetscViewerRegisterDynamic(a,b,c,d) PetscViewerRegister(a,b,c,d)
1057b2a1423SBarry Smith #endif
10630de9b25SBarry Smith 
107b0a32e0cSBarry Smith EXTERN int PetscViewerCreate(MPI_Comm,PetscViewer*);
108b0a32e0cSBarry Smith EXTERN int PetscViewerSetFromOptions(PetscViewer);
1097b2a1423SBarry Smith 
110b0a32e0cSBarry Smith EXTERN int PetscViewerASCIIOpen(MPI_Comm,const char[],PetscViewer*);
11145f7d322SBarry Smith typedef enum {PETSC_FILE_RDONLY,PETSC_FILE_WRONLY,PETSC_FILE_CREATE} PetscViewerFileType;
11245f7d322SBarry Smith EXTERN int PetscViewerBinaryOpen(MPI_Comm,const char[],PetscViewerFileType,PetscViewer*);
113b0a32e0cSBarry Smith EXTERN int PetscViewerSocketOpen(MPI_Comm,const char[],int,PetscViewer*);
114b0a32e0cSBarry Smith EXTERN int PetscViewerStringOpen(MPI_Comm,char[],int,PetscViewer*);
115b0a32e0cSBarry Smith EXTERN int PetscViewerDrawOpen(MPI_Comm,const char[],const char[],int,int,int,int,PetscViewer*);
116b0a32e0cSBarry Smith EXTERN int PetscViewerAMSSetCommName(PetscViewer,const char[]);
1174ebda54eSMatthew Knepley EXTERN int PetscViewerMathematicaOpen(MPI_Comm, int, const char[], const char[], PetscViewer *);
1184ebda54eSMatthew Knepley EXTERN int PetscViewerSiloOpen(MPI_Comm, const char[], PetscViewer *);
11945f7d322SBarry Smith EXTERN int PetscViewerMatlabOpen(MPI_Comm,const char[],PetscViewerFileType,PetscViewer*);
1204b0e389bSBarry Smith 
121b0a32e0cSBarry Smith EXTERN int PetscViewerGetType(PetscViewer,PetscViewerType*);
1220e33f6ddSBarry Smith EXTERN int PetscViewerSetType(PetscViewer,const PetscViewerType);
123b0a32e0cSBarry Smith EXTERN int PetscViewerDestroy(PetscViewer);
124b0a32e0cSBarry Smith EXTERN int PetscViewerGetSingleton(PetscViewer,PetscViewer*);
125b0a32e0cSBarry Smith EXTERN int PetscViewerRestoreSingleton(PetscViewer,PetscViewer*);
126ae39576cSLois Curfman McInnes 
127090de74eSSatish Balay 
128b9617806SBarry Smith /*E
129b9617806SBarry Smith     PetscViewerFormat - Way a viewer presents the object
130b9617806SBarry Smith 
131b9617806SBarry Smith    Level: beginner
132b9617806SBarry Smith 
133b9617806SBarry Smith .seealso: PetscViewerSetFormat(), PetscViewer, PetscViewerType, PetscViewerPushFormat(), PetscViewerPopFormat()
134b9617806SBarry Smith E*/
135fb9695e5SSatish Balay typedef enum {
136f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_DEFAULT,
137f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_MATLAB,
1384ebda54eSMatthew Knepley   PETSC_VIEWER_ASCII_MATHEMATICA,
139f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_IMPL,
140f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_INFO,
141456192e2SBarry Smith   PETSC_VIEWER_ASCII_INFO_DETAIL,
142f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_COMMON,
143f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_SYMMODU,
144f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_INDEX,
145f3ef73ceSBarry Smith   PETSC_VIEWER_ASCII_DENSE,
146f3ef73ceSBarry Smith   PETSC_VIEWER_BINARY_DEFAULT,
147f3ef73ceSBarry Smith   PETSC_VIEWER_BINARY_NATIVE,
148f3ef73ceSBarry Smith   PETSC_VIEWER_DRAW_BASIC,
149f3ef73ceSBarry Smith   PETSC_VIEWER_DRAW_LG,
150f3ef73ceSBarry Smith   PETSC_VIEWER_DRAW_CONTOUR,
151f3ef73ceSBarry Smith   PETSC_VIEWER_DRAW_PORTS,
152f3ef73ceSBarry Smith   PETSC_VIEWER_NATIVE,
1534aedb280SBarry Smith   PETSC_VIEWER_NOFORMAT,
1544aedb280SBarry Smith   PETSC_VIEWER_ASCII_FACTOR_INFO} PetscViewerFormat;
155090de74eSSatish Balay 
156f3ef73ceSBarry Smith EXTERN int PetscViewerSetFormat(PetscViewer,PetscViewerFormat);
157f3ef73ceSBarry Smith EXTERN int PetscViewerPushFormat(PetscViewer,PetscViewerFormat);
158b0a32e0cSBarry Smith EXTERN int PetscViewerPopFormat(PetscViewer);
159f3ef73ceSBarry Smith EXTERN int PetscViewerGetFormat(PetscViewer,PetscViewerFormat*);
160b0a32e0cSBarry Smith EXTERN int PetscViewerFlush(PetscViewer);
1614b0e389bSBarry Smith 
16277ed5343SBarry Smith /*
16377ed5343SBarry Smith    Operations explicit to a particular class of viewers
16477ed5343SBarry Smith */
165ed5c6e3eSMatthew Knepley 
166ed5c6e3eSMatthew Knepley /*E
167ed5c6e3eSMatthew Knepley   PetscViewerFormat - Access mode for a file.
168ed5c6e3eSMatthew Knepley 
169ed5c6e3eSMatthew Knepley   Level: beginner
170ed5c6e3eSMatthew Knepley 
171ed5c6e3eSMatthew Knepley .seealso: PetscViewerASCIISetMode()
172ed5c6e3eSMatthew Knepley E*/
173ed5c6e3eSMatthew Knepley typedef enum {FILE_MODE_READ, FILE_MODE_WRITE, FILE_MODE_APPEND, FILE_MODE_UPDATE, FILE_MODE_APPEND_UPDATE} PetscFileMode;
174ed5c6e3eSMatthew Knepley 
175b0a32e0cSBarry Smith EXTERN int PetscViewerASCIIGetPointer(PetscViewer,FILE**);
176ed5c6e3eSMatthew Knepley EXTERN int PetscViewerASCIISetMode(PetscViewer,PetscFileMode);
177f80b7eb0SBarry Smith EXTERN int PetscViewerASCIIPrintf(PetscViewer,const char[],...) PETSC_PRINTF_FORMAT_CHECK(2,3);
178f80b7eb0SBarry Smith EXTERN int PetscViewerASCIISynchronizedPrintf(PetscViewer,const char[],...) PETSC_PRINTF_FORMAT_CHECK(2,3);
179b0a32e0cSBarry Smith EXTERN int PetscViewerASCIIPushTab(PetscViewer);
180b0a32e0cSBarry Smith EXTERN int PetscViewerASCIIPopTab(PetscViewer);
181b0a32e0cSBarry Smith EXTERN int PetscViewerASCIIUseTabs(PetscViewer,PetscTruth);
182b0a32e0cSBarry Smith EXTERN int PetscViewerASCIISetTab(PetscViewer,int);
183b0a32e0cSBarry Smith EXTERN int PetscViewerBinaryGetDescriptor(PetscViewer,int*);
184b0a32e0cSBarry Smith EXTERN int PetscViewerBinaryGetInfoPointer(PetscViewer,FILE **);
18545f7d322SBarry Smith EXTERN int PetscViewerSetFileType(PetscViewer,PetscViewerFileType);
186*2fc52814SBarry Smith EXTERN int PetscViewerStringSPrintf(PetscViewer,const char[],...) PETSC_PRINTF_FORMAT_CHECK(2,3);
187b0a32e0cSBarry Smith EXTERN int PetscViewerStringSetString(PetscViewer,char[],int);
188b0a32e0cSBarry Smith EXTERN int PetscViewerDrawClear(PetscViewer);
189b0a32e0cSBarry Smith EXTERN int PetscViewerDrawSetInfo(PetscViewer,const char[],const char[],int,int,int,int);
190b0a32e0cSBarry Smith EXTERN int PetscViewerSocketSetConnection(PetscViewer,const char[],int);
191bba1ac68SSatish Balay EXTERN int PetscViewerBinarySkipInfo(PetscViewer);
19208641331SSatish Balay EXTERN int PetscViewerBinaryLoadInfo(PetscViewer);
19308641331SSatish Balay 
194c655490fSBarry Smith 
195b0a32e0cSBarry Smith EXTERN int PetscViewerSetFilename(PetscViewer,const char[]);
196b0a32e0cSBarry Smith EXTERN int PetscViewerGetFilename(PetscViewer,char**);
19777ed5343SBarry Smith 
19844c6da4fSMatthew Knepley EXTERN int PetscPLAPACKInitializePackage(char *);
19965804fbbSSatish Balay EXTERN int PetscPLAPACKFinalizePackage(void);
20044c6da4fSMatthew Knepley 
20155dcf840SMatthew Knepley EXTERN int PetscViewerVUGetPointer(PetscViewer, FILE**);
202c4b95c56SMatthew Knepley EXTERN int PetscViewerVUSetMode(PetscViewer, PetscFileMode);
203c4b95c56SMatthew Knepley EXTERN int PetscViewerVUSetVecSeen(PetscViewer, PetscTruth);
204c4b95c56SMatthew Knepley EXTERN int PetscViewerVUGetVecSeen(PetscViewer, PetscTruth *);
205f80b7eb0SBarry Smith EXTERN int PetscViewerVUPrintDeferred(PetscViewer, const char [], ...) PETSC_PRINTF_FORMAT_CHECK(2,3);
206c4b95c56SMatthew Knepley EXTERN int PetscViewerVUFlushDeferred(PetscViewer);
20755dcf840SMatthew Knepley 
20844c6da4fSMatthew Knepley EXTERN int PetscViewerMathematicaInitializePackage(char *);
20986e45947SSatish Balay EXTERN int PetscViewerMathematicaFinalizePackage(void);
210918c3ce8SMatthew Knepley EXTERN int PetscViewerMathematicaGetName(PetscViewer, const char **);
2117eb62a3eSMatthew Knepley EXTERN int PetscViewerMathematicaSetName(PetscViewer, const char []);
2127eb62a3eSMatthew Knepley EXTERN int PetscViewerMathematicaClearName(PetscViewer);
2137eb62a3eSMatthew Knepley EXTERN int PetscViewerMathematicaSkipPackets(PetscViewer, int);
2144ebda54eSMatthew Knepley 
2157eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloGetName(PetscViewer, char **);
2167eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloSetName(PetscViewer, const char []);
2177eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloClearName(PetscViewer);
2187eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloGetMeshName(PetscViewer, char **);
2197eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloSetMeshName(PetscViewer, const char []);
2207eb62a3eSMatthew Knepley EXTERN int PetscViewerSiloClearMeshName(PetscViewer);
2214ebda54eSMatthew Knepley 
22245f7d322SBarry Smith EXTERN int PetscViewerNetcdfOpen(MPI_Comm,const char[],PetscViewerFileType,PetscViewer*);
223e3eb5169SDinesh Kaushik EXTERN int PetscViewerNetcdfGetID(PetscViewer, int *);
224e3eb5169SDinesh Kaushik 
22545f7d322SBarry Smith EXTERN int PetscViewerHDF4Open(MPI_Comm,const char[],PetscViewerFileType,PetscViewer*);
22600ccbe27SDinesh Kaushik EXTERN int PetscViewerHDF4WriteSDS(PetscViewer viewer, float *xf, int d, int *dims, int bs);
22700ccbe27SDinesh Kaushik 
22877ed5343SBarry Smith /*
22977ed5343SBarry Smith      These are all the default viewers that do not have
23077ed5343SBarry Smith    to be explicitly opened
23177ed5343SBarry Smith */
232b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_STDOUT_(MPI_Comm);
233b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_STDERR_(MPI_Comm);
234b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_DRAW_(MPI_Comm);
235b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_SOCKET_(MPI_Comm);
236b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_BINARY_(MPI_Comm);
237cbb32127SBarry Smith EXTERN PetscViewer PETSC_VIEWER_MATLAB_(MPI_Comm);
2387eb62a3eSMatthew Knepley EXTERN PetscViewer PETSC_VIEWER_MATHEMATICA_WORLD_PRIVATE;
2395311e20fSBarry Smith 
240b0a32e0cSBarry Smith #define PETSC_VIEWER_STDERR_SELF  PETSC_VIEWER_STDERR_(PETSC_COMM_SELF)
241b0a32e0cSBarry Smith #define PETSC_VIEWER_STDERR_WORLD PETSC_VIEWER_STDERR_(PETSC_COMM_WORLD)
24230de9b25SBarry Smith 
24330de9b25SBarry Smith /*MC
24430de9b25SBarry Smith   PETSC_VIEWER_STDOUT_WORLD  - same as PETSC_VIEWER_STDOUT_(PETSC_COMM_WORLD)
24530de9b25SBarry Smith 
24630de9b25SBarry Smith   Level: beginner
24730de9b25SBarry Smith M*/
24830de9b25SBarry Smith #define PETSC_VIEWER_STDOUT_WORLD PETSC_VIEWER_STDOUT_(PETSC_COMM_WORLD)
24930de9b25SBarry Smith 
25030de9b25SBarry Smith /*MC
25130de9b25SBarry Smith   PETSC_VIEWER_STDOUT_SELF  - same as PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF)
25230de9b25SBarry Smith 
25330de9b25SBarry Smith   Level: beginner
25430de9b25SBarry Smith M*/
25530de9b25SBarry Smith #define PETSC_VIEWER_STDOUT_SELF  PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF)
25630de9b25SBarry Smith 
25730de9b25SBarry Smith /*MC
25830de9b25SBarry Smith   PETSC_VIEWER_DRAW_WORLD  - same as PETSC_VIEWER_DRAW_(PETSC_COMM_WORLD)
25930de9b25SBarry Smith 
26030de9b25SBarry Smith   Level: intermediate
26130de9b25SBarry Smith M*/
262b0a32e0cSBarry Smith #define PETSC_VIEWER_DRAW_WORLD   PETSC_VIEWER_DRAW_(PETSC_COMM_WORLD)
26330de9b25SBarry Smith 
26430de9b25SBarry Smith /*MC
26530de9b25SBarry Smith   PETSC_VIEWER_DRAW_SELF  - same as PETSC_VIEWER_DRAW_(PETSC_COMM_SELF)
26630de9b25SBarry Smith 
26730de9b25SBarry Smith   Level: intermediate
26830de9b25SBarry Smith M*/
26930de9b25SBarry Smith #define PETSC_VIEWER_DRAW_SELF    PETSC_VIEWER_DRAW_(PETSC_COMM_SELF)
27030de9b25SBarry Smith 
27130de9b25SBarry Smith /*MC
27230de9b25SBarry Smith   PETSC_VIEWER_SOCKET_WORLD  - same as PETSC_VIEWER_SOCKET_(PETSC_COMM_WORLD)
27330de9b25SBarry Smith 
27430de9b25SBarry Smith   Level: intermediate
27530de9b25SBarry Smith M*/
276b0a32e0cSBarry Smith #define PETSC_VIEWER_SOCKET_WORLD PETSC_VIEWER_SOCKET_(PETSC_COMM_WORLD)
27730de9b25SBarry Smith 
27830de9b25SBarry Smith /*MC
27930de9b25SBarry Smith   PETSC_VIEWER_SOCKET_SELF  - same as PETSC_VIEWER_SOCKET_(PETSC_COMM_SELF)
28030de9b25SBarry Smith 
28130de9b25SBarry Smith   Level: intermediate
28230de9b25SBarry Smith M*/
283b0a32e0cSBarry Smith #define PETSC_VIEWER_SOCKET_SELF  PETSC_VIEWER_SOCKET_(PETSC_COMM_SELF)
28430de9b25SBarry Smith 
28530de9b25SBarry Smith /*MC
28630de9b25SBarry Smith   PETSC_VIEWER_BINARY_WORLD  - same as PETSC_VIEWER_BINARY_(PETSC_COMM_WORLD)
28730de9b25SBarry Smith 
28830de9b25SBarry Smith   Level: intermediate
28930de9b25SBarry Smith M*/
290b0a32e0cSBarry Smith #define PETSC_VIEWER_BINARY_WORLD PETSC_VIEWER_BINARY_(PETSC_COMM_WORLD)
29130de9b25SBarry Smith 
29230de9b25SBarry Smith /*MC
29330de9b25SBarry Smith   PETSC_VIEWER_BINARY_SELF  - same as PETSC_VIEWER_BINARY_(PETSC_COMM_SELF)
29430de9b25SBarry Smith 
29530de9b25SBarry Smith   Level: intermediate
29630de9b25SBarry Smith M*/
297b0a32e0cSBarry Smith #define PETSC_VIEWER_BINARY_SELF  PETSC_VIEWER_BINARY_(PETSC_COMM_SELF)
29830de9b25SBarry Smith 
299cbb32127SBarry Smith /*MC
300cbb32127SBarry Smith   PETSC_VIEWER_MATLAB_WORLD  - same as PETSC_VIEWER_MATLAB_(PETSC_COMM_WORLD)
301cbb32127SBarry Smith 
302cbb32127SBarry Smith   Level: intermediate
303cbb32127SBarry Smith M*/
304cbb32127SBarry Smith #define PETSC_VIEWER_MATLAB_WORLD PETSC_VIEWER_MATLAB_(PETSC_COMM_WORLD)
305cbb32127SBarry Smith 
306cbb32127SBarry Smith /*MC
307cbb32127SBarry Smith   PETSC_VIEWER_MATLAB_SELF  - same as PETSC_VIEWER_MATLAB_(PETSC_COMM_SELF)
308cbb32127SBarry Smith 
309cbb32127SBarry Smith   Level: intermediate
310cbb32127SBarry Smith M*/
311cbb32127SBarry Smith #define PETSC_VIEWER_MATLAB_SELF  PETSC_VIEWER_MATLAB_(PETSC_COMM_SELF)
312cbb32127SBarry Smith 
3137eb62a3eSMatthew Knepley #define PETSC_VIEWER_MATHEMATICA_WORLD (PetscViewerInitializeMathematicaWorld_Private(),PETSC_VIEWER_MATHEMATICA_WORLD_PRIVATE)
31465ef3172SBarry Smith 
31577ed5343SBarry Smith /*
316b0a32e0cSBarry Smith     PetscViewer based on the ALICE Memory Snooper
31777ed5343SBarry Smith */
318aa482453SBarry Smith #if defined(PETSC_HAVE_AMS)
319cb5b572fSBarry Smith #include "ams.h"
320b0a32e0cSBarry Smith EXTERN int         PetscViewerAMSGetAMSComm(PetscViewer,AMS_Comm *);
321b0a32e0cSBarry Smith EXTERN int         PetscViewerAMSOpen(MPI_Comm,const char[],PetscViewer*);
322b1607693SBarry Smith EXTERN int         PetscViewerAMSLock(PetscViewer);
323b0a32e0cSBarry Smith EXTERN PetscViewer PETSC_VIEWER_AMS_(MPI_Comm);
324b0a32e0cSBarry Smith EXTERN int         PETSC_VIEWER_AMS_Destroy(MPI_Comm);
325b0a32e0cSBarry Smith #define PETSC_VIEWER_AMS_WORLD PETSC_VIEWER_AMS_(PETSC_COMM_WORLD)
3262eb8c8abSBarry Smith #endif
327cb5b572fSBarry Smith 
328f2b01315SBarry Smith /*
329cbb32127SBarry Smith    petscViewer writes to Matlab .mat file
330cbb32127SBarry Smith */
331cbb32127SBarry Smith EXTERN int PetscViewerMatlabPutArray(PetscViewer,int,int,PetscScalar*,char*);
332cbb32127SBarry Smith EXTERN int PetscViewerMatlabGetArray(PetscViewer,int,int,PetscScalar*,char*);
333cbb32127SBarry Smith EXTERN int PetscViewerMatlabPutVariable(PetscViewer,const char*,void*);
334cbb32127SBarry Smith 
335cbb32127SBarry Smith /*
336b0a32e0cSBarry Smith     PetscViewer utility routines used by PETSc that are not normally used
337f2b01315SBarry Smith    by users.
338f2b01315SBarry Smith */
33987828ca2SBarry Smith EXTERN int  PetscViewerSocketPutScalar(PetscViewer,int,int,PetscScalar*);
34087828ca2SBarry Smith EXTERN int  PetscViewerSocketPutReal(PetscViewer,int,int,PetscReal*);
341b0a32e0cSBarry Smith EXTERN int  PetscViewerSocketPutInt(PetscViewer,int,int*);
34287828ca2SBarry Smith EXTERN int  PetscViewerSocketPutSparse_Private(PetscViewer,int,int,int,PetscScalar*,int*,int *);
343b0a32e0cSBarry Smith EXTERN int  PetscViewerDestroyAMS_Private(void);
344f2b01315SBarry Smith 
345b9617806SBarry Smith /*S
346b9617806SBarry Smith      PetscViewers - Abstract collection of PetscViewers
347b9617806SBarry Smith 
348b9617806SBarry Smith    Level: intermediate
349b9617806SBarry Smith 
350b9617806SBarry Smith   Concepts: viewing
351b9617806SBarry Smith 
352b9617806SBarry Smith .seealso:  PetscViewerCreate(), PetscViewerSetType(), PetscViewerType, PetscViewer, PetscViewersCreate(),
353b9617806SBarry Smith            PetscViewersGetViewer()
354b9617806SBarry Smith S*/
355b0a32e0cSBarry Smith typedef struct _p_PetscViewers* PetscViewers;
356b0a32e0cSBarry Smith EXTERN int PetscViewersCreate(MPI_Comm,PetscViewers*);
357b0a32e0cSBarry Smith EXTERN int PetscViewersDestroy(PetscViewers);
358b0a32e0cSBarry Smith EXTERN int PetscViewersGetViewer(PetscViewers,int,PetscViewer*);
359d132466eSBarry Smith 
360e9fa29b7SSatish Balay PETSC_EXTERN_CXX_END
361cb5b572fSBarry Smith #endif
362