xref: /petsc/src/dm/interface/dmregall.c (revision e600fa544e2bb197ca2af9b6e65ea465976dec56)
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 .seealso:  DMRegister(), DMRegisterDestroy()
40 @*/
41 PetscErrorCode  DMRegisterAll(void)
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   ierr = DMRegister(DMSWARM,    DMCreate_Swarm);CHKERRQ(ierr);
57 #if defined(PETSC_HAVE_MOAB)
58   ierr = DMRegister(DMMOAB,     DMCreate_Moab);CHKERRQ(ierr);
59 #endif
60   ierr = DMRegister(DMNETWORK,  DMCreate_Network);CHKERRQ(ierr);
61   ierr = DMRegister(DMFOREST,   DMCreate_Forest);CHKERRQ(ierr);
62 #if defined(PETSC_HAVE_P4EST)
63   ierr = DMRegister(DMP4EST,    DMCreate_p4est);CHKERRQ(ierr);
64   ierr = DMRegister(DMP8EST,    DMCreate_p8est);CHKERRQ(ierr);
65 #endif
66   ierr = DMRegister(DMPRODUCT,  DMCreate_Product);CHKERRQ(ierr);
67   ierr = DMRegister(DMSTAG,     DMCreate_Stag);CHKERRQ(ierr);
68   PetscFunctionReturn(0);
69 }
70 
71 #include <petscfe.h>     /*I  "petscfe.h"  I*/
72 
73 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
74 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
75 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
76 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
77 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
78 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
79 
80 /*@C
81   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
82 
83   Not Collective
84 
85   Input parameter:
86 . path - The dynamic library path
87 
88   Level: advanced
89 
90 .seealso:  PetscSpaceRegister(), PetscSpaceRegisterDestroy()
91 @*/
92 PetscErrorCode PetscSpaceRegisterAll(void)
93 {
94   PetscErrorCode ierr;
95 
96   PetscFunctionBegin;
97   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(0);
98   PetscSpaceRegisterAllCalled = PETSC_TRUE;
99 
100   ierr = PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial);CHKERRQ(ierr);
101   ierr = PetscSpaceRegister(PETSCSPACEPTRIMMED,   PetscSpaceCreate_Ptrimmed);CHKERRQ(ierr);
102   ierr = PetscSpaceRegister(PETSCSPACETENSOR,     PetscSpaceCreate_Tensor);CHKERRQ(ierr);
103   ierr = PetscSpaceRegister(PETSCSPACESUM,        PetscSpaceCreate_Sum);CHKERRQ(ierr);
104   ierr = PetscSpaceRegister(PETSCSPACEPOINT,      PetscSpaceCreate_Point);CHKERRQ(ierr);
105   ierr = PetscSpaceRegister(PETSCSPACESUBSPACE,   PetscSpaceCreate_Subspace);CHKERRQ(ierr);
106   PetscFunctionReturn(0);
107 }
108 
109 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
110 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
111 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
112 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
113 
114 /*@C
115   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
116 
117   Not Collective
118 
119   Input parameter:
120 . path - The dynamic library path
121 
122   Level: advanced
123 
124 .seealso:  PetscDualSpaceRegister(), PetscDualSpaceRegisterDestroy()
125 @*/
126 PetscErrorCode PetscDualSpaceRegisterAll(void)
127 {
128   PetscErrorCode ierr;
129 
130   PetscFunctionBegin;
131   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(0);
132   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
133 
134   ierr = PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr);
135   ierr = PetscDualSpaceRegister(PETSCDUALSPACEBDM,      PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr);
136   ierr = PetscDualSpaceRegister(PETSCDUALSPACESIMPLE,   PetscDualSpaceCreate_Simple);CHKERRQ(ierr);
137   ierr = PetscDualSpaceRegister(PETSCDUALSPACEREFINED,  PetscDualSpaceCreate_Refined);CHKERRQ(ierr);
138   PetscFunctionReturn(0);
139 }
140 
141 PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
142 PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
143 PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
144 #if defined(PETSC_HAVE_OPENCL)
145 PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
146 #endif
147 
148 /*@C
149   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
150 
151   Not Collective
152 
153   Input parameter:
154 . path - The dynamic library path
155 
156   Level: advanced
157 
158 .seealso:  PetscFERegister(), PetscFERegisterDestroy()
159 @*/
160 PetscErrorCode PetscFERegisterAll(void)
161 {
162   PetscErrorCode ierr;
163 
164   PetscFunctionBegin;
165   if (PetscFERegisterAllCalled) PetscFunctionReturn(0);
166   PetscFERegisterAllCalled = PETSC_TRUE;
167 
168   ierr = PetscFERegister(PETSCFEBASIC,     PetscFECreate_Basic);CHKERRQ(ierr);
169   ierr = PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite);CHKERRQ(ierr);
170 #if defined(PETSC_HAVE_OPENCL)
171   ierr = PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL);CHKERRQ(ierr);
172 #endif
173   PetscFunctionReturn(0);
174 }
175 #include <petscfv.h>     /*I  "petscfv.h"  I*/
176 
177 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
178 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
179 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
180 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
181 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
182 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
183 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
184 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
185 
186 /*@C
187   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
188 
189   Not Collective
190 
191   Input parameter:
192 . path - The dynamic library path
193 
194   Level: advanced
195 
196 .seealso:  PetscLimiterRegister(), PetscLimiterRegisterDestroy()
197 @*/
198 PetscErrorCode PetscLimiterRegisterAll(void)
199 {
200   PetscErrorCode ierr;
201 
202   PetscFunctionBegin;
203   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(0);
204   PetscLimiterRegisterAllCalled = PETSC_TRUE;
205 
206   ierr = PetscLimiterRegister(PETSCLIMITERSIN,       PetscLimiterCreate_Sin);CHKERRQ(ierr);
207   ierr = PetscLimiterRegister(PETSCLIMITERZERO,      PetscLimiterCreate_Zero);CHKERRQ(ierr);
208   ierr = PetscLimiterRegister(PETSCLIMITERNONE,      PetscLimiterCreate_None);CHKERRQ(ierr);
209   ierr = PetscLimiterRegister(PETSCLIMITERMINMOD,    PetscLimiterCreate_Minmod);CHKERRQ(ierr);
210   ierr = PetscLimiterRegister(PETSCLIMITERVANLEER,   PetscLimiterCreate_VanLeer);CHKERRQ(ierr);
211   ierr = PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada);CHKERRQ(ierr);
212   ierr = PetscLimiterRegister(PETSCLIMITERSUPERBEE,  PetscLimiterCreate_Superbee);CHKERRQ(ierr);
213   ierr = PetscLimiterRegister(PETSCLIMITERMC,        PetscLimiterCreate_MC);CHKERRQ(ierr);
214   PetscFunctionReturn(0);
215 }
216 
217 PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
218 PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
219 
220 /*@C
221   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
222 
223   Not Collective
224 
225   Input parameter:
226 . path - The dynamic library path
227 
228   Level: advanced
229 
230 .seealso:  PetscFVRegister(), PetscFVRegisterDestroy()
231 @*/
232 PetscErrorCode PetscFVRegisterAll(void)
233 {
234   PetscErrorCode ierr;
235 
236   PetscFunctionBegin;
237   if (PetscFVRegisterAllCalled) PetscFunctionReturn(0);
238   PetscFVRegisterAllCalled = PETSC_TRUE;
239 
240   ierr = PetscFVRegister(PETSCFVUPWIND,       PetscFVCreate_Upwind);CHKERRQ(ierr);
241   ierr = PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares);CHKERRQ(ierr);
242   PetscFunctionReturn(0);
243 }
244 #include <petscds.h>     /*I  "petscds.h"  I*/
245 
246 PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
247 
248 /*@C
249   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
250 
251   Not Collective
252 
253   Input parameter:
254 . path - The dynamic library path
255 
256   Level: advanced
257 
258 .seealso:  PetscDSRegister(), PetscDSRegisterDestroy()
259 @*/
260 PetscErrorCode PetscDSRegisterAll(void)
261 {
262   PetscErrorCode ierr;
263 
264   PetscFunctionBegin;
265   if (PetscDSRegisterAllCalled) PetscFunctionReturn(0);
266   PetscDSRegisterAllCalled = PETSC_TRUE;
267 
268   ierr = PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic);CHKERRQ(ierr);
269   PetscFunctionReturn(0);
270 }
271