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