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