xref: /petsc/src/dm/interface/dmregall.c (revision 55cda6f51c86a483abe5781578f3bbdf986e1625)
13c48a1e8SJed Brown #include <petscdm.h>     /*I  "petscdm.h"  I*/
277623264SMatthew G. Knepley #include <petscdmplex.h> /*I  "petscdmplex.h"  I*/
3af0996ceSBarry Smith #include <petsc/private/dmimpl.h>
4af0996ceSBarry Smith #include <petsc/private/dmpleximpl.h>
5af0996ceSBarry Smith #include <petsc/private/petscfeimpl.h>
6af0996ceSBarry Smith #include <petsc/private/petscfvimpl.h>
7af0996ceSBarry Smith #include <petsc/private/petscdsimpl.h>
88cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_DA(DM);
98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Composite(DM);
108cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Sliced(DM);
118cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Shell(DM);
128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Redundant(DM);
138cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Plex(DM);
148cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Patch(DM);
152fd35b1fSDave May PETSC_EXTERN PetscErrorCode DMCreate_Swarm(DM);
16edf5aa1bSVijay Mahadevan #if defined(PETSC_HAVE_MOAB)
171d72bce8STim Tautges PETSC_EXTERN PetscErrorCode DMCreate_Moab(DM);
18edf5aa1bSVijay Mahadevan #endif
19406e3badSSatish Balay PETSC_EXTERN PetscErrorCode DMCreate_Network(DM);
20ef51cf95SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_Forest(DM);
21b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
22b34044e4SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_p4est(DM);
23b34044e4SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_p8est(DM);
24b34044e4SToby Isaac #endif
25d852a638SPatrick Sanan PETSC_EXTERN PetscErrorCode DMCreate_Product(DM);
26a3101111SPatrick Sanan PETSC_EXTERN PetscErrorCode DMCreate_Stag(DM);
27264ace61SBarry Smith 
28264ace61SBarry Smith /*@C
29264ace61SBarry Smith   DMRegisterAll - Registers all of the DM components in the DM package.
30264ace61SBarry Smith 
31264ace61SBarry Smith   Not Collective
32264ace61SBarry Smith 
33264ace61SBarry Smith   Level: advanced
34264ace61SBarry Smith 
35db781477SPatrick Sanan .seealso: `DMRegister()`, `DMRegisterDestroy()`
36264ace61SBarry Smith @*/
DMRegisterAll(void)37d71ae5a4SJacob Faibussowitsch PetscErrorCode DMRegisterAll(void)
38d71ae5a4SJacob Faibussowitsch {
39264ace61SBarry Smith   PetscFunctionBegin;
403ba16761SJacob Faibussowitsch   if (DMRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
41264ace61SBarry Smith   DMRegisterAllCalled = PETSC_TRUE;
428865f1eaSKarl Rupp 
439566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMDA, DMCreate_DA));
449566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMCOMPOSITE, DMCreate_Composite));
459566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSLICED, DMCreate_Sliced));
469566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSHELL, DMCreate_Shell));
479566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMREDUNDANT, DMCreate_Redundant));
489566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPLEX, DMCreate_Plex));
499566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPATCH, DMCreate_Patch));
509566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSWARM, DMCreate_Swarm));
511d72bce8STim Tautges #if defined(PETSC_HAVE_MOAB)
529566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMMOAB, DMCreate_Moab));
531d72bce8STim Tautges #endif
549566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMNETWORK, DMCreate_Network));
559566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMFOREST, DMCreate_Forest));
56b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
579566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP4EST, DMCreate_p4est));
589566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP8EST, DMCreate_p8est));
59b34044e4SToby Isaac #endif
609566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPRODUCT, DMCreate_Product));
619566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSTAG, DMCreate_Stag));
623ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
63264ace61SBarry Smith }
6477623264SMatthew G. Knepley 
6506759e06SMatthew G. Knepley #include <petscfe.h> /*I  "petscfe.h"  I*/
66264ace61SBarry Smith 
6706759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
68130d5748SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
6936e5648fSToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
70d092c84bSBrandon Whitchurch PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
719c3cf19fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
722f5fb066SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
7369cc43acSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);
7406759e06SMatthew G. Knepley 
7506759e06SMatthew G. Knepley /*@C
7606759e06SMatthew G. Knepley   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
7706759e06SMatthew G. Knepley 
7806759e06SMatthew G. Knepley   Not Collective
7906759e06SMatthew G. Knepley 
8006759e06SMatthew G. Knepley   Level: advanced
8106759e06SMatthew G. Knepley 
82db781477SPatrick Sanan .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
8306759e06SMatthew G. Knepley @*/
PetscSpaceRegisterAll(void)84d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscSpaceRegisterAll(void)
85d71ae5a4SJacob Faibussowitsch {
8606759e06SMatthew G. Knepley   PetscFunctionBegin;
873ba16761SJacob Faibussowitsch   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
8806759e06SMatthew G. Knepley   PetscSpaceRegisterAllCalled = PETSC_TRUE;
8906759e06SMatthew G. Knepley 
909566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial));
919566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPTRIMMED, PetscSpaceCreate_Ptrimmed));
929566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor));
939566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUM, PetscSpaceCreate_Sum));
949566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point));
959566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace));
969566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEWXY, PetscSpaceCreate_WXY));
973ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
9806759e06SMatthew G. Knepley }
9906759e06SMatthew G. Knepley 
10006759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
1013f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
102c2765ee2SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
1033f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
1042dce792eSToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Sum(PetscDualSpace);
10506759e06SMatthew G. Knepley 
10606759e06SMatthew G. Knepley /*@C
10706759e06SMatthew G. Knepley   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
10806759e06SMatthew G. Knepley 
10906759e06SMatthew G. Knepley   Not Collective
11006759e06SMatthew G. Knepley 
11106759e06SMatthew G. Knepley   Level: advanced
11206759e06SMatthew G. Knepley 
113db781477SPatrick Sanan .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
11406759e06SMatthew G. Knepley @*/
PetscDualSpaceRegisterAll(void)115d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDualSpaceRegisterAll(void)
116d71ae5a4SJacob Faibussowitsch {
11706759e06SMatthew G. Knepley   PetscFunctionBegin;
1183ba16761SJacob Faibussowitsch   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
11906759e06SMatthew G. Knepley   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
12006759e06SMatthew G. Knepley 
1219566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange));
1229566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEBDM, PetscDualSpaceCreate_Lagrange));
1239566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple));
1249566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEREFINED, PetscDualSpaceCreate_Refined));
1252dce792eSToby Isaac   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESUM, PetscDualSpaceCreate_Sum));
1263ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
12706759e06SMatthew G. Knepley }
1280483ade4SMatthew G. Knepley 
1290483ade4SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
130aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
131aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
132497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
133133ee763SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
134133ee763SMatthew G. Knepley #endif
1352dce792eSToby Isaac PETSC_EXTERN PetscErrorCode PetscFECreate_Vector(PetscFE);
1360483ade4SMatthew G. Knepley 
1370483ade4SMatthew G. Knepley /*@C
138*a3b724e8SBarry Smith   PetscFERegisterAll - Registers all of the PetscFE components in the `PetscFE` package.
1390483ade4SMatthew G. Knepley 
1400483ade4SMatthew G. Knepley   Not Collective
1410483ade4SMatthew G. Knepley 
1420483ade4SMatthew G. Knepley   Level: advanced
1430483ade4SMatthew G. Knepley 
144db781477SPatrick Sanan .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
1450483ade4SMatthew G. Knepley @*/
PetscFERegisterAll(void)146d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFERegisterAll(void)
147d71ae5a4SJacob Faibussowitsch {
1480483ade4SMatthew G. Knepley   PetscFunctionBegin;
1493ba16761SJacob Faibussowitsch   if (PetscFERegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
1500483ade4SMatthew G. Knepley   PetscFERegisterAllCalled = PETSC_TRUE;
1510483ade4SMatthew G. Knepley 
1529566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic));
1539566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite));
154497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
1559566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL));
156133ee763SMatthew G. Knepley #endif
1572dce792eSToby Isaac   PetscCall(PetscFERegister(PETSCFEVECTOR, PetscFECreate_Vector));
1583ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
1590483ade4SMatthew G. Knepley }
160f62f30faSMatthew G. Knepley #include <petscfv.h> /*I  "petscfv.h"  I*/
161f62f30faSMatthew G. Knepley 
162ab2453f0SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
1639347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
1649347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
1659347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
1669347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
1679347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
1689347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
1699347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
170ab2453f0SMatthew G. Knepley 
171ab2453f0SMatthew G. Knepley /*@C
172*a3b724e8SBarry Smith   PetscLimiterRegisterAll - Registers all of the `PetscLimiter` components in the `PetscFV` package.
173ab2453f0SMatthew G. Knepley 
174ab2453f0SMatthew G. Knepley   Not Collective
175ab2453f0SMatthew G. Knepley 
176ab2453f0SMatthew G. Knepley   Level: advanced
177ab2453f0SMatthew G. Knepley 
178db781477SPatrick Sanan .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
179ab2453f0SMatthew G. Knepley @*/
PetscLimiterRegisterAll(void)180d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscLimiterRegisterAll(void)
181d71ae5a4SJacob Faibussowitsch {
182ab2453f0SMatthew G. Knepley   PetscFunctionBegin;
1833ba16761SJacob Faibussowitsch   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
184ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAllCalled = PETSC_TRUE;
185ab2453f0SMatthew G. Knepley 
1869566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin));
1879566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero));
1889566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None));
1899566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod));
1909566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer));
1919566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada));
1929566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee));
1939566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC));
1943ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
195ab2453f0SMatthew G. Knepley }
196ab2453f0SMatthew G. Knepley 
197f62f30faSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
1980545663fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
199f62f30faSMatthew G. Knepley 
200f62f30faSMatthew G. Knepley /*@C
201*a3b724e8SBarry Smith   PetscFVRegisterAll - Registers all of the `PetscFV` components in the `PetscFV` package.
202f62f30faSMatthew G. Knepley 
203f62f30faSMatthew G. Knepley   Not Collective
204f62f30faSMatthew G. Knepley 
205f62f30faSMatthew G. Knepley   Level: advanced
206f62f30faSMatthew G. Knepley 
207db781477SPatrick Sanan .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
208f62f30faSMatthew G. Knepley @*/
PetscFVRegisterAll(void)209d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFVRegisterAll(void)
210d71ae5a4SJacob Faibussowitsch {
211f62f30faSMatthew G. Knepley   PetscFunctionBegin;
2123ba16761SJacob Faibussowitsch   if (PetscFVRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
213f62f30faSMatthew G. Knepley   PetscFVRegisterAllCalled = PETSC_TRUE;
214f62f30faSMatthew G. Knepley 
2159566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind));
2169566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
2173ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
218f62f30faSMatthew G. Knepley }
2192764a2aaSMatthew G. Knepley #include <petscds.h> /*I  "petscds.h"  I*/
220022a7a5cSMatthew G. Knepley 
2212764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
222022a7a5cSMatthew G. Knepley 
223022a7a5cSMatthew G. Knepley /*@C
224*a3b724e8SBarry Smith   PetscDSRegisterAll - Registers all of the `PetscDS` components in the `PetscDS` package.
225022a7a5cSMatthew G. Knepley 
226022a7a5cSMatthew G. Knepley   Not Collective
227022a7a5cSMatthew G. Knepley 
228022a7a5cSMatthew G. Knepley   Level: advanced
229022a7a5cSMatthew G. Knepley 
230db781477SPatrick Sanan .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
231022a7a5cSMatthew G. Knepley @*/
PetscDSRegisterAll(void)232d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDSRegisterAll(void)
233d71ae5a4SJacob Faibussowitsch {
234022a7a5cSMatthew G. Knepley   PetscFunctionBegin;
2353ba16761SJacob Faibussowitsch   if (PetscDSRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
2362764a2aaSMatthew G. Knepley   PetscDSRegisterAllCalled = PETSC_TRUE;
237022a7a5cSMatthew G. Knepley 
2389566063dSJacob Faibussowitsch   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
2393ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
240022a7a5cSMatthew G. Knepley }
241