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