1 /* $Id: petscoptions.h,v 1.46 2001/09/07 20:13:16 bsmith Exp $ */ 2 /* 3 Routines to determine options set in the options database. 4 */ 5 #if !defined(__PETSCOPTIONS_H) 6 #define __PETSCOPTIONS_H 7 #include "petsc.h" 8 PETSC_EXTERN_CXX_BEGIN 9 10 EXTERN int PetscOptionsHasName(const char[],const char[],PetscTruth*); 11 EXTERN int PetscOptionsGetInt(const char[],const char [],int *,PetscTruth*); 12 EXTERN int PetscOptionsGetLogical(const char[],const char [],PetscTruth *,PetscTruth*); 13 EXTERN int PetscOptionsGetReal(const char[],const char[],PetscReal *,PetscTruth*); 14 EXTERN int PetscOptionsGetScalar(const char[],const char[],PetscScalar *,PetscTruth*); 15 EXTERN int PetscOptionsGetIntArray(const char[],const char[],int[],int *,PetscTruth*); 16 EXTERN int PetscOptionsGetRealArray(const char[],const char[],PetscReal[],int *,PetscTruth*); 17 EXTERN int PetscOptionsGetString(const char[],const char[],char[],int,PetscTruth*); 18 EXTERN int PetscOptionsGetStringArray(const char[],const char[],char*[],int*,PetscTruth*); 19 20 EXTERN int PetscOptionsSetAlias(const char[],const char[]); 21 EXTERN int PetscOptionsSetValue(const char[],const char[]); 22 EXTERN int PetscOptionsClearValue(const char[]); 23 24 EXTERN int PetscOptionsAllUsed(int *); 25 EXTERN int PetscOptionsLeft(void); 26 EXTERN int PetscOptionsPrint(FILE *); 27 28 EXTERN int PetscOptionsCreate(void); 29 EXTERN int PetscOptionsInsert(int *,char ***,const char[]); 30 EXTERN int PetscOptionsInsertFile(const char[]); 31 EXTERN int PetscOptionsInsertString(const char[]); 32 EXTERN int PetscOptionsDestroy(void); 33 34 EXTERN int PetscOptionsReject(const char[],const char[]); 35 EXTERN int PetscOptionsGetAll(char*[]); 36 37 EXTERN int PetscOptionsGetenv(MPI_Comm,const char[],char[],int,PetscTruth *); 38 EXTERN int PetscOptionsAtoi(const char[],int*); 39 EXTERN int PetscOptionsAtod(const char[],PetscReal*); 40 41 extern PetscTruth PetscOptionsPublish; 42 extern int PetscOptionsPublishCount; 43 44 /*MC 45 PetscOptionsBegin - Begins a set of queries on the options database that are related and should be 46 displayed on the same window of a GUI that allows the user to set the options interactively. 47 48 Synopsis: int PetscOptionsBegin(MPI_Comm comm,const char prefix[],const char title[],const char mansec[]) 49 50 Collective on MPI_Comm 51 52 Input Parameters: 53 + comm - communicator that shares GUI 54 . prefix - options prefix for all options displayed on window 55 . title - short descriptive text, for example "Krylov Solver Options" 56 - mansec - section of manual pages for options, for example KSP 57 58 Level: intermediate 59 60 Notes: Needs to be ended by a call the PetscOptionsEnd() 61 62 Can add subheadings with PetscOptionsHead() 63 64 .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 65 PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 66 PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 67 PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 68 PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 69 PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 70 PetscOptionsList(), PetscOptionsEList() 71 72 M*/ 73 #define PetscOptionsBegin(comm,prefix,mess,sec) 0; {\ 74 for (PetscOptionsPublishCount=(PetscOptionsPublish?-1:1); PetscOptionsPublishCount<2; PetscOptionsPublishCount++) {\ 75 int _5_ierr = PetscOptionsBegin_Private(comm,prefix,mess,sec);CHKERRQ(_5_ierr); 76 77 /*MC 78 PetscOptionsEnd - Ends a set of queries on the options database that are related and should be 79 displayed on the same window of a GUI that allows the user to set the options interactively. 80 81 Collective on the MPI_Comm used in PetscOptionsBegin() 82 83 Synopsis: int PetscOptionsEnd(void) 84 85 Level: intermediate 86 87 Notes: Needs to be preceded by a call to PetscOptionsBegin() 88 89 .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 90 PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 91 PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 92 PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 93 PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 94 PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 95 PetscOptionsList(), PetscOptionsEList() 96 97 M*/ 98 #define PetscOptionsEnd() _5_ierr = PetscOptionsEnd_Private();CHKERRQ(_5_ierr);}} 99 100 EXTERN int PetscOptionsBegin_Private(MPI_Comm,const char[],const char[],const char[]); 101 EXTERN int PetscOptionsEnd_Private(void); 102 EXTERN int PetscOptionsHead(const char[]); 103 104 /*MC 105 PetscOptionsTail - Ends a section of options begun with PetscOptionsHead() 106 See, for example, KSPSetFromOptions_GMRES(). 107 108 Collective on the communicator passed in PetscOptionsBegin() 109 110 Synopsis: int PetscOptionsTail(void) 111 112 Level: intermediate 113 114 Notes: Must be between a PetscOptionsBegin() and a PetscOptionsEnd() 115 116 Must be preceded by a call to PetscOptionsHead() in the same function. 117 118 Concepts: options database^subheading 119 120 .seealso: PetscOptionsGetInt(), PetscOptionsGetReal(), 121 PetscOptionsHasName(), PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical(), 122 PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 123 PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 124 PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 125 PetscOptionsList(), PetscOptionsEList() 126 M*/ 127 #define PetscOptionsTail() 0; {if (PetscOptionsPublishCount != 1) PetscFunctionReturn(0);} 128 129 EXTERN int PetscOptionsInt(const char[],const char[],const char[],int,int*,PetscTruth*); 130 EXTERN int PetscOptionsReal(const char[],const char[],const char[],PetscReal,PetscReal*,PetscTruth*); 131 EXTERN int PetscOptionsScalar(const char[],const char[],const char[],PetscScalar,PetscScalar*,PetscTruth*); 132 EXTERN int PetscOptionsName(const char[],const char[],const char[],PetscTruth*); 133 EXTERN int PetscOptionsString(const char[],const char[],const char[],const char[],char*,int,PetscTruth*); 134 EXTERN int PetscOptionsLogical(const char[],const char[],const char[],PetscTruth,PetscTruth*,PetscTruth*); 135 EXTERN int PetscOptionsLogicalGroupBegin(const char[],const char[],const char[],PetscTruth*); 136 EXTERN int PetscOptionsLogicalGroup(const char[],const char[],const char[],PetscTruth*); 137 EXTERN int PetscOptionsLogicalGroupEnd(const char[],const char[],const char[],PetscTruth*); 138 EXTERN int PetscOptionsList(const char[],const char[],const char[],PetscFList,const char[],char[],int,PetscTruth*); 139 EXTERN int PetscOptionsEList(const char[],const char[],const char[],const char*[],int,const char[],int*,PetscTruth*); 140 EXTERN int PetscOptionsRealArray(const char[],const char[],const char[],PetscReal[],int*,PetscTruth*); 141 EXTERN int PetscOptionsIntArray(const char[],const char[],const char[],int[],int*,PetscTruth*); 142 EXTERN int PetscOptionsStringArray(const char[],const char[],const char[],char*[],int*,PetscTruth*); 143 144 PETSC_EXTERN_CXX_END 145 #endif 146