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