xref: /petsc/src/dm/interface/dmregall.c (revision 55cda6f51c86a483abe5781578f3bbdf986e1625)
1 #include <petscdm.h>     /*I  "petscdm.h"  I*/
2 #include <petscdmplex.h> /*I  "petscdmplex.h"  I*/
3 #include <petsc/private/dmimpl.h>
4 #include <petsc/private/dmpleximpl.h>
5 #include <petsc/private/petscfeimpl.h>
6 #include <petsc/private/petscfvimpl.h>
7 #include <petsc/private/petscdsimpl.h>
8 PETSC_EXTERN PetscErrorCode DMCreate_DA(DM);
9 PETSC_EXTERN PetscErrorCode DMCreate_Composite(DM);
10 PETSC_EXTERN PetscErrorCode DMCreate_Sliced(DM);
11 PETSC_EXTERN PetscErrorCode DMCreate_Shell(DM);
12 PETSC_EXTERN PetscErrorCode DMCreate_Redundant(DM);
13 PETSC_EXTERN PetscErrorCode DMCreate_Plex(DM);
14 PETSC_EXTERN PetscErrorCode DMCreate_Patch(DM);
15 PETSC_EXTERN PetscErrorCode DMCreate_Swarm(DM);
16 #if defined(PETSC_HAVE_MOAB)
17 PETSC_EXTERN PetscErrorCode DMCreate_Moab(DM);
18 #endif
19 PETSC_EXTERN PetscErrorCode DMCreate_Network(DM);
20 PETSC_EXTERN PetscErrorCode DMCreate_Forest(DM);
21 #if defined(PETSC_HAVE_P4EST)
22 PETSC_EXTERN PetscErrorCode DMCreate_p4est(DM);
23 PETSC_EXTERN PetscErrorCode DMCreate_p8est(DM);
24 #endif
25 PETSC_EXTERN PetscErrorCode DMCreate_Product(DM);
26 PETSC_EXTERN PetscErrorCode DMCreate_Stag(DM);
27 
28 /*@C
29   DMRegisterAll - Registers all of the DM components in the DM package.
30 
31   Not Collective
32 
33   Level: advanced
34 
35 .seealso: `DMRegister()`, `DMRegisterDestroy()`
36 @*/
DMRegisterAll(void)37 PetscErrorCode DMRegisterAll(void)
38 {
39   PetscFunctionBegin;
40   if (DMRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
41   DMRegisterAllCalled = PETSC_TRUE;
42 
43   PetscCall(DMRegister(DMDA, DMCreate_DA));
44   PetscCall(DMRegister(DMCOMPOSITE, DMCreate_Composite));
45   PetscCall(DMRegister(DMSLICED, DMCreate_Sliced));
46   PetscCall(DMRegister(DMSHELL, DMCreate_Shell));
47   PetscCall(DMRegister(DMREDUNDANT, DMCreate_Redundant));
48   PetscCall(DMRegister(DMPLEX, DMCreate_Plex));
49   PetscCall(DMRegister(DMPATCH, DMCreate_Patch));
50   PetscCall(DMRegister(DMSWARM, DMCreate_Swarm));
51 #if defined(PETSC_HAVE_MOAB)
52   PetscCall(DMRegister(DMMOAB, DMCreate_Moab));
53 #endif
54   PetscCall(DMRegister(DMNETWORK, DMCreate_Network));
55   PetscCall(DMRegister(DMFOREST, DMCreate_Forest));
56 #if defined(PETSC_HAVE_P4EST)
57   PetscCall(DMRegister(DMP4EST, DMCreate_p4est));
58   PetscCall(DMRegister(DMP8EST, DMCreate_p8est));
59 #endif
60   PetscCall(DMRegister(DMPRODUCT, DMCreate_Product));
61   PetscCall(DMRegister(DMSTAG, DMCreate_Stag));
62   PetscFunctionReturn(PETSC_SUCCESS);
63 }
64 
65 #include <petscfe.h> /*I  "petscfe.h"  I*/
66 
67 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
68 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
69 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
70 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
71 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
72 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
73 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);
74 
75 /*@C
76   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
77 
78   Not Collective
79 
80   Level: advanced
81 
82 .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
83 @*/
PetscSpaceRegisterAll(void)84 PetscErrorCode PetscSpaceRegisterAll(void)
85 {
86   PetscFunctionBegin;
87   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
88   PetscSpaceRegisterAllCalled = PETSC_TRUE;
89 
90   PetscCall(PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial));
91   PetscCall(PetscSpaceRegister(PETSCSPACEPTRIMMED, PetscSpaceCreate_Ptrimmed));
92   PetscCall(PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor));
93   PetscCall(PetscSpaceRegister(PETSCSPACESUM, PetscSpaceCreate_Sum));
94   PetscCall(PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point));
95   PetscCall(PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace));
96   PetscCall(PetscSpaceRegister(PETSCSPACEWXY, PetscSpaceCreate_WXY));
97   PetscFunctionReturn(PETSC_SUCCESS);
98 }
99 
100 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
101 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
102 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
103 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
104 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Sum(PetscDualSpace);
105 
106 /*@C
107   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
108 
109   Not Collective
110 
111   Level: advanced
112 
113 .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
114 @*/
PetscDualSpaceRegisterAll(void)115 PetscErrorCode PetscDualSpaceRegisterAll(void)
116 {
117   PetscFunctionBegin;
118   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
119   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
120 
121   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange));
122   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEBDM, PetscDualSpaceCreate_Lagrange));
123   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple));
124   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEREFINED, PetscDualSpaceCreate_Refined));
125   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESUM, PetscDualSpaceCreate_Sum));
126   PetscFunctionReturn(PETSC_SUCCESS);
127 }
128 
129 PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
130 PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
131 PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
132 #if defined(PETSC_HAVE_OPENCL)
133 PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
134 #endif
135 PETSC_EXTERN PetscErrorCode PetscFECreate_Vector(PetscFE);
136 
137 /*@C
138   PetscFERegisterAll - Registers all of the PetscFE components in the `PetscFE` package.
139 
140   Not Collective
141 
142   Level: advanced
143 
144 .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
145 @*/
PetscFERegisterAll(void)146 PetscErrorCode PetscFERegisterAll(void)
147 {
148   PetscFunctionBegin;
149   if (PetscFERegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
150   PetscFERegisterAllCalled = PETSC_TRUE;
151 
152   PetscCall(PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic));
153   PetscCall(PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite));
154 #if defined(PETSC_HAVE_OPENCL)
155   PetscCall(PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL));
156 #endif
157   PetscCall(PetscFERegister(PETSCFEVECTOR, PetscFECreate_Vector));
158   PetscFunctionReturn(PETSC_SUCCESS);
159 }
160 #include <petscfv.h> /*I  "petscfv.h"  I*/
161 
162 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
163 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
164 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
165 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
166 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
167 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
168 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
169 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
170 
171 /*@C
172   PetscLimiterRegisterAll - Registers all of the `PetscLimiter` components in the `PetscFV` package.
173 
174   Not Collective
175 
176   Level: advanced
177 
178 .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
179 @*/
PetscLimiterRegisterAll(void)180 PetscErrorCode PetscLimiterRegisterAll(void)
181 {
182   PetscFunctionBegin;
183   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
184   PetscLimiterRegisterAllCalled = PETSC_TRUE;
185 
186   PetscCall(PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin));
187   PetscCall(PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero));
188   PetscCall(PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None));
189   PetscCall(PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod));
190   PetscCall(PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer));
191   PetscCall(PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada));
192   PetscCall(PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee));
193   PetscCall(PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC));
194   PetscFunctionReturn(PETSC_SUCCESS);
195 }
196 
197 PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
198 PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
199 
200 /*@C
201   PetscFVRegisterAll - Registers all of the `PetscFV` components in the `PetscFV` package.
202 
203   Not Collective
204 
205   Level: advanced
206 
207 .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
208 @*/
PetscFVRegisterAll(void)209 PetscErrorCode PetscFVRegisterAll(void)
210 {
211   PetscFunctionBegin;
212   if (PetscFVRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
213   PetscFVRegisterAllCalled = PETSC_TRUE;
214 
215   PetscCall(PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind));
216   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
217   PetscFunctionReturn(PETSC_SUCCESS);
218 }
219 #include <petscds.h> /*I  "petscds.h"  I*/
220 
221 PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
222 
223 /*@C
224   PetscDSRegisterAll - Registers all of the `PetscDS` components in the `PetscDS` package.
225 
226   Not Collective
227 
228   Level: advanced
229 
230 .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
231 @*/
PetscDSRegisterAll(void)232 PetscErrorCode PetscDSRegisterAll(void)
233 {
234   PetscFunctionBegin;
235   if (PetscDSRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
236   PetscDSRegisterAllCalled = PETSC_TRUE;
237 
238   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
239   PetscFunctionReturn(PETSC_SUCCESS);
240 }
241