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