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