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