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