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