xref: /petsc/src/dm/interface/dmregall.c (revision db7814771ca77b190574494e87b584e981451db0)
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   Input parameter:
35264ace61SBarry Smith . path - The dynamic library path
36264ace61SBarry Smith 
37264ace61SBarry Smith   Level: advanced
38264ace61SBarry Smith 
39*db781477SPatrick Sanan .seealso: `DMRegister()`, `DMRegisterDestroy()`
40264ace61SBarry Smith @*/
41dd63322aSSatish Balay PetscErrorCode  DMRegisterAll(void)
42264ace61SBarry Smith {
43264ace61SBarry Smith   PetscFunctionBegin;
440f51fdf8SToby Isaac   if (DMRegisterAllCalled) PetscFunctionReturn(0);
45264ace61SBarry Smith   DMRegisterAllCalled = PETSC_TRUE;
468865f1eaSKarl Rupp 
479566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMDA,       DMCreate_DA));
489566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMCOMPOSITE,DMCreate_Composite));
499566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSLICED,   DMCreate_Sliced));
509566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSHELL,    DMCreate_Shell));
519566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMREDUNDANT,DMCreate_Redundant));
529566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPLEX,     DMCreate_Plex));
539566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPATCH,    DMCreate_Patch));
549566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSWARM,    DMCreate_Swarm));
551d72bce8STim Tautges #if defined(PETSC_HAVE_MOAB)
569566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMMOAB,     DMCreate_Moab));
571d72bce8STim Tautges #endif
589566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMNETWORK,  DMCreate_Network));
599566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMFOREST,   DMCreate_Forest));
60b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
619566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP4EST,    DMCreate_p4est));
629566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMP8EST,    DMCreate_p8est));
63b34044e4SToby Isaac #endif
649566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMPRODUCT,  DMCreate_Product));
659566063dSJacob Faibussowitsch   PetscCall(DMRegister(DMSTAG,     DMCreate_Stag));
66264ace61SBarry Smith   PetscFunctionReturn(0);
67264ace61SBarry Smith }
6877623264SMatthew G. Knepley 
6906759e06SMatthew G. Knepley #include <petscfe.h>     /*I  "petscfe.h"  I*/
70264ace61SBarry Smith 
7106759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
72130d5748SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
7336e5648fSToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
74d092c84bSBrandon Whitchurch PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
759c3cf19fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
762f5fb066SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
7769cc43acSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);
7806759e06SMatthew G. Knepley 
7906759e06SMatthew G. Knepley /*@C
8006759e06SMatthew G. Knepley   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
8106759e06SMatthew G. Knepley 
8206759e06SMatthew G. Knepley   Not Collective
8306759e06SMatthew G. Knepley 
8406759e06SMatthew G. Knepley   Input parameter:
8506759e06SMatthew G. Knepley . path - The dynamic library path
8606759e06SMatthew G. Knepley 
8706759e06SMatthew G. Knepley   Level: advanced
8806759e06SMatthew G. Knepley 
89*db781477SPatrick Sanan .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
9006759e06SMatthew G. Knepley @*/
91dd63322aSSatish Balay PetscErrorCode PetscSpaceRegisterAll(void)
9206759e06SMatthew G. Knepley {
9306759e06SMatthew G. Knepley   PetscFunctionBegin;
940f51fdf8SToby Isaac   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(0);
9506759e06SMatthew G. Knepley   PetscSpaceRegisterAllCalled = PETSC_TRUE;
9606759e06SMatthew G. Knepley 
979566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial));
989566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPTRIMMED,   PetscSpaceCreate_Ptrimmed));
999566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACETENSOR,     PetscSpaceCreate_Tensor));
1009566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUM,        PetscSpaceCreate_Sum));
1019566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEPOINT,      PetscSpaceCreate_Point));
1029566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACESUBSPACE,   PetscSpaceCreate_Subspace));
1039566063dSJacob Faibussowitsch   PetscCall(PetscSpaceRegister(PETSCSPACEWXY,        PetscSpaceCreate_WXY));
10406759e06SMatthew G. Knepley   PetscFunctionReturn(0);
10506759e06SMatthew G. Knepley }
10606759e06SMatthew G. Knepley 
10706759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
1083f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
109c2765ee2SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
1103f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
11106759e06SMatthew G. Knepley 
11206759e06SMatthew G. Knepley /*@C
11306759e06SMatthew G. Knepley   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
11406759e06SMatthew G. Knepley 
11506759e06SMatthew G. Knepley   Not Collective
11606759e06SMatthew G. Knepley 
11706759e06SMatthew G. Knepley   Input parameter:
11806759e06SMatthew G. Knepley . path - The dynamic library path
11906759e06SMatthew G. Knepley 
12006759e06SMatthew G. Knepley   Level: advanced
12106759e06SMatthew G. Knepley 
122*db781477SPatrick Sanan .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
12306759e06SMatthew G. Knepley @*/
124dd63322aSSatish Balay PetscErrorCode PetscDualSpaceRegisterAll(void)
12506759e06SMatthew G. Knepley {
12606759e06SMatthew G. Knepley   PetscFunctionBegin;
1270f51fdf8SToby Isaac   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(0);
12806759e06SMatthew G. Knepley   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
12906759e06SMatthew G. Knepley 
1309566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange));
1319566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEBDM,      PetscDualSpaceCreate_Lagrange));
1329566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESIMPLE,   PetscDualSpaceCreate_Simple));
1339566063dSJacob Faibussowitsch   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEREFINED,  PetscDualSpaceCreate_Refined));
13406759e06SMatthew G. Knepley   PetscFunctionReturn(0);
13506759e06SMatthew G. Knepley }
1360483ade4SMatthew G. Knepley 
1370483ade4SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
138aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
139aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
140497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
141133ee763SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
142133ee763SMatthew G. Knepley #endif
1430483ade4SMatthew G. Knepley 
1440483ade4SMatthew G. Knepley /*@C
1450483ade4SMatthew G. Knepley   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
1460483ade4SMatthew G. Knepley 
1470483ade4SMatthew G. Knepley   Not Collective
1480483ade4SMatthew G. Knepley 
1490483ade4SMatthew G. Knepley   Input parameter:
1500483ade4SMatthew G. Knepley . path - The dynamic library path
1510483ade4SMatthew G. Knepley 
1520483ade4SMatthew G. Knepley   Level: advanced
1530483ade4SMatthew G. Knepley 
154*db781477SPatrick Sanan .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
1550483ade4SMatthew G. Knepley @*/
156dd63322aSSatish Balay PetscErrorCode PetscFERegisterAll(void)
1570483ade4SMatthew G. Knepley {
1580483ade4SMatthew G. Knepley   PetscFunctionBegin;
1590f51fdf8SToby Isaac   if (PetscFERegisterAllCalled) PetscFunctionReturn(0);
1600483ade4SMatthew G. Knepley   PetscFERegisterAllCalled = PETSC_TRUE;
1610483ade4SMatthew G. Knepley 
1629566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEBASIC,     PetscFECreate_Basic));
1639566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite));
164497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
1659566063dSJacob Faibussowitsch   PetscCall(PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL));
166133ee763SMatthew G. Knepley #endif
1670483ade4SMatthew G. Knepley   PetscFunctionReturn(0);
1680483ade4SMatthew G. Knepley }
169f62f30faSMatthew G. Knepley #include <petscfv.h>     /*I  "petscfv.h"  I*/
170f62f30faSMatthew G. Knepley 
171ab2453f0SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
1729347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
1739347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
1749347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
1759347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
1769347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
1779347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
1789347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
179ab2453f0SMatthew G. Knepley 
180ab2453f0SMatthew G. Knepley /*@C
181ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
182ab2453f0SMatthew G. Knepley 
183ab2453f0SMatthew G. Knepley   Not Collective
184ab2453f0SMatthew G. Knepley 
185ab2453f0SMatthew G. Knepley   Input parameter:
186ab2453f0SMatthew G. Knepley . path - The dynamic library path
187ab2453f0SMatthew G. Knepley 
188ab2453f0SMatthew G. Knepley   Level: advanced
189ab2453f0SMatthew G. Knepley 
190*db781477SPatrick Sanan .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
191ab2453f0SMatthew G. Knepley @*/
192dd63322aSSatish Balay PetscErrorCode PetscLimiterRegisterAll(void)
193ab2453f0SMatthew G. Knepley {
194ab2453f0SMatthew G. Knepley   PetscFunctionBegin;
1950f51fdf8SToby Isaac   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(0);
196ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAllCalled = PETSC_TRUE;
197ab2453f0SMatthew G. Knepley 
1989566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSIN,       PetscLimiterCreate_Sin));
1999566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERZERO,      PetscLimiterCreate_Zero));
2009566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERNONE,      PetscLimiterCreate_None));
2019566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMINMOD,    PetscLimiterCreate_Minmod));
2029566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANLEER,   PetscLimiterCreate_VanLeer));
2039566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada));
2049566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERSUPERBEE,  PetscLimiterCreate_Superbee));
2059566063dSJacob Faibussowitsch   PetscCall(PetscLimiterRegister(PETSCLIMITERMC,        PetscLimiterCreate_MC));
206ab2453f0SMatthew G. Knepley   PetscFunctionReturn(0);
207ab2453f0SMatthew G. Knepley }
208ab2453f0SMatthew G. Knepley 
209f62f30faSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
2100545663fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
211f62f30faSMatthew G. Knepley 
212f62f30faSMatthew G. Knepley /*@C
2130545663fSMatthew G. Knepley   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
214f62f30faSMatthew G. Knepley 
215f62f30faSMatthew G. Knepley   Not Collective
216f62f30faSMatthew G. Knepley 
217f62f30faSMatthew G. Knepley   Input parameter:
218f62f30faSMatthew G. Knepley . path - The dynamic library path
219f62f30faSMatthew G. Knepley 
220f62f30faSMatthew G. Knepley   Level: advanced
221f62f30faSMatthew G. Knepley 
222*db781477SPatrick Sanan .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
223f62f30faSMatthew G. Knepley @*/
224dd63322aSSatish Balay PetscErrorCode PetscFVRegisterAll(void)
225f62f30faSMatthew G. Knepley {
226f62f30faSMatthew G. Knepley   PetscFunctionBegin;
2270f51fdf8SToby Isaac   if (PetscFVRegisterAllCalled) PetscFunctionReturn(0);
228f62f30faSMatthew G. Knepley   PetscFVRegisterAllCalled = PETSC_TRUE;
229f62f30faSMatthew G. Knepley 
2309566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVUPWIND,       PetscFVCreate_Upwind));
2319566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
232f62f30faSMatthew G. Knepley   PetscFunctionReturn(0);
233f62f30faSMatthew G. Knepley }
2342764a2aaSMatthew G. Knepley #include <petscds.h>     /*I  "petscds.h"  I*/
235022a7a5cSMatthew G. Knepley 
2362764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
237022a7a5cSMatthew G. Knepley 
238022a7a5cSMatthew G. Knepley /*@C
2392764a2aaSMatthew G. Knepley   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
240022a7a5cSMatthew G. Knepley 
241022a7a5cSMatthew G. Knepley   Not Collective
242022a7a5cSMatthew G. Knepley 
243022a7a5cSMatthew G. Knepley   Input parameter:
244022a7a5cSMatthew G. Knepley . path - The dynamic library path
245022a7a5cSMatthew G. Knepley 
246022a7a5cSMatthew G. Knepley   Level: advanced
247022a7a5cSMatthew G. Knepley 
248*db781477SPatrick Sanan .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
249022a7a5cSMatthew G. Knepley @*/
250dd63322aSSatish Balay PetscErrorCode PetscDSRegisterAll(void)
251022a7a5cSMatthew G. Knepley {
252022a7a5cSMatthew G. Knepley   PetscFunctionBegin;
2530f51fdf8SToby Isaac   if (PetscDSRegisterAllCalled) PetscFunctionReturn(0);
2542764a2aaSMatthew G. Knepley   PetscDSRegisterAllCalled = PETSC_TRUE;
255022a7a5cSMatthew G. Knepley 
2569566063dSJacob Faibussowitsch   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
257022a7a5cSMatthew G. Knepley   PetscFunctionReturn(0);
258022a7a5cSMatthew G. Knepley }
259