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