xref: /petsc/src/dm/interface/dmregall.c (revision 2dce792e531186164765a9583d36d03ffc15e9ea)
1264ace61SBarry Smith 
23c48a1e8SJed Brown #include <petscdm.h>     /*I  "petscdm.h"  I*/
377623264SMatthew G. Knepley #include <petscdmplex.h> /*I  "petscdmplex.h"  I*/
4af0996ceSBarry Smith #include <petsc/private/dmimpl.h>
5af0996ceSBarry Smith #include <petsc/private/dmpleximpl.h>
6af0996ceSBarry Smith #include <petsc/private/petscfeimpl.h>
7af0996ceSBarry Smith #include <petsc/private/petscfvimpl.h>
8af0996ceSBarry Smith #include <petsc/private/petscdsimpl.h>
98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_DA(DM);
108cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Composite(DM);
118cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Sliced(DM);
128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Shell(DM);
138cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Redundant(DM);
148cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Plex(DM);
158cc058d9SJed Brown PETSC_EXTERN PetscErrorCode DMCreate_Patch(DM);
162fd35b1fSDave May PETSC_EXTERN PetscErrorCode DMCreate_Swarm(DM);
17edf5aa1bSVijay Mahadevan #if defined(PETSC_HAVE_MOAB)
181d72bce8STim Tautges PETSC_EXTERN PetscErrorCode DMCreate_Moab(DM);
19edf5aa1bSVijay Mahadevan #endif
20406e3badSSatish Balay PETSC_EXTERN PetscErrorCode DMCreate_Network(DM);
21ef51cf95SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_Forest(DM);
22b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
23b34044e4SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_p4est(DM);
24b34044e4SToby Isaac PETSC_EXTERN PetscErrorCode DMCreate_p8est(DM);
25b34044e4SToby Isaac #endif
26d852a638SPatrick Sanan PETSC_EXTERN PetscErrorCode DMCreate_Product(DM);
27a3101111SPatrick Sanan PETSC_EXTERN PetscErrorCode DMCreate_Stag(DM);
28264ace61SBarry Smith 
29264ace61SBarry Smith /*@C
30264ace61SBarry Smith   DMRegisterAll - Registers all of the DM components in the DM package.
31264ace61SBarry Smith 
32264ace61SBarry Smith   Not Collective
33264ace61SBarry Smith 
34264ace61SBarry Smith   Level: advanced
35264ace61SBarry Smith 
36db781477SPatrick Sanan .seealso: `DMRegister()`, `DMRegisterDestroy()`
37264ace61SBarry Smith @*/
38d71ae5a4SJacob Faibussowitsch PetscErrorCode DMRegisterAll(void)
39d71ae5a4SJacob Faibussowitsch {
40264ace61SBarry Smith   PetscFunctionBegin;
413ba16761SJacob Faibussowitsch   if (DMRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
42264ace61SBarry Smith   DMRegisterAllCalled = PETSC_TRUE;
438865f1eaSKarl Rupp 
449566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMDA, DMCreate_DA));
459566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMCOMPOSITE, DMCreate_Composite));
469566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSLICED, DMCreate_Sliced));
479566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSHELL, DMCreate_Shell));
489566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMREDUNDANT, DMCreate_Redundant));
499566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPLEX, DMCreate_Plex));
509566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPATCH, DMCreate_Patch));
519566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSWARM, DMCreate_Swarm));
521d72bce8STim Tautges #if defined(PETSC_HAVE_MOAB)
539566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMMOAB, DMCreate_Moab));
541d72bce8STim Tautges #endif
559566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMNETWORK, DMCreate_Network));
569566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMFOREST, DMCreate_Forest));
57b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
589566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP4EST, DMCreate_p4est));
599566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP8EST, DMCreate_p8est));
60b34044e4SToby Isaac #endif
619566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPRODUCT, DMCreate_Product));
629566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSTAG, DMCreate_Stag));
633ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
64264ace61SBarry Smith }
6577623264SMatthew G. Knepley 
6606759e06SMatthew G. Knepley #include <petscfe.h> /*I  "petscfe.h"  I*/
67264ace61SBarry Smith 
6806759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
69130d5748SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
7036e5648fSToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
71d092c84bSBrandon Whitchurch PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
729c3cf19fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
732f5fb066SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
7469cc43acSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);
7506759e06SMatthew G. Knepley 
7606759e06SMatthew G. Knepley /*@C
7706759e06SMatthew G. Knepley   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
7806759e06SMatthew G. Knepley 
7906759e06SMatthew G. Knepley   Not Collective
8006759e06SMatthew G. Knepley 
8106759e06SMatthew G. Knepley   Level: advanced
8206759e06SMatthew G. Knepley 
83db781477SPatrick Sanan .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
8406759e06SMatthew G. Knepley @*/
85d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscSpaceRegisterAll(void)
86d71ae5a4SJacob Faibussowitsch {
8706759e06SMatthew G. Knepley   PetscFunctionBegin;
883ba16761SJacob Faibussowitsch   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
8906759e06SMatthew G. Knepley   PetscSpaceRegisterAllCalled = PETSC_TRUE;
9006759e06SMatthew G. Knepley 
919566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial));
929566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPTRIMMED, PetscSpaceCreate_Ptrimmed));
939566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor));
949566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUM, PetscSpaceCreate_Sum));
959566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point));
969566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace));
979566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEWXY, PetscSpaceCreate_WXY));
983ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
9906759e06SMatthew G. Knepley }
10006759e06SMatthew G. Knepley 
10106759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
1023f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
103c2765ee2SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
1043f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
105*2dce792eSToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Sum(PetscDualSpace);
10606759e06SMatthew G. Knepley 
10706759e06SMatthew G. Knepley /*@C
10806759e06SMatthew G. Knepley   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
10906759e06SMatthew G. Knepley 
11006759e06SMatthew G. Knepley   Not Collective
11106759e06SMatthew G. Knepley 
11206759e06SMatthew G. Knepley   Level: advanced
11306759e06SMatthew G. Knepley 
114db781477SPatrick Sanan .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
11506759e06SMatthew G. Knepley @*/
116d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDualSpaceRegisterAll(void)
117d71ae5a4SJacob Faibussowitsch {
11806759e06SMatthew G. Knepley   PetscFunctionBegin;
1193ba16761SJacob Faibussowitsch   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
12006759e06SMatthew G. Knepley   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
12106759e06SMatthew G. Knepley 
1229566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange));
1239566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEBDM, PetscDualSpaceCreate_Lagrange));
1249566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple));
1259566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEREFINED, PetscDualSpaceCreate_Refined));
126*2dce792eSToby Isaac   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESUM, PetscDualSpaceCreate_Sum));
1273ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
12806759e06SMatthew G. Knepley }
1290483ade4SMatthew G. Knepley 
1300483ade4SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
131aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
132aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
133497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
134133ee763SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
135133ee763SMatthew G. Knepley #endif
136*2dce792eSToby Isaac PETSC_EXTERN PetscErrorCode PetscFECreate_Vector(PetscFE);
1370483ade4SMatthew G. Knepley 
1380483ade4SMatthew G. Knepley /*@C
1390483ade4SMatthew G. Knepley   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
1400483ade4SMatthew G. Knepley 
1410483ade4SMatthew G. Knepley   Not Collective
1420483ade4SMatthew G. Knepley 
1430483ade4SMatthew G. Knepley   Level: advanced
1440483ade4SMatthew G. Knepley 
145db781477SPatrick Sanan .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
1460483ade4SMatthew G. Knepley @*/
147d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFERegisterAll(void)
148d71ae5a4SJacob Faibussowitsch {
1490483ade4SMatthew G. Knepley   PetscFunctionBegin;
1503ba16761SJacob Faibussowitsch   if (PetscFERegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
1510483ade4SMatthew G. Knepley   PetscFERegisterAllCalled = PETSC_TRUE;
1520483ade4SMatthew G. Knepley 
1539566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic));
1549566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite));
155497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
1569566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL));
157133ee763SMatthew G. Knepley #endif
158*2dce792eSToby Isaac   PetscCall(PetscFERegister(PETSCFEVECTOR, PetscFECreate_Vector));
1593ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
1600483ade4SMatthew G. Knepley }
161f62f30faSMatthew G. Knepley #include <petscfv.h> /*I  "petscfv.h"  I*/
162f62f30faSMatthew G. Knepley 
163ab2453f0SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
1649347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
1659347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
1669347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
1679347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
1689347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
1699347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
1709347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
171ab2453f0SMatthew G. Knepley 
172ab2453f0SMatthew G. Knepley /*@C
173ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
174ab2453f0SMatthew G. Knepley 
175ab2453f0SMatthew G. Knepley   Not Collective
176ab2453f0SMatthew G. Knepley 
177ab2453f0SMatthew G. Knepley   Level: advanced
178ab2453f0SMatthew G. Knepley 
179db781477SPatrick Sanan .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
180ab2453f0SMatthew G. Knepley @*/
181d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscLimiterRegisterAll(void)
182d71ae5a4SJacob Faibussowitsch {
183ab2453f0SMatthew G. Knepley   PetscFunctionBegin;
1843ba16761SJacob Faibussowitsch   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
185ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAllCalled = PETSC_TRUE;
186ab2453f0SMatthew G. Knepley 
1879566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin));
1889566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero));
1899566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None));
1909566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod));
1919566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer));
1929566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada));
1939566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee));
1949566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC));
1953ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
196ab2453f0SMatthew G. Knepley }
197ab2453f0SMatthew G. Knepley 
198f62f30faSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
1990545663fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
200f62f30faSMatthew G. Knepley 
201f62f30faSMatthew G. Knepley /*@C
2020545663fSMatthew G. Knepley   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
203f62f30faSMatthew G. Knepley 
204f62f30faSMatthew G. Knepley   Not Collective
205f62f30faSMatthew G. Knepley 
206f62f30faSMatthew G. Knepley   Level: advanced
207f62f30faSMatthew G. Knepley 
208db781477SPatrick Sanan .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
209f62f30faSMatthew G. Knepley @*/
210d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFVRegisterAll(void)
211d71ae5a4SJacob Faibussowitsch {
212f62f30faSMatthew G. Knepley   PetscFunctionBegin;
2133ba16761SJacob Faibussowitsch   if (PetscFVRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
214f62f30faSMatthew G. Knepley   PetscFVRegisterAllCalled = PETSC_TRUE;
215f62f30faSMatthew G. Knepley 
2169566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind));
2179566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
2183ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
219f62f30faSMatthew G. Knepley }
2202764a2aaSMatthew G. Knepley #include <petscds.h> /*I  "petscds.h"  I*/
221022a7a5cSMatthew G. Knepley 
2222764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
223022a7a5cSMatthew G. Knepley 
224022a7a5cSMatthew G. Knepley /*@C
2252764a2aaSMatthew G. Knepley   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
226022a7a5cSMatthew G. Knepley 
227022a7a5cSMatthew G. Knepley   Not Collective
228022a7a5cSMatthew G. Knepley 
229022a7a5cSMatthew G. Knepley   Level: advanced
230022a7a5cSMatthew G. Knepley 
231db781477SPatrick Sanan .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
232022a7a5cSMatthew G. Knepley @*/
233d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDSRegisterAll(void)
234d71ae5a4SJacob Faibussowitsch {
235022a7a5cSMatthew G. Knepley   PetscFunctionBegin;
2363ba16761SJacob Faibussowitsch   if (PetscDSRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
2372764a2aaSMatthew G. Knepley   PetscDSRegisterAllCalled = PETSC_TRUE;
238022a7a5cSMatthew G. Knepley 
2399566063dSJacob Faibussowitsch   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
2403ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
241022a7a5cSMatthew G. Knepley }
242