Actual source code: petscsys.h

  1: /* $Id: petscsys.h,v 1.59 2001/03/09 20:05:26 balay 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  PetscSortDouble(int,double[]);
 23: EXTERN int  PetscSortDoubleWithPermutation(int,const double[],int[]);

 25: EXTERN int  PetscSetDisplay(void);
 26: EXTERN int  PetscGetDisplay(char[],int);

 28: #define PETSCRANDOM_COOKIE PETSC_COOKIE+19

 30: typedef enum { RANDOM_DEFAULT,RANDOM_DEFAULT_REAL,
 31:                RANDOM_DEFAULT_IMAGINARY } PetscRandomType;

 33: typedef struct _p_PetscRandom*   PetscRandom;

 35: EXTERN int PetscRandomCreate(MPI_Comm,PetscRandomType,PetscRandom*);
 36: EXTERN int PetscRandomGetValue(PetscRandom,Scalar*);
 37: EXTERN int PetscRandomSetInterval(PetscRandom,Scalar,Scalar);
 38: EXTERN int PetscRandomDestroy(PetscRandom);

 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 PetscBinaryRead(int,void*,int,PetscDataType);
 47: EXTERN int PetscSynchronizedBinaryRead(MPI_Comm,int,void*,int,PetscDataType);
 48: EXTERN int PetscBinaryWrite(int,void*,int,PetscDataType,int);
 49: EXTERN int PetscBinaryOpen(const char[],int,int *);
 50: EXTERN int PetscBinaryClose(int);
 51: EXTERN int PetscSharedTmp(MPI_Comm,PetscTruth *);
 52: EXTERN int PetscSharedWorkingDirectory(MPI_Comm,PetscTruth *);
 53: EXTERN int PetscGetTmp(MPI_Comm,char *,int);
 54: EXTERN int PetscFileRetrieve(MPI_Comm,const char *,char *,int,PetscTruth*);

 56: /*
 57:    In binary files variables are stored using the following lengths,
 58:   regardless of how they are stored in memory on any one particular
 59:   machine. Use these rather then sizeof() in computing sizes for 
 60:   PetscBinarySeek().
 61: */
 62: #define PETSC_BINARY_INT_SIZE    (32/8)
 63: #define PETSC_BINARY_FLOAT_SIZE  (32/8)
 64: #define PETSC_BINARY_CHAR_SIZE    (8/8)
 65: #define PETSC_BINARY_SHORT_SIZE  (16/8)
 66: #define PETSC_BINARY_DOUBLE_SIZE (64/8)
 67: #define PETSC_BINARY_SCALAR_SIZE sizeof(Scalar)

 69: typedef enum {PETSC_BINARY_SEEK_SET = 0,PETSC_BINARY_SEEK_CUR = 1,PETSC_BINARY_SEEK_END = 2} PetscBinarySeekType;
 70: EXTERN int PetscBinarySeek(int,int,PetscBinarySeekType,int*);
 71: EXTERN int PetscSynchronizedBinarySeek(MPI_Comm,int,int,PetscBinarySeekType,int*);

 73: EXTERN int PetscSetDebugger(const char[],PetscTruth);
 74: EXTERN int PetscSetDefaultDebugger(void);
 75: EXTERN int PetscSetDebuggerFromString(char*);
 76: EXTERN int PetscAttachDebugger(void);
 77: EXTERN int PetscStopForDebugger(void);

 79: EXTERN int PetscGatherNumberOfMessages(MPI_Comm,int*,int*,int*);
 80: EXTERN int PetscGatherMessageLengths(MPI_Comm,int,int,int*,int**,int**);
 81: EXTERN int PetscPostIrecvInt(MPI_Comm,int,int,int*,int*,int***,MPI_Request**);
 82: EXTERN int PetscPostIrecvScalar(MPI_Comm,int,int,int*,int*,Scalar***,MPI_Request**);

 84: #endif