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