Actual source code: petscsys.h
1: /* $Id: petscsys.h,v 1.63 2001/08/07 21:32:24 bsmith Exp $ */
2: /*
3: Provides access to system related and general utility routines.
4: */
8: #include petsc.h
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);
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[]);
25: EXTERN int PetscSetDisplay(void);
26: EXTERN int PetscGetDisplay(char[],int);
28: extern int PETSC_RANDOM_COOKIE;
30: typedef enum { RANDOM_DEFAULT,RANDOM_DEFAULT_REAL,
31: RANDOM_DEFAULT_IMAGINARY } PetscRandomType;
33: /*S
34: PetscRandom - Abstract PETSc object that manages generating random numbers
36: Level: intermediate
38: Concepts: random numbers
40: .seealso: PetscRandomCreate(), PetscRandomGetValue()
41: S*/
42: typedef struct _p_PetscRandom* PetscRandom;
44: EXTERN int PetscRandomCreate(MPI_Comm,PetscRandomType,PetscRandom*);
45: EXTERN int PetscRandomGetValue(PetscRandom,PetscScalar*);
46: EXTERN int PetscRandomSetInterval(PetscRandom,PetscScalar,PetscScalar);
47: EXTERN int PetscRandomDestroy(PetscRandom);
49: EXTERN int PetscGetFullPath(const char[],char[],int);
50: EXTERN int PetscGetRelativePath(const char[],char[],int);
51: EXTERN int PetscGetWorkingDirectory(char[],int);
52: EXTERN int PetscGetRealPath(char[],char[]);
53: EXTERN int PetscGetHomeDirectory(char[],int);
54: EXTERN int PetscTestFile(const char[],char,PetscTruth*);
55: EXTERN int PetscTestDirectory(const char[],char,PetscTruth*);
56: EXTERN int PetscBinaryRead(int,void*,int,PetscDataType);
57: EXTERN int PetscSynchronizedBinaryRead(MPI_Comm,int,void*,int,PetscDataType);
58: EXTERN int PetscBinaryWrite(int,void*,int,PetscDataType,int);
59: EXTERN int PetscBinaryOpen(const char[],int,int *);
60: EXTERN int PetscBinaryClose(int);
61: EXTERN int PetscSharedTmp(MPI_Comm,PetscTruth *);
62: EXTERN int PetscSharedWorkingDirectory(MPI_Comm,PetscTruth *);
63: EXTERN int PetscGetTmp(MPI_Comm,char *,int);
64: EXTERN int PetscFileRetrieve(MPI_Comm,const char *,char *,int,PetscTruth*);
65: EXTERN int PetscLs(MPI_Comm,const char[],char*,int,PetscTruth*);
66: EXTERN int PetscDLLibraryCCAAppend(MPI_Comm,PetscDLLibraryList*,const char[]);
68: /*
69: In binary files variables are stored using the following lengths,
70: regardless of how they are stored in memory on any one particular
71: machine. Use these rather then sizeof() in computing sizes for
72: PetscBinarySeek().
73: */
74: #define PETSC_BINARY_INT_SIZE (32/8)
75: #define PETSC_BINARY_FLOAT_SIZE (32/8)
76: #define PETSC_BINARY_CHAR_SIZE (8/8)
77: #define PETSC_BINARY_SHORT_SIZE (16/8)
78: #define PETSC_BINARY_DOUBLE_SIZE (64/8)
79: #define PETSC_BINARY_SCALAR_SIZE sizeof(PetscScalar)
81: /*E
82: PetscBinarySeekType - argument to PetscBinarySeek()
84: Level: advanced
86: .seealso: PetscBinarySeek(), PetscSynchronizedBinarySeek()
87: E*/
88: typedef enum {PETSC_BINARY_SEEK_SET = 0,PETSC_BINARY_SEEK_CUR = 1,PETSC_BINARY_SEEK_END = 2} PetscBinarySeekType;
89: EXTERN int PetscBinarySeek(int,int,PetscBinarySeekType,int*);
90: EXTERN int PetscSynchronizedBinarySeek(MPI_Comm,int,int,PetscBinarySeekType,int*);
92: EXTERN int PetscSetDebugger(const char[],PetscTruth);
93: EXTERN int PetscSetDefaultDebugger(void);
94: EXTERN int PetscSetDebuggerFromString(char*);
95: EXTERN int PetscAttachDebugger(void);
96: EXTERN int PetscStopForDebugger(void);
98: EXTERN int PetscGatherNumberOfMessages(MPI_Comm,int*,int*,int*);
99: EXTERN int PetscGatherMessageLengths(MPI_Comm,int,int,int*,int**,int**);
100: EXTERN int PetscPostIrecvInt(MPI_Comm,int,int,int*,int*,int***,MPI_Request**);
101: EXTERN int PetscPostIrecvScalar(MPI_Comm,int,int,int*,int*,PetscScalar***,MPI_Request**);
103: EXTERN int PetscSSEIsEnabled(MPI_Comm,PetscTruth *,PetscTruth *);
105: /* ParameterDict objects encapsulate arguments to generic functions, like mechanisms over interfaces */
106: EXTERN int ParameterDictCreate(MPI_Comm, ParameterDict *);
107: EXTERN int ParameterDictDestroy(ParameterDict);
108: EXTERN int ParameterDictRemove(ParameterDict, const char []);
109: EXTERN int ParameterDictSetInteger(ParameterDict, const char [], int);
110: EXTERN int ParameterDictSetDouble(ParameterDict, const char [], double);
111: EXTERN int ParameterDictSetObject(ParameterDict, const char [], void *);
112: EXTERN int ParameterDictGetInteger(ParameterDict, const char [], int *);
113: EXTERN int ParameterDictGetDouble(ParameterDict, const char [], double *);
114: EXTERN int ParameterDictGetObject(ParameterDict, const char [], void **);
116: /* Parallel communication routines */
117: /*E
118: InsertMode - Whether entries are inserted or added into vectors or matrices
120: Level: beginner
122: .seealso: VecSetValues(), MatSetValues(), VecSetValue(), VecSetValuesBlocked(),
123: VecSetValuesLocal(), VecSetValuesBlockedLocal(), MatSetValuesBlocked(),
124: MatSetValuesBlockedLocal(), MatSetValuesLocal()
125: E*/
126: typedef enum {NOT_SET_VALUES, INSERT_VALUES, ADD_VALUES, MAX_VALUES} InsertMode;
127: /*E
128: ScatterMode - Determines the direction of a scatter
130: Level: beginner
132: .seealso: VecScatter, VecScatterBegin(), VecScatterEnd()
133: E*/
134: typedef enum {SCATTER_FORWARD=0, SCATTER_REVERSE=1, SCATTER_FORWARD_LOCAL=2, SCATTER_REVERSE_LOCAL=3, SCATTER_LOCAL=2} ScatterMode;
136: EXTERN int PetscGhostExchange(MPI_Comm, int, int *, int *, PetscDataType, int *, InsertMode, ScatterMode, void *, void *);
139: #endif /* __PETSCSYS_H */