xref: /petsc/src/dm/interface/dmregall.c (revision 3ba1676111f5c958fe6c2729b46ca4d523958bb3)
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 
39db781477SPatrick Sanan .seealso: `DMRegister()`, `DMRegisterDestroy()`
40264ace61SBarry Smith @*/
41d71ae5a4SJacob Faibussowitsch PetscErrorCode DMRegisterAll(void)
42d71ae5a4SJacob Faibussowitsch {
43264ace61SBarry Smith   PetscFunctionBegin;
44*3ba16761SJacob Faibussowitsch   if (DMRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
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));
66*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
89db781477SPatrick Sanan .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
9006759e06SMatthew G. Knepley @*/
91d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscSpaceRegisterAll(void)
92d71ae5a4SJacob Faibussowitsch {
9306759e06SMatthew G. Knepley   PetscFunctionBegin;
94*3ba16761SJacob Faibussowitsch   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
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));
104*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
122db781477SPatrick Sanan .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
12306759e06SMatthew G. Knepley @*/
124d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDualSpaceRegisterAll(void)
125d71ae5a4SJacob Faibussowitsch {
12606759e06SMatthew G. Knepley   PetscFunctionBegin;
127*3ba16761SJacob Faibussowitsch   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
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));
134*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
154db781477SPatrick Sanan .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
1550483ade4SMatthew G. Knepley @*/
156d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFERegisterAll(void)
157d71ae5a4SJacob Faibussowitsch {
1580483ade4SMatthew G. Knepley   PetscFunctionBegin;
159*3ba16761SJacob Faibussowitsch   if (PetscFERegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
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
167*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
190db781477SPatrick Sanan .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
191ab2453f0SMatthew G. Knepley @*/
192d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscLimiterRegisterAll(void)
193d71ae5a4SJacob Faibussowitsch {
194ab2453f0SMatthew G. Knepley   PetscFunctionBegin;
195*3ba16761SJacob Faibussowitsch   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
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));
206*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
222db781477SPatrick Sanan .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
223f62f30faSMatthew G. Knepley @*/
224d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscFVRegisterAll(void)
225d71ae5a4SJacob Faibussowitsch {
226f62f30faSMatthew G. Knepley   PetscFunctionBegin;
227*3ba16761SJacob Faibussowitsch   if (PetscFVRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
228f62f30faSMatthew G. Knepley   PetscFVRegisterAllCalled = PETSC_TRUE;
229f62f30faSMatthew G. Knepley 
2309566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind));
2319566063dSJacob Faibussowitsch   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
232*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
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 
248db781477SPatrick Sanan .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
249022a7a5cSMatthew G. Knepley @*/
250d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDSRegisterAll(void)
251d71ae5a4SJacob Faibussowitsch {
252022a7a5cSMatthew G. Knepley   PetscFunctionBegin;
253*3ba16761SJacob Faibussowitsch   if (PetscDSRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
2542764a2aaSMatthew G. Knepley   PetscDSRegisterAllCalled = PETSC_TRUE;
255022a7a5cSMatthew G. Knepley 
2569566063dSJacob Faibussowitsch   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
257*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
258022a7a5cSMatthew G. Knepley }
259