xref: /petsc/src/dm/interface/dmregall.c (revision 69cc43acf904673348835f1e68d7a5ddf92b44cb)
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 
39607a6623SBarry Smith .seealso:  DMRegister(), DMRegisterDestroy()
40264ace61SBarry Smith @*/
41dd63322aSSatish Balay PetscErrorCode  DMRegisterAll(void)
42264ace61SBarry Smith {
43264ace61SBarry Smith   PetscErrorCode ierr;
44264ace61SBarry Smith 
45264ace61SBarry Smith   PetscFunctionBegin;
460f51fdf8SToby Isaac   if (DMRegisterAllCalled) PetscFunctionReturn(0);
47264ace61SBarry Smith   DMRegisterAllCalled = PETSC_TRUE;
488865f1eaSKarl Rupp 
49bdf89e91SBarry Smith   ierr = DMRegister(DMDA,       DMCreate_DA);CHKERRQ(ierr);
50bdf89e91SBarry Smith   ierr = DMRegister(DMCOMPOSITE,DMCreate_Composite);CHKERRQ(ierr);
51bdf89e91SBarry Smith   ierr = DMRegister(DMSLICED,   DMCreate_Sliced);CHKERRQ(ierr);
52bdf89e91SBarry Smith   ierr = DMRegister(DMSHELL,    DMCreate_Shell);CHKERRQ(ierr);
53bdf89e91SBarry Smith   ierr = DMRegister(DMREDUNDANT,DMCreate_Redundant);CHKERRQ(ierr);
54bdf89e91SBarry Smith   ierr = DMRegister(DMPLEX,     DMCreate_Plex);CHKERRQ(ierr);
55bdf89e91SBarry Smith   ierr = DMRegister(DMPATCH,    DMCreate_Patch);CHKERRQ(ierr);
562fd35b1fSDave May   ierr = DMRegister(DMSWARM,    DMCreate_Swarm);CHKERRQ(ierr);
571d72bce8STim Tautges #if defined(PETSC_HAVE_MOAB)
588a1af44dSJed Brown   ierr = DMRegister(DMMOAB,     DMCreate_Moab);CHKERRQ(ierr);
591d72bce8STim Tautges #endif
60b2930b41SShri Abhyankar   ierr = DMRegister(DMNETWORK,  DMCreate_Network);CHKERRQ(ierr);
61ef51cf95SToby Isaac   ierr = DMRegister(DMFOREST,   DMCreate_Forest);CHKERRQ(ierr);
62b34044e4SToby Isaac #if defined(PETSC_HAVE_P4EST)
63b34044e4SToby Isaac   ierr = DMRegister(DMP4EST,    DMCreate_p4est);CHKERRQ(ierr);
64b34044e4SToby Isaac   ierr = DMRegister(DMP8EST,    DMCreate_p8est);CHKERRQ(ierr);
65b34044e4SToby Isaac #endif
66d852a638SPatrick Sanan   ierr = DMRegister(DMPRODUCT,  DMCreate_Product);CHKERRQ(ierr);
67a3101111SPatrick Sanan   ierr = DMRegister(DMSTAG,     DMCreate_Stag);CHKERRQ(ierr);
68264ace61SBarry Smith   PetscFunctionReturn(0);
69264ace61SBarry Smith }
7077623264SMatthew G. Knepley 
7106759e06SMatthew G. Knepley #include <petscfe.h>     /*I  "petscfe.h"  I*/
72264ace61SBarry Smith 
7306759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
74130d5748SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
7536e5648fSToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
76d092c84bSBrandon Whitchurch PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
779c3cf19fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
782f5fb066SToby Isaac PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
79*69cc43acSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);
8006759e06SMatthew G. Knepley 
8106759e06SMatthew G. Knepley /*@C
8206759e06SMatthew G. Knepley   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
8306759e06SMatthew G. Knepley 
8406759e06SMatthew G. Knepley   Not Collective
8506759e06SMatthew G. Knepley 
8606759e06SMatthew G. Knepley   Input parameter:
8706759e06SMatthew G. Knepley . path - The dynamic library path
8806759e06SMatthew G. Knepley 
8906759e06SMatthew G. Knepley   Level: advanced
9006759e06SMatthew G. Knepley 
9106759e06SMatthew G. Knepley .seealso:  PetscSpaceRegister(), PetscSpaceRegisterDestroy()
9206759e06SMatthew G. Knepley @*/
93dd63322aSSatish Balay PetscErrorCode PetscSpaceRegisterAll(void)
9406759e06SMatthew G. Knepley {
9506759e06SMatthew G. Knepley   PetscErrorCode ierr;
9606759e06SMatthew G. Knepley 
9706759e06SMatthew G. Knepley   PetscFunctionBegin;
980f51fdf8SToby Isaac   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(0);
9906759e06SMatthew G. Knepley   PetscSpaceRegisterAllCalled = PETSC_TRUE;
10006759e06SMatthew G. Knepley 
10106759e06SMatthew G. Knepley   ierr = PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial);CHKERRQ(ierr);
102130d5748SToby Isaac   ierr = PetscSpaceRegister(PETSCSPACEPTRIMMED,   PetscSpaceCreate_Ptrimmed);CHKERRQ(ierr);
10336e5648fSToby Isaac   ierr = PetscSpaceRegister(PETSCSPACETENSOR,     PetscSpaceCreate_Tensor);CHKERRQ(ierr);
104d092c84bSBrandon Whitchurch   ierr = PetscSpaceRegister(PETSCSPACESUM,        PetscSpaceCreate_Sum);CHKERRQ(ierr);
1059c3cf19fSMatthew G. Knepley   ierr = PetscSpaceRegister(PETSCSPACEPOINT,      PetscSpaceCreate_Point);CHKERRQ(ierr);
1062f5fb066SToby Isaac   ierr = PetscSpaceRegister(PETSCSPACESUBSPACE,   PetscSpaceCreate_Subspace);CHKERRQ(ierr);
107*69cc43acSMatthew G. Knepley   ierr = PetscSpaceRegister(PETSCSPACEWXY,        PetscSpaceCreate_WXY);CHKERRQ(ierr);
10806759e06SMatthew G. Knepley   PetscFunctionReturn(0);
10906759e06SMatthew G. Knepley }
11006759e06SMatthew G. Knepley 
11106759e06SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
1123f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
113c2765ee2SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
1143f27d899SToby Isaac PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
11506759e06SMatthew G. Knepley 
11606759e06SMatthew G. Knepley /*@C
11706759e06SMatthew G. Knepley   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
11806759e06SMatthew G. Knepley 
11906759e06SMatthew G. Knepley   Not Collective
12006759e06SMatthew G. Knepley 
12106759e06SMatthew G. Knepley   Input parameter:
12206759e06SMatthew G. Knepley . path - The dynamic library path
12306759e06SMatthew G. Knepley 
12406759e06SMatthew G. Knepley   Level: advanced
12506759e06SMatthew G. Knepley 
12606759e06SMatthew G. Knepley .seealso:  PetscDualSpaceRegister(), PetscDualSpaceRegisterDestroy()
12706759e06SMatthew G. Knepley @*/
128dd63322aSSatish Balay PetscErrorCode PetscDualSpaceRegisterAll(void)
12906759e06SMatthew G. Knepley {
13006759e06SMatthew G. Knepley   PetscErrorCode ierr;
13106759e06SMatthew G. Knepley 
13206759e06SMatthew G. Knepley   PetscFunctionBegin;
1330f51fdf8SToby Isaac   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(0);
13406759e06SMatthew G. Knepley   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
13506759e06SMatthew G. Knepley 
13606759e06SMatthew G. Knepley   ierr = PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr);
137efac50ffSToby Isaac   ierr = PetscDualSpaceRegister(PETSCDUALSPACEBDM,      PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr);
138c2765ee2SMatthew G. Knepley   ierr = PetscDualSpaceRegister(PETSCDUALSPACESIMPLE,   PetscDualSpaceCreate_Simple);CHKERRQ(ierr);
1393f27d899SToby Isaac   ierr = PetscDualSpaceRegister(PETSCDUALSPACEREFINED,  PetscDualSpaceCreate_Refined);CHKERRQ(ierr);
14006759e06SMatthew G. Knepley   PetscFunctionReturn(0);
14106759e06SMatthew G. Knepley }
1420483ade4SMatthew G. Knepley 
1430483ade4SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
144aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
145aaf1837cSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
146497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
147133ee763SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
148133ee763SMatthew G. Knepley #endif
1490483ade4SMatthew G. Knepley 
1500483ade4SMatthew G. Knepley /*@C
1510483ade4SMatthew G. Knepley   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
1520483ade4SMatthew G. Knepley 
1530483ade4SMatthew G. Knepley   Not Collective
1540483ade4SMatthew G. Knepley 
1550483ade4SMatthew G. Knepley   Input parameter:
1560483ade4SMatthew G. Knepley . path - The dynamic library path
1570483ade4SMatthew G. Knepley 
1580483ade4SMatthew G. Knepley   Level: advanced
1590483ade4SMatthew G. Knepley 
1600483ade4SMatthew G. Knepley .seealso:  PetscFERegister(), PetscFERegisterDestroy()
1610483ade4SMatthew G. Knepley @*/
162dd63322aSSatish Balay PetscErrorCode PetscFERegisterAll(void)
1630483ade4SMatthew G. Knepley {
1640483ade4SMatthew G. Knepley   PetscErrorCode ierr;
1650483ade4SMatthew G. Knepley 
1660483ade4SMatthew G. Knepley   PetscFunctionBegin;
1670f51fdf8SToby Isaac   if (PetscFERegisterAllCalled) PetscFunctionReturn(0);
1680483ade4SMatthew G. Knepley   PetscFERegisterAllCalled = PETSC_TRUE;
1690483ade4SMatthew G. Knepley 
1700483ade4SMatthew G. Knepley   ierr = PetscFERegister(PETSCFEBASIC,     PetscFECreate_Basic);CHKERRQ(ierr);
171aaf1837cSMatthew G. Knepley   ierr = PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite);CHKERRQ(ierr);
172497880caSRichard Tran Mills #if defined(PETSC_HAVE_OPENCL)
173133ee763SMatthew G. Knepley   ierr = PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL);CHKERRQ(ierr);
174133ee763SMatthew G. Knepley #endif
1750483ade4SMatthew G. Knepley   PetscFunctionReturn(0);
1760483ade4SMatthew G. Knepley }
177f62f30faSMatthew G. Knepley #include <petscfv.h>     /*I  "petscfv.h"  I*/
178f62f30faSMatthew G. Knepley 
179ab2453f0SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
1809347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
1819347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
1829347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
1839347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
1849347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
1859347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
1869347ee04SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
187ab2453f0SMatthew G. Knepley 
188ab2453f0SMatthew G. Knepley /*@C
189ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
190ab2453f0SMatthew G. Knepley 
191ab2453f0SMatthew G. Knepley   Not Collective
192ab2453f0SMatthew G. Knepley 
193ab2453f0SMatthew G. Knepley   Input parameter:
194ab2453f0SMatthew G. Knepley . path - The dynamic library path
195ab2453f0SMatthew G. Knepley 
196ab2453f0SMatthew G. Knepley   Level: advanced
197ab2453f0SMatthew G. Knepley 
198ab2453f0SMatthew G. Knepley .seealso:  PetscLimiterRegister(), PetscLimiterRegisterDestroy()
199ab2453f0SMatthew G. Knepley @*/
200dd63322aSSatish Balay PetscErrorCode PetscLimiterRegisterAll(void)
201ab2453f0SMatthew G. Knepley {
202ab2453f0SMatthew G. Knepley   PetscErrorCode ierr;
203ab2453f0SMatthew G. Knepley 
204ab2453f0SMatthew G. Knepley   PetscFunctionBegin;
2050f51fdf8SToby Isaac   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(0);
206ab2453f0SMatthew G. Knepley   PetscLimiterRegisterAllCalled = PETSC_TRUE;
207ab2453f0SMatthew G. Knepley 
208ab2453f0SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERSIN,       PetscLimiterCreate_Sin);CHKERRQ(ierr);
2099347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERZERO,      PetscLimiterCreate_Zero);CHKERRQ(ierr);
2109347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERNONE,      PetscLimiterCreate_None);CHKERRQ(ierr);
2119347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERMINMOD,    PetscLimiterCreate_Minmod);CHKERRQ(ierr);
2129347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERVANLEER,   PetscLimiterCreate_VanLeer);CHKERRQ(ierr);
2139347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada);CHKERRQ(ierr);
2149347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERSUPERBEE,  PetscLimiterCreate_Superbee);CHKERRQ(ierr);
2159347ee04SMatthew G. Knepley   ierr = PetscLimiterRegister(PETSCLIMITERMC,        PetscLimiterCreate_MC);CHKERRQ(ierr);
216ab2453f0SMatthew G. Knepley   PetscFunctionReturn(0);
217ab2453f0SMatthew G. Knepley }
218ab2453f0SMatthew G. Knepley 
219f62f30faSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
2200545663fSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
221f62f30faSMatthew G. Knepley 
222f62f30faSMatthew G. Knepley /*@C
2230545663fSMatthew G. Knepley   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
224f62f30faSMatthew G. Knepley 
225f62f30faSMatthew G. Knepley   Not Collective
226f62f30faSMatthew G. Knepley 
227f62f30faSMatthew G. Knepley   Input parameter:
228f62f30faSMatthew G. Knepley . path - The dynamic library path
229f62f30faSMatthew G. Knepley 
230f62f30faSMatthew G. Knepley   Level: advanced
231f62f30faSMatthew G. Knepley 
232f62f30faSMatthew G. Knepley .seealso:  PetscFVRegister(), PetscFVRegisterDestroy()
233f62f30faSMatthew G. Knepley @*/
234dd63322aSSatish Balay PetscErrorCode PetscFVRegisterAll(void)
235f62f30faSMatthew G. Knepley {
236f62f30faSMatthew G. Knepley   PetscErrorCode ierr;
237f62f30faSMatthew G. Knepley 
238f62f30faSMatthew G. Knepley   PetscFunctionBegin;
2390f51fdf8SToby Isaac   if (PetscFVRegisterAllCalled) PetscFunctionReturn(0);
240f62f30faSMatthew G. Knepley   PetscFVRegisterAllCalled = PETSC_TRUE;
241f62f30faSMatthew G. Knepley 
242f62f30faSMatthew G. Knepley   ierr = PetscFVRegister(PETSCFVUPWIND,       PetscFVCreate_Upwind);CHKERRQ(ierr);
2430545663fSMatthew G. Knepley   ierr = PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares);CHKERRQ(ierr);
244f62f30faSMatthew G. Knepley   PetscFunctionReturn(0);
245f62f30faSMatthew G. Knepley }
2462764a2aaSMatthew G. Knepley #include <petscds.h>     /*I  "petscds.h"  I*/
247022a7a5cSMatthew G. Knepley 
2482764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
249022a7a5cSMatthew G. Knepley 
250022a7a5cSMatthew G. Knepley /*@C
2512764a2aaSMatthew G. Knepley   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
252022a7a5cSMatthew G. Knepley 
253022a7a5cSMatthew G. Knepley   Not Collective
254022a7a5cSMatthew G. Knepley 
255022a7a5cSMatthew G. Knepley   Input parameter:
256022a7a5cSMatthew G. Knepley . path - The dynamic library path
257022a7a5cSMatthew G. Knepley 
258022a7a5cSMatthew G. Knepley   Level: advanced
259022a7a5cSMatthew G. Knepley 
2602764a2aaSMatthew G. Knepley .seealso:  PetscDSRegister(), PetscDSRegisterDestroy()
261022a7a5cSMatthew G. Knepley @*/
262dd63322aSSatish Balay PetscErrorCode PetscDSRegisterAll(void)
263022a7a5cSMatthew G. Knepley {
264022a7a5cSMatthew G. Knepley   PetscErrorCode ierr;
265022a7a5cSMatthew G. Knepley 
266022a7a5cSMatthew G. Knepley   PetscFunctionBegin;
2670f51fdf8SToby Isaac   if (PetscDSRegisterAllCalled) PetscFunctionReturn(0);
2682764a2aaSMatthew G. Knepley   PetscDSRegisterAllCalled = PETSC_TRUE;
269022a7a5cSMatthew G. Knepley 
2702764a2aaSMatthew G. Knepley   ierr = PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic);CHKERRQ(ierr);
271022a7a5cSMatthew G. Knepley   PetscFunctionReturn(0);
272022a7a5cSMatthew G. Knepley }
273