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" 8*e9fa29b7SSatish 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[]); 315e05d0b6SBarry 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 37b0a32e0cSBarry 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 4830de9b25SBarry Smith Synopsis: int PetscOptionsBegin(MPI_Comm comm,char *prefix,char *title,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 100b0a32e0cSBarry Smith EXTERN int PetscOptionsBegin_Private(MPI_Comm,char*,char*,char*); 101b0a32e0cSBarry Smith EXTERN int PetscOptionsEnd_Private(void); 102b0a32e0cSBarry Smith EXTERN int PetscOptionsHead(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 129b0a32e0cSBarry Smith EXTERN int PetscOptionsInt(char*,char*,char*,int,int*,PetscTruth*); 130f6275e2eSBarry Smith EXTERN int PetscOptionsReal(char*,char*,char*,PetscReal,PetscReal*,PetscTruth*); 13187828ca2SBarry Smith EXTERN int PetscOptionsScalar(char*,char*,char*,PetscScalar,PetscScalar*,PetscTruth*); 132b0a32e0cSBarry Smith EXTERN int PetscOptionsName(char*,char*,char*,PetscTruth*); 133b0a32e0cSBarry Smith EXTERN int PetscOptionsString(char*,char*,char*,char*,char*,int,PetscTruth*); 134b0a32e0cSBarry Smith EXTERN int PetscOptionsLogical(char*,char*,char*,PetscTruth,PetscTruth*,PetscTruth*); 135b0a32e0cSBarry Smith EXTERN int PetscOptionsLogicalGroupBegin(char*,char*,char*,PetscTruth*); 136b0a32e0cSBarry Smith EXTERN int PetscOptionsLogicalGroup(char*,char*,char*,PetscTruth*); 137b0a32e0cSBarry Smith EXTERN int PetscOptionsLogicalGroupEnd(char*,char*,char*,PetscTruth*); 138b0a32e0cSBarry Smith EXTERN int PetscOptionsList(char*,char*,char*,PetscFList,char*,char*,int,PetscTruth*); 139b0a32e0cSBarry Smith EXTERN int PetscOptionsEList(char*,char*,char*,char**,int,char*,char *,int,PetscTruth*); 140f6275e2eSBarry Smith EXTERN int PetscOptionsRealArray(char*,char*,char*,PetscReal[],int*,PetscTruth*); 1419da8ff0dSBarry Smith EXTERN int PetscOptionsIntArray(char*,char*,char*,int[],int*,PetscTruth*); 142b0a32e0cSBarry Smith EXTERN int PetscOptionsStringArray(char*,char*,char*,char**,int*,PetscTruth*); 143*e9fa29b7SSatish Balay 144*e9fa29b7SSatish Balay PETSC_EXTERN_CXX_END 1453a3b2205SBarry Smith #endif 146