xref: /petsc/src/dm/interface/dmregall.c (revision 5a856986583887c326abe5dfd149e8184a29cd80)
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   PetscErrorCode ierr;
44 
45   PetscFunctionBegin;
46   if (DMRegisterAllCalled) PetscFunctionReturn(0);
47   DMRegisterAllCalled = PETSC_TRUE;
48 
49   ierr = DMRegister(DMDA,         DMCreate_DA);CHKERRQ(ierr);
50   ierr = DMRegister(DMCOMPOSITE,  DMCreate_Composite);CHKERRQ(ierr);
51   ierr = DMRegister(DMSLICED,     DMCreate_Sliced);CHKERRQ(ierr);
52   ierr = DMRegister(DMSHELL,      DMCreate_Shell);CHKERRQ(ierr);
53   ierr = DMRegister(DMREDUNDANT,  DMCreate_Redundant);CHKERRQ(ierr);
54   ierr = DMRegister(DMPLEX,       DMCreate_Plex);CHKERRQ(ierr);
55   ierr = DMRegister(DMPATCH,      DMCreate_Patch);CHKERRQ(ierr);
56   ierr = DMRegister(DMSWARM,      DMCreate_Swarm);CHKERRQ(ierr);
57 #if defined(PETSC_HAVE_MOAB)
58   ierr = DMRegister(DMMOAB,       DMCreate_Moab);CHKERRQ(ierr);
59 #endif
60   ierr = DMRegister(DMNETWORK,    DMCreate_Network);CHKERRQ(ierr);
61   ierr = DMRegister(DMFOREST,     DMCreate_Forest);CHKERRQ(ierr);
62 #if defined(PETSC_HAVE_P4EST)
63   ierr = DMRegister(DMP4EST,      DMCreate_p4est);CHKERRQ(ierr);
64   ierr = DMRegister(DMP8EST,      DMCreate_p8est);CHKERRQ(ierr);
65 #endif
66   ierr = DMRegister(DMPRODUCT,    DMCreate_Product);CHKERRQ(ierr);
67   ierr = DMRegister(DMSTAG,       DMCreate_Stag);CHKERRQ(ierr);
68   PetscFunctionReturn(0);
69 }
70 
71 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Chaco(PetscPartitioner);
72 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_ParMetis(PetscPartitioner);
73 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_PTScotch(PetscPartitioner);
74 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Shell(PetscPartitioner);
75 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Simple(PetscPartitioner);
76 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Gather(PetscPartitioner);
77 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_MatPartitioning(PetscPartitioner);
78 
79 /*@C
80   PetscPartitionerRegisterAll - Registers all of the PetscPartitioner components in the DM package.
81 
82   Not Collective
83 
84   Input parameter:
85 . path - The dynamic library path
86 
87   Level: advanced
88 
89 .seealso:  PetscPartitionerRegister(), PetscPartitionerRegisterDestroy()
90 @*/
91 PetscErrorCode PetscPartitionerRegisterAll(void)
92 {
93   PetscErrorCode ierr;
94 
95   PetscFunctionBegin;
96   if (PetscPartitionerRegisterAllCalled) PetscFunctionReturn(0);
97   PetscPartitionerRegisterAllCalled = PETSC_TRUE;
98 
99   ierr = PetscPartitionerRegister(PETSCPARTITIONERCHACO,    PetscPartitionerCreate_Chaco);CHKERRQ(ierr);
100   ierr = PetscPartitionerRegister(PETSCPARTITIONERPARMETIS, PetscPartitionerCreate_ParMetis);CHKERRQ(ierr);
101   ierr = PetscPartitionerRegister(PETSCPARTITIONERPTSCOTCH, PetscPartitionerCreate_PTScotch);CHKERRQ(ierr);
102   ierr = PetscPartitionerRegister(PETSCPARTITIONERSHELL,    PetscPartitionerCreate_Shell);CHKERRQ(ierr);
103   ierr = PetscPartitionerRegister(PETSCPARTITIONERSIMPLE,   PetscPartitionerCreate_Simple);CHKERRQ(ierr);
104   ierr = PetscPartitionerRegister(PETSCPARTITIONERGATHER,   PetscPartitionerCreate_Gather);CHKERRQ(ierr);
105   ierr = PetscPartitionerRegister(PETSCPARTITIONERMATPARTITIONING, PetscPartitionerCreate_MatPartitioning);CHKERRQ(ierr);
106   PetscFunctionReturn(0);
107 }
108 #include <petscfe.h>     /*I  "petscfe.h"  I*/
109 
110 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
111 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
112 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
113 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
114 
115 /*@C
116   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
117 
118   Not Collective
119 
120   Input parameter:
121 . path - The dynamic library path
122 
123   Level: advanced
124 
125 .seealso:  PetscSpaceRegister(), PetscSpaceRegisterDestroy()
126 @*/
127 PetscErrorCode PetscSpaceRegisterAll(void)
128 {
129   PetscErrorCode ierr;
130 
131   PetscFunctionBegin;
132   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(0);
133   PetscSpaceRegisterAllCalled = PETSC_TRUE;
134 
135   ierr = PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial);CHKERRQ(ierr);
136   ierr = PetscSpaceRegister(PETSCSPACETENSOR,     PetscSpaceCreate_Tensor);CHKERRQ(ierr);
137   ierr = PetscSpaceRegister(PETSCSPACEPOINT,      PetscSpaceCreate_Point);CHKERRQ(ierr);
138   ierr = PetscSpaceRegister(PETSCSPACESUBSPACE,   PetscSpaceCreate_Subspace);CHKERRQ(ierr);
139   PetscFunctionReturn(0);
140 }
141 
142 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
143 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_BDM(PetscDualSpace);
144 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
145 
146 /*@C
147   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
148 
149   Not Collective
150 
151   Input parameter:
152 . path - The dynamic library path
153 
154   Level: advanced
155 
156 .seealso:  PetscDualSpaceRegister(), PetscDualSpaceRegisterDestroy()
157 @*/
158 PetscErrorCode PetscDualSpaceRegisterAll(void)
159 {
160   PetscErrorCode ierr;
161 
162   PetscFunctionBegin;
163   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(0);
164   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
165 
166   ierr = PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr);
167   ierr = PetscDualSpaceRegister(PETSCDUALSPACEBDM,      PetscDualSpaceCreate_BDM);CHKERRQ(ierr);
168   ierr = PetscDualSpaceRegister(PETSCDUALSPACESIMPLE,   PetscDualSpaceCreate_Simple);CHKERRQ(ierr);
169   PetscFunctionReturn(0);
170 }
171 
172 PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
173 PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
174 PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
175 #if defined(PETSC_HAVE_OPENCL)
176 PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
177 #endif
178 
179 /*@C
180   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
181 
182   Not Collective
183 
184   Input parameter:
185 . path - The dynamic library path
186 
187   Level: advanced
188 
189 .seealso:  PetscFERegister(), PetscFERegisterDestroy()
190 @*/
191 PetscErrorCode PetscFERegisterAll(void)
192 {
193   PetscErrorCode ierr;
194 
195   PetscFunctionBegin;
196   if (PetscFERegisterAllCalled) PetscFunctionReturn(0);
197   PetscFERegisterAllCalled = PETSC_TRUE;
198 
199   ierr = PetscFERegister(PETSCFEBASIC,     PetscFECreate_Basic);CHKERRQ(ierr);
200   ierr = PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite);CHKERRQ(ierr);
201 #if defined(PETSC_HAVE_OPENCL)
202   ierr = PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL);CHKERRQ(ierr);
203 #endif
204   PetscFunctionReturn(0);
205 }
206 #include <petscfv.h>     /*I  "petscfv.h"  I*/
207 
208 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
209 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
210 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
211 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
212 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
213 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
214 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
215 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
216 
217 /*@C
218   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
219 
220   Not Collective
221 
222   Input parameter:
223 . path - The dynamic library path
224 
225   Level: advanced
226 
227 .seealso:  PetscLimiterRegister(), PetscLimiterRegisterDestroy()
228 @*/
229 PetscErrorCode PetscLimiterRegisterAll(void)
230 {
231   PetscErrorCode ierr;
232 
233   PetscFunctionBegin;
234   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(0);
235   PetscLimiterRegisterAllCalled = PETSC_TRUE;
236 
237   ierr = PetscLimiterRegister(PETSCLIMITERSIN,       PetscLimiterCreate_Sin);CHKERRQ(ierr);
238   ierr = PetscLimiterRegister(PETSCLIMITERZERO,      PetscLimiterCreate_Zero);CHKERRQ(ierr);
239   ierr = PetscLimiterRegister(PETSCLIMITERNONE,      PetscLimiterCreate_None);CHKERRQ(ierr);
240   ierr = PetscLimiterRegister(PETSCLIMITERMINMOD,    PetscLimiterCreate_Minmod);CHKERRQ(ierr);
241   ierr = PetscLimiterRegister(PETSCLIMITERVANLEER,   PetscLimiterCreate_VanLeer);CHKERRQ(ierr);
242   ierr = PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada);CHKERRQ(ierr);
243   ierr = PetscLimiterRegister(PETSCLIMITERSUPERBEE,  PetscLimiterCreate_Superbee);CHKERRQ(ierr);
244   ierr = PetscLimiterRegister(PETSCLIMITERMC,        PetscLimiterCreate_MC);CHKERRQ(ierr);
245   PetscFunctionReturn(0);
246 }
247 
248 PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
249 PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
250 
251 /*@C
252   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
253 
254   Not Collective
255 
256   Input parameter:
257 . path - The dynamic library path
258 
259   Level: advanced
260 
261 .seealso:  PetscFVRegister(), PetscFVRegisterDestroy()
262 @*/
263 PetscErrorCode PetscFVRegisterAll(void)
264 {
265   PetscErrorCode ierr;
266 
267   PetscFunctionBegin;
268   if (PetscFVRegisterAllCalled) PetscFunctionReturn(0);
269   PetscFVRegisterAllCalled = PETSC_TRUE;
270 
271   ierr = PetscFVRegister(PETSCFVUPWIND,       PetscFVCreate_Upwind);CHKERRQ(ierr);
272   ierr = PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares);CHKERRQ(ierr);
273   PetscFunctionReturn(0);
274 }
275 #include <petscds.h>     /*I  "petscds.h"  I*/
276 
277 PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
278 
279 /*@C
280   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
281 
282   Not Collective
283 
284   Input parameter:
285 . path - The dynamic library path
286 
287   Level: advanced
288 
289 .seealso:  PetscDSRegister(), PetscDSRegisterDestroy()
290 @*/
291 PetscErrorCode PetscDSRegisterAll(void)
292 {
293   PetscErrorCode ierr;
294 
295   PetscFunctionBegin;
296   if (PetscDSRegisterAllCalled) PetscFunctionReturn(0);
297   PetscDSRegisterAllCalled = PETSC_TRUE;
298 
299   ierr = PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic);CHKERRQ(ierr);
300   PetscFunctionReturn(0);
301 }
302