xref: /petsc/include/petscsys.h (revision bba1ac68cc83cbd8cb9fb2c22025bd01e1d852e7)
1 /* $Id: petscsys.h,v 1.65 2001/09/19 16:12:06 bsmith Exp $ */
2 /*
3     Provides access to system related and general utility routines.
4 */
5 #if !defined(__PETSCSYS_H)
6 #define __PETSCSYS_H
7 
8 #include "petsc.h"
9 
10 EXTERN int  PetscGetArchType(char[],int);
11 EXTERN int  PetscGetHostName(char[],int);
12 EXTERN int  PetscGetUserName(char[],int);
13 EXTERN int  PetscGetProgramName(char[],int);
14 EXTERN int  PetscSetProgramName(const char[]);
15 EXTERN int  PetscGetDate(char[],int);
16 EXTERN int  PetscSetInitialDate(void);
17 EXTERN int  PetscGetInitialDate(char[],int);
18 
19 EXTERN int  PetscSortInt(int,int[]);
20 EXTERN int  PetscSortIntWithPermutation(int,const int[],int[]);
21 EXTERN int  PetscSortIntWithArray(int,int[],int[]);
22 EXTERN int  PetscSortReal(int,PetscReal[]);
23 EXTERN int  PetscSortRealWithPermutation(int,const PetscReal[],int[]);
24 
25 EXTERN int  PetscSetDisplay(void);
26 EXTERN int  PetscGetDisplay(char[],int);
27 
28 #define PETSCRANDOM_COOKIE PETSC_COOKIE+19
29 
30 typedef enum { RANDOM_DEFAULT,RANDOM_DEFAULT_REAL,
31                RANDOM_DEFAULT_IMAGINARY } PetscRandomType;
32 
33 typedef struct _p_PetscRandom*   PetscRandom;
34 
35 EXTERN int PetscRandomCreate(MPI_Comm,PetscRandomType,PetscRandom*);
36 EXTERN int PetscRandomGetValue(PetscRandom,PetscScalar*);
37 EXTERN int PetscRandomSetInterval(PetscRandom,PetscScalar,PetscScalar);
38 EXTERN int PetscRandomDestroy(PetscRandom);
39 
40 EXTERN int PetscGetFullPath(const char[],char[],int);
41 EXTERN int PetscGetRelativePath(const char[],char[],int);
42 EXTERN int PetscGetWorkingDirectory(char[],int);
43 EXTERN int PetscGetRealPath(char[],char[]);
44 EXTERN int PetscGetHomeDirectory(char[],int);
45 EXTERN int PetscTestFile(const char[],char,PetscTruth*);
46 EXTERN int PetscTestDirectory(const char[],char,PetscTruth*);
47 EXTERN int PetscBinaryRead(int,void*,int,PetscDataType);
48 EXTERN int PetscSynchronizedBinaryRead(MPI_Comm,int,void*,int,PetscDataType);
49 EXTERN int PetscBinaryWrite(int,void*,int,PetscDataType,int);
50 EXTERN int PetscBinaryOpen(const char[],int,int *);
51 EXTERN int PetscBinaryClose(int);
52 EXTERN int PetscSharedTmp(MPI_Comm,PetscTruth *);
53 EXTERN int PetscSharedWorkingDirectory(MPI_Comm,PetscTruth *);
54 EXTERN int PetscGetTmp(MPI_Comm,char *,int);
55 EXTERN int PetscFileRetrieve(MPI_Comm,const char *,char *,int,PetscTruth*);
56 EXTERN int PetscLs(MPI_Comm,const char[],char*,int,PetscTruth*);
57 EXTERN int PetscDLLibraryCCAAppend(MPI_Comm,PetscDLLibraryList*,const char[]);
58 
59 /*
60    In binary files variables are stored using the following lengths,
61   regardless of how they are stored in memory on any one particular
62   machine. Use these rather then sizeof() in computing sizes for
63   PetscBinarySeek().
64 */
65 #define PETSC_BINARY_INT_SIZE    (32/8)
66 #define PETSC_BINARY_FLOAT_SIZE  (32/8)
67 #define PETSC_BINARY_CHAR_SIZE    (8/8)
68 #define PETSC_BINARY_SHORT_SIZE  (16/8)
69 #define PETSC_BINARY_DOUBLE_SIZE (64/8)
70 #define PETSC_BINARY_SCALAR_SIZE sizeof(PetscScalar)
71 
72 typedef enum {PETSC_BINARY_SEEK_SET = 0,PETSC_BINARY_SEEK_CUR = 1,PETSC_BINARY_SEEK_END = 2} PetscBinarySeekType;
73 EXTERN int PetscBinarySeek(int,int,PetscBinarySeekType,int*);
74 EXTERN int PetscSynchronizedBinarySeek(MPI_Comm,int,int,PetscBinarySeekType,int*);
75 
76 EXTERN int PetscSetDebugger(const char[],PetscTruth);
77 EXTERN int PetscSetDefaultDebugger(void);
78 EXTERN int PetscSetDebuggerFromString(char*);
79 EXTERN int PetscAttachDebugger(void);
80 EXTERN int PetscStopForDebugger(void);
81 
82 EXTERN int PetscGatherNumberOfMessages(MPI_Comm,int*,int*,int*);
83 EXTERN int PetscGatherMessageLengths(MPI_Comm,int,int,int*,int**,int**);
84 EXTERN int PetscPostIrecvInt(MPI_Comm,int,int,int*,int*,int***,MPI_Request**);
85 EXTERN int PetscPostIrecvScalar(MPI_Comm,int,int,int*,int*,PetscScalar***,MPI_Request**);
86 
87 EXTERN int PetscSSEIsEnabled(MPI_Comm,PetscTruth *,PetscTruth *);
88 #endif
89 
90