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