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" 8e9fa29b7SSatish Balay PETSC_EXTERN_CXX_BEGIN 93a3b2205SBarry Smith 10b0a32e0cSBarry Smith EXTERN int PetscOptionsHasName(const char[],const char[],PetscTruth*); 11b0a32e0cSBarry Smith EXTERN int PetscOptionsGetInt(const char[],const char [],int *,PetscTruth*); 12b0a32e0cSBarry Smith EXTERN int PetscOptionsGetLogical(const char[],const char [],PetscTruth *,PetscTruth*); 13f6275e2eSBarry Smith EXTERN int PetscOptionsGetReal(const char[],const char[],PetscReal *,PetscTruth*); 1487828ca2SBarry Smith EXTERN int PetscOptionsGetScalar(const char[],const char[],PetscScalar *,PetscTruth*); 15b0a32e0cSBarry Smith EXTERN int PetscOptionsGetIntArray(const char[],const char[],int[],int *,PetscTruth*); 16f6275e2eSBarry Smith EXTERN int PetscOptionsGetRealArray(const char[],const char[],PetscReal[],int *,PetscTruth*); 17b0a32e0cSBarry Smith EXTERN int PetscOptionsGetString(const char[],const char[],char[],int,PetscTruth*); 181836bdbcSSatish Balay EXTERN int PetscOptionsGetStringArray(const char[],const char[],char*[],int*,PetscTruth*); 193a3b2205SBarry Smith 20b0a32e0cSBarry Smith EXTERN int PetscOptionsSetAlias(const char[],const char[]); 21b0a32e0cSBarry Smith EXTERN int PetscOptionsSetValue(const char[],const char[]); 22b0a32e0cSBarry Smith EXTERN int PetscOptionsClearValue(const char[]); 233a3b2205SBarry Smith 24b0a32e0cSBarry Smith EXTERN int PetscOptionsAllUsed(int *); 25b0a32e0cSBarry Smith EXTERN int PetscOptionsLeft(void); 26b0a32e0cSBarry Smith EXTERN int PetscOptionsPrint(FILE *); 274b0e389bSBarry Smith 28b0a32e0cSBarry Smith EXTERN int PetscOptionsCreate(void); 29b0a32e0cSBarry Smith EXTERN int PetscOptionsInsert(int *,char ***,const char[]); 30b0a32e0cSBarry Smith EXTERN int PetscOptionsInsertFile(const char[]); 31*e5999256SBarry Smith EXTERN int PetscOptionsInsertString(const char[]); 32b0a32e0cSBarry Smith EXTERN int PetscOptionsDestroy(void); 335d0dffe5SBarry Smith 34b0a32e0cSBarry Smith EXTERN int PetscOptionsReject(const char[],const char[]); 35b0a32e0cSBarry Smith EXTERN int PetscOptionsGetAll(char*[]); 365d0dffe5SBarry Smith 37*e5999256SBarry Smith EXTERN int PetscOptionsGetenv(MPI_Comm,const char[],char[],int,PetscTruth *); 38b0a32e0cSBarry Smith EXTERN int PetscOptionsAtoi(const char[],int*); 3987828ca2SBarry Smith EXTERN int PetscOptionsAtod(const char[],PetscReal*); 402e8a6d31SBarry Smith 41b0a32e0cSBarry Smith extern PetscTruth PetscOptionsPublish; 42b0a32e0cSBarry Smith extern int PetscOptionsPublishCount; 4330de9b25SBarry Smith 4430de9b25SBarry Smith /*MC 4530de9b25SBarry Smith PetscOptionsBegin - Begins a set of queries on the options database that are related and should be 4630de9b25SBarry Smith displayed on the same window of a GUI that allows the user to set the options interactively. 4730de9b25SBarry Smith 48*e5999256SBarry Smith Synopsis: int PetscOptionsBegin(MPI_Comm comm,const char prefix[],const char title[],const char mansec[]) 4930de9b25SBarry Smith 5030de9b25SBarry Smith Collective on MPI_Comm 5130de9b25SBarry Smith 5230de9b25SBarry Smith Input Parameters: 5330de9b25SBarry Smith + comm - communicator that shares GUI 5430de9b25SBarry Smith . prefix - options prefix for all options displayed on window 5530de9b25SBarry Smith . title - short descriptive text, for example "Krylov Solver Options" 5630de9b25SBarry Smith - mansec - section of manual pages for options, for example KSP 5730de9b25SBarry Smith 5830de9b25SBarry Smith Level: intermediate 5930de9b25SBarry Smith 6030de9b25SBarry Smith Notes: Needs to be ended by a call the PetscOptionsEnd() 6130de9b25SBarry Smith 6230de9b25SBarry Smith Can add subheadings with PetscOptionsHead() 6330de9b25SBarry Smith 6430de9b25SBarry Smith .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 6530de9b25SBarry Smith PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 6630de9b25SBarry Smith PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 6730de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 6830de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 6930de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 7030de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 7130de9b25SBarry Smith 7230de9b25SBarry Smith M*/ 73b0a32e0cSBarry Smith #define PetscOptionsBegin(comm,prefix,mess,sec) 0; {\ 74b0a32e0cSBarry Smith for (PetscOptionsPublishCount=(PetscOptionsPublish?-1:1); PetscOptionsPublishCount<2; PetscOptionsPublishCount++) {\ 75ef66eb69SBarry Smith int _5_ierr = PetscOptionsBegin_Private(comm,prefix,mess,sec);CHKERRQ(_5_ierr); 7630de9b25SBarry Smith 7730de9b25SBarry Smith /*MC 7830de9b25SBarry Smith PetscOptionsEnd - Ends a set of queries on the options database that are related and should be 7930de9b25SBarry Smith displayed on the same window of a GUI that allows the user to set the options interactively. 8030de9b25SBarry Smith 8130de9b25SBarry Smith Collective on the MPI_Comm used in PetscOptionsBegin() 8230de9b25SBarry Smith 8330de9b25SBarry Smith Synopsis: int PetscOptionsEnd(void) 8430de9b25SBarry Smith 8530de9b25SBarry Smith Level: intermediate 8630de9b25SBarry Smith 8730de9b25SBarry Smith Notes: Needs to be preceded by a call to PetscOptionsBegin() 8830de9b25SBarry Smith 8930de9b25SBarry Smith .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 9030de9b25SBarry Smith PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 9130de9b25SBarry Smith PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 9230de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 9330de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 9430de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 9530de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 9630de9b25SBarry Smith 9730de9b25SBarry Smith M*/ 98ef66eb69SBarry Smith #define PetscOptionsEnd() _5_ierr = PetscOptionsEnd_Private();CHKERRQ(_5_ierr);}} 9930de9b25SBarry Smith 100*e5999256SBarry Smith EXTERN int PetscOptionsBegin_Private(MPI_Comm,const char[],const char[],const char[]); 101b0a32e0cSBarry Smith EXTERN int PetscOptionsEnd_Private(void); 102*e5999256SBarry Smith EXTERN int PetscOptionsHead(const char[]); 10330de9b25SBarry Smith 10430de9b25SBarry Smith /*MC 10530de9b25SBarry Smith PetscOptionsTail - Ends a section of options begun with PetscOptionsHead() 10630de9b25SBarry Smith See, for example, KSPSetFromOptions_GMRES(). 10730de9b25SBarry Smith 10830de9b25SBarry Smith Collective on the communicator passed in PetscOptionsBegin() 10930de9b25SBarry Smith 11030de9b25SBarry Smith Synopsis: int PetscOptionsTail(void) 11130de9b25SBarry Smith 11230de9b25SBarry Smith Level: intermediate 11330de9b25SBarry Smith 11430de9b25SBarry Smith Notes: Must be between a PetscOptionsBegin() and a PetscOptionsEnd() 11530de9b25SBarry Smith 11630de9b25SBarry Smith Must be preceded by a call to PetscOptionsHead() in the same function. 11730de9b25SBarry Smith 11830de9b25SBarry Smith Concepts: options database^subheading 11930de9b25SBarry Smith 12030de9b25SBarry Smith .seealso: PetscOptionsGetInt(), PetscOptionsGetReal(), 12130de9b25SBarry Smith PetscOptionsHasName(), PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical(), 12230de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 12330de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 12430de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 12530de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 12630de9b25SBarry Smith M*/ 127b0a32e0cSBarry Smith #define PetscOptionsTail() 0; {if (PetscOptionsPublishCount != 1) PetscFunctionReturn(0);} 128186905e3SBarry Smith 129*e5999256SBarry Smith EXTERN int PetscOptionsInt(const char[],const char[],const char[],int,int*,PetscTruth*); 130*e5999256SBarry Smith EXTERN int PetscOptionsReal(const char[],const char[],const char[],PetscReal,PetscReal*,PetscTruth*); 131*e5999256SBarry Smith EXTERN int PetscOptionsScalar(const char[],const char[],const char[],PetscScalar,PetscScalar*,PetscTruth*); 132*e5999256SBarry Smith EXTERN int PetscOptionsName(const char[],const char[],const char[],PetscTruth*); 133*e5999256SBarry Smith EXTERN int PetscOptionsString(const char[],const char[],const char[],const char[],char*,int,PetscTruth*); 134*e5999256SBarry Smith EXTERN int PetscOptionsLogical(const char[],const char[],const char[],PetscTruth,PetscTruth*,PetscTruth*); 135*e5999256SBarry Smith EXTERN int PetscOptionsLogicalGroupBegin(const char[],const char[],const char[],PetscTruth*); 136*e5999256SBarry Smith EXTERN int PetscOptionsLogicalGroup(const char[],const char[],const char[],PetscTruth*); 137*e5999256SBarry Smith EXTERN int PetscOptionsLogicalGroupEnd(const char[],const char[],const char[],PetscTruth*); 138*e5999256SBarry Smith EXTERN int PetscOptionsList(const char[],const char[],const char[],PetscFList,const char[],const char[],int,PetscTruth*); 139*e5999256SBarry Smith EXTERN int PetscOptionsEList(const char[],const char[],const char[],const char*[],int,const char[],int*,PetscTruth*); 140*e5999256SBarry Smith EXTERN int PetscOptionsRealArray(const char[],const char[],const char[],PetscReal[],int*,PetscTruth*); 141*e5999256SBarry Smith EXTERN int PetscOptionsIntArray(const char[],const char[],const char[],int[],int*,PetscTruth*); 142*e5999256SBarry Smith EXTERN int PetscOptionsStringArray(const char[],const char[],const char[],char*[],int*,PetscTruth*); 143e9fa29b7SSatish Balay 144e9fa29b7SSatish Balay PETSC_EXTERN_CXX_END 1453a3b2205SBarry Smith #endif 146