1f26ada1bSBarry Smith /* 237f753daSBarry Smith Routines to determine options set in the options database. 3f26ada1bSBarry Smith */ 40a835dfdSSatish Balay #if !defined(__PETSCOPTIONS_H) 50a835dfdSSatish Balay #define __PETSCOPTIONS_H 63a3b2205SBarry Smith #include "petsc.h" 7e9fa29b7SSatish Balay PETSC_EXTERN_CXX_BEGIN 83a3b2205SBarry Smith 9dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsHasName(const char[],const char[],PetscTruth*); 10292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetInt(const char[],const char [],PetscInt *,PetscTruth*); 11dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsGetLogical(const char[],const char [],PetscTruth *,PetscTruth*); 12dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsGetReal(const char[],const char[],PetscReal *,PetscTruth*); 13dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsGetScalar(const char[],const char[],PetscScalar *,PetscTruth*); 14292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetIntArray(const char[],const char[],PetscInt[],PetscInt *,PetscTruth*); 15292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetRealArray(const char[],const char[],PetscReal[],PetscInt *,PetscTruth*); 16292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetString(const char[],const char[],char[],size_t,PetscTruth*); 17292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetStringArray(const char[],const char[],char*[],PetscInt*,PetscTruth*); 183a3b2205SBarry Smith 19dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsSetAlias(const char[],const char[]); 20dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsSetValue(const char[],const char[]); 21dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsClearValue(const char[]); 223a3b2205SBarry Smith 23dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsAllUsed(int*); 24dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsLeft(void); 25dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsPrint(FILE *); 264b0e389bSBarry Smith 27dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsCreate(void); 28dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsInsert(int*,char ***,const char[]); 29dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsInsertFile(const char[]); 30dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsInsertString(const char[]); 31dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsDestroy(void); 325d0dffe5SBarry Smith 33dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsReject(const char[],const char[]); 34dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsGetAll(char*[]); 355d0dffe5SBarry Smith 36292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsGetenv(MPI_Comm,const char[],char[],size_t,PetscTruth *); 37292f8084SBarry Smith EXTERN PetscErrorCode PetscOptionsAtoi(const char[],PetscInt*); 38dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsAtod(const char[],PetscReal*); 392e8a6d31SBarry Smith 40b0a32e0cSBarry Smith extern PetscTruth PetscOptionsPublish; 41b0a32e0cSBarry Smith extern int PetscOptionsPublishCount; 4230de9b25SBarry Smith 4330de9b25SBarry Smith /*MC 4430de9b25SBarry Smith PetscOptionsBegin - Begins a set of queries on the options database that are related and should be 4530de9b25SBarry Smith displayed on the same window of a GUI that allows the user to set the options interactively. 4630de9b25SBarry Smith 47e5999256SBarry Smith Synopsis: int PetscOptionsBegin(MPI_Comm comm,const char prefix[],const char title[],const char mansec[]) 4830de9b25SBarry Smith 4930de9b25SBarry Smith Collective on MPI_Comm 5030de9b25SBarry Smith 5130de9b25SBarry Smith Input Parameters: 5230de9b25SBarry Smith + comm - communicator that shares GUI 5330de9b25SBarry Smith . prefix - options prefix for all options displayed on window 5430de9b25SBarry Smith . title - short descriptive text, for example "Krylov Solver Options" 5530de9b25SBarry Smith - mansec - section of manual pages for options, for example KSP 5630de9b25SBarry Smith 5730de9b25SBarry Smith Level: intermediate 5830de9b25SBarry Smith 5930de9b25SBarry Smith Notes: Needs to be ended by a call the PetscOptionsEnd() 6030de9b25SBarry Smith 6130de9b25SBarry Smith Can add subheadings with PetscOptionsHead() 6230de9b25SBarry Smith 6330de9b25SBarry Smith .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 6430de9b25SBarry Smith PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 6530de9b25SBarry Smith PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 6630de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 6730de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 6830de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 6930de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 7030de9b25SBarry Smith 7130de9b25SBarry 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); 7530de9b25SBarry Smith 7630de9b25SBarry Smith /*MC 7730de9b25SBarry Smith PetscOptionsEnd - Ends a set of queries on the options database that are related and should be 7830de9b25SBarry Smith displayed on the same window of a GUI that allows the user to set the options interactively. 7930de9b25SBarry Smith 8030de9b25SBarry Smith Collective on the MPI_Comm used in PetscOptionsBegin() 8130de9b25SBarry Smith 8230de9b25SBarry Smith Synopsis: int PetscOptionsEnd(void) 8330de9b25SBarry Smith 8430de9b25SBarry Smith Level: intermediate 8530de9b25SBarry Smith 8630de9b25SBarry Smith Notes: Needs to be preceded by a call to PetscOptionsBegin() 8730de9b25SBarry Smith 8830de9b25SBarry Smith .seealso: PetscOptionsGetReal(), PetscOptionsHasName(), PetscOptionsGetString(), PetscOptionsGetInt(), 8930de9b25SBarry Smith PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical() 9030de9b25SBarry Smith PetscOptionsInt(), PetscOptionsString(), PetscOptionsReal(), PetscOptionsLogical(), 9130de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 9230de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 9330de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 9430de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 9530de9b25SBarry Smith 9630de9b25SBarry Smith M*/ 97ef66eb69SBarry Smith #define PetscOptionsEnd() _5_ierr = PetscOptionsEnd_Private();CHKERRQ(_5_ierr);}} 9830de9b25SBarry Smith 99dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsBegin_Private(MPI_Comm,const char[],const char[],const char[]); 100dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsEnd_Private(void); 101dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsHead(const char[]); 10230de9b25SBarry Smith 10330de9b25SBarry Smith /*MC 10430de9b25SBarry Smith PetscOptionsTail - Ends a section of options begun with PetscOptionsHead() 10530de9b25SBarry Smith See, for example, KSPSetFromOptions_GMRES(). 10630de9b25SBarry Smith 10730de9b25SBarry Smith Collective on the communicator passed in PetscOptionsBegin() 10830de9b25SBarry Smith 10930de9b25SBarry Smith Synopsis: int PetscOptionsTail(void) 11030de9b25SBarry Smith 11130de9b25SBarry Smith Level: intermediate 11230de9b25SBarry Smith 11330de9b25SBarry Smith Notes: Must be between a PetscOptionsBegin() and a PetscOptionsEnd() 11430de9b25SBarry Smith 11530de9b25SBarry Smith Must be preceded by a call to PetscOptionsHead() in the same function. 11630de9b25SBarry Smith 11730de9b25SBarry Smith Concepts: options database^subheading 11830de9b25SBarry Smith 11930de9b25SBarry Smith .seealso: PetscOptionsGetInt(), PetscOptionsGetReal(), 12030de9b25SBarry Smith PetscOptionsHasName(), PetscOptionsGetIntArray(), PetscOptionsGetRealArray(), PetscOptionsLogical(), 12130de9b25SBarry Smith PetscOptionsName(), PetscOptionsBegin(), PetscOptionsEnd(), PetscOptionsHead(), 12230de9b25SBarry Smith PetscOptionsStringArray(),PetscOptionsRealArray(), PetscOptionsScalar(), 12330de9b25SBarry Smith PetscOptionsLogicalGroupBegin(), PetscOptionsLogicalGroup(), PetscOptionsLogicalGroupEnd(), 12430de9b25SBarry Smith PetscOptionsList(), PetscOptionsEList() 12530de9b25SBarry Smith M*/ 126b0a32e0cSBarry Smith #define PetscOptionsTail() 0; {if (PetscOptionsPublishCount != 1) PetscFunctionReturn(0);} 127186905e3SBarry Smith 128*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsInt(const char[],const char[],const char[],PetscInt,PetscInt*,PetscTruth*); 129dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsReal(const char[],const char[],const char[],PetscReal,PetscReal*,PetscTruth*); 130dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsScalar(const char[],const char[],const char[],PetscScalar,PetscScalar*,PetscTruth*); 131dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsName(const char[],const char[],const char[],PetscTruth*); 132*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsString(const char[],const char[],const char[],const char[],char*,size_t,PetscTruth*); 133dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsLogical(const char[],const char[],const char[],PetscTruth,PetscTruth*,PetscTruth*); 134dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsLogicalGroupBegin(const char[],const char[],const char[],PetscTruth*); 135dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsLogicalGroup(const char[],const char[],const char[],PetscTruth*); 136dfbe8321SBarry Smith EXTERN PetscErrorCode PetscOptionsLogicalGroupEnd(const char[],const char[],const char[],PetscTruth*); 137*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsList(const char[],const char[],const char[],PetscFList,const char[],char[],PetscInt,PetscTruth*); 138*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsEList(const char[],const char[],const char[],const char*[],PetscInt,const char[],PetscInt*,PetscTruth*); 139*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsRealArray(const char[],const char[],const char[],PetscReal[],PetscInt*,PetscTruth*); 140*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsIntArray(const char[],const char[],const char[],PetscInt[],PetscInt*,PetscTruth*); 141*6f69ff64SBarry Smith EXTERN PetscErrorCode PetscOptionsStringArray(const char[],const char[],const char[],char*[],PetscInt*,PetscTruth*); 142e9fa29b7SSatish Balay 143e9fa29b7SSatish Balay PETSC_EXTERN_CXX_END 1443a3b2205SBarry Smith #endif 145