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*); 17*1836bdbcSSatish Balay 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; 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 4730de9b25SBarry Smith Synopsis: int PetscOptionsBegin(MPI_Comm comm,char *prefix,char *title,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 99b0a32e0cSBarry Smith EXTERN int PetscOptionsBegin_Private(MPI_Comm,char*,char*,char*); 100b0a32e0cSBarry Smith EXTERN int PetscOptionsEnd_Private(void); 101b0a32e0cSBarry Smith EXTERN int PetscOptionsHead(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 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