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