source: issm/trunk-jpl/externalpackages/petsc-dev/src/include/petscsnesfas.h@ 11896

Last change on this file since 11896 was 11896, checked in by habbalf, 13 years ago

petsc-dev : Petsc development code in external packages. Mercurial updates

File size: 2.8 KB
RevLine 
[11896]1#if !(defined __PETSCSNESFAS_H)
2#define __PETSCSNESFAS_H
3#include "petscsnes.h"
4
5
6/*E
7 SNESFASType - Determines the type of multigrid method that is run.
8
9 Level: beginner
10
11 Values:
12+ SNES_FAS_MULTIPLICATIVE (default) - traditional V or W cycle as determined by SNESFASSetCycles()
13- SNES_FAS_ADDITIVE - the additive multigrid preconditioner where all levels are
14
15.seealso: PCMGSetType(), PCMGType
16
17E*/
18typedef enum { SNES_FAS_MULTIPLICATIVE, SNES_FAS_ADDITIVE } SNESFASType;
19extern const char * SNESFASTypes[];
20
21/* called on the finest level FAS instance*/
22extern PetscErrorCode SNESFASSetType(SNES, SNESFASType);
23extern PetscErrorCode SNESFASGetType(SNES, SNESFASType*);
24extern PetscErrorCode SNESFASSetLevels(SNES, PetscInt, MPI_Comm *);
25extern PetscErrorCode SNESFASGetLevels(SNES, PetscInt *);
26extern PetscErrorCode SNESFASGetCycleSNES(SNES, PetscInt, SNES*);
27extern PetscErrorCode SNESFASSetNumberSmoothUp(SNES, PetscInt);
28extern PetscErrorCode SNESFASSetNumberSmoothDown(SNES, PetscInt);
29extern PetscErrorCode SNESFASSetCycles(SNES, PetscInt);
30extern PetscErrorCode SNESFASSetMonitor(SNES, PetscBool);
31
32
33extern PetscErrorCode SNESFASSetGalerkin(SNES, PetscBool);
34extern PetscErrorCode SNESFASGetGalerkin(SNES, PetscBool*);
35
36/* called on any level -- "Cycle" FAS instance */
37extern PetscErrorCode SNESFASCycleGetSmoother(SNES, SNES*);
38extern PetscErrorCode SNESFASCycleGetSmootherUp(SNES, SNES*);
39extern PetscErrorCode SNESFASCycleGetSmootherDown(SNES, SNES*);
40extern PetscErrorCode SNESFASCycleGetCorrection(SNES, SNES*);
41extern PetscErrorCode SNESFASCycleGetInterpolation(SNES, Mat*);
42extern PetscErrorCode SNESFASCycleGetRestriction(SNES, Mat*);
43extern PetscErrorCode SNESFASCycleGetInjection(SNES, Mat*);
44extern PetscErrorCode SNESFASCycleGetRScale(SNES, Vec*);
45extern PetscErrorCode SNESFASCycleSetCycles(SNES, PetscInt);
46extern PetscErrorCode SNESFASCycleIsFine(SNES, PetscBool*);
47
48/* called on the (outer) finest level FAS to set/get parameters on any level instance */
49extern PetscErrorCode SNESFASSetInterpolation(SNES, PetscInt, Mat);
50extern PetscErrorCode SNESFASGetInterpolation(SNES, PetscInt, Mat*);
51extern PetscErrorCode SNESFASSetRestriction(SNES, PetscInt, Mat);
52extern PetscErrorCode SNESFASGetRestriction(SNES, PetscInt, Mat*);
53extern PetscErrorCode SNESFASSetInjection(SNES, PetscInt, Mat);
54extern PetscErrorCode SNESFASGetInjection(SNES, PetscInt, Mat*);
55extern PetscErrorCode SNESFASSetRScale(SNES, PetscInt, Vec);
56extern PetscErrorCode SNESFASGetRScale(SNES, PetscInt, Vec*);
57
58extern PetscErrorCode SNESFASGetSmoother(SNES, PetscInt, SNES*);
59extern PetscErrorCode SNESFASGetSmootherUp(SNES, PetscInt, SNES*);
60extern PetscErrorCode SNESFASGetSmootherDown(SNES, PetscInt, SNES*);
61extern PetscErrorCode SNESFASGetCoarseSolve(SNES, SNES*);
62
63extern PetscErrorCode SNESFASCreateCoarseVec(SNES,Vec*);
64extern PetscErrorCode SNESFASRestrict(SNES,Vec,Vec);
65
66#endif
Note: See TracBrowser for help on using the repository browser.