xref: /petsc/include/petscoptions.h (revision 1836bdbc1440b0c58a09e5593264cd90519336b3)
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