Actual source code: dmregall.c
petsc-3.13.6 2020-09-29
2: #include <petscdm.h>
3: #include <petscdmplex.h>
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);
29: /*@C
30: DMRegisterAll - Registers all of the DM components in the DM package.
32: Not Collective
34: Input parameter:
35: . path - The dynamic library path
37: Level: advanced
39: .seealso: DMRegister(), DMRegisterDestroy()
40: @*/
41: PetscErrorCode DMRegisterAll(void)
42: {
46: if (DMRegisterAllCalled) return(0);
47: DMRegisterAllCalled = PETSC_TRUE;
49: DMRegister(DMDA, DMCreate_DA);
50: DMRegister(DMCOMPOSITE,DMCreate_Composite);
51: DMRegister(DMSLICED, DMCreate_Sliced);
52: DMRegister(DMSHELL, DMCreate_Shell);
53: DMRegister(DMREDUNDANT,DMCreate_Redundant);
54: DMRegister(DMPLEX, DMCreate_Plex);
55: DMRegister(DMPATCH, DMCreate_Patch);
56: DMRegister(DMSWARM, DMCreate_Swarm);
57: #if defined(PETSC_HAVE_MOAB)
58: DMRegister(DMMOAB, DMCreate_Moab);
59: #endif
60: DMRegister(DMNETWORK, DMCreate_Network);
61: DMRegister(DMFOREST, DMCreate_Forest);
62: #if defined(PETSC_HAVE_P4EST)
63: DMRegister(DMP4EST, DMCreate_p4est);
64: DMRegister(DMP8EST, DMCreate_p8est);
65: #endif
66: DMRegister(DMPRODUCT, DMCreate_Product);
67: DMRegister(DMSTAG, DMCreate_Stag);
69: PetscPartitionerRegisterAll();
70: return(0);
71: }
73: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Chaco(PetscPartitioner);
74: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_ParMetis(PetscPartitioner);
75: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_PTScotch(PetscPartitioner);
76: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Shell(PetscPartitioner);
77: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Simple(PetscPartitioner);
78: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Gather(PetscPartitioner);
79: PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_MatPartitioning(PetscPartitioner);
81: /*@C
82: PetscPartitionerRegisterAll - Registers all of the PetscPartitioner components in the DM package.
84: Not Collective
86: Input parameter:
87: . path - The dynamic library path
89: Level: advanced
91: .seealso: PetscPartitionerRegister(), PetscPartitionerRegisterDestroy()
92: @*/
93: PetscErrorCode PetscPartitionerRegisterAll(void)
94: {
98: if (PetscPartitionerRegisterAllCalled) return(0);
99: PetscPartitionerRegisterAllCalled = PETSC_TRUE;
101: PetscPartitionerRegister(PETSCPARTITIONERCHACO, PetscPartitionerCreate_Chaco);
102: PetscPartitionerRegister(PETSCPARTITIONERPARMETIS, PetscPartitionerCreate_ParMetis);
103: PetscPartitionerRegister(PETSCPARTITIONERPTSCOTCH, PetscPartitionerCreate_PTScotch);
104: PetscPartitionerRegister(PETSCPARTITIONERSHELL, PetscPartitionerCreate_Shell);
105: PetscPartitionerRegister(PETSCPARTITIONERSIMPLE, PetscPartitionerCreate_Simple);
106: PetscPartitionerRegister(PETSCPARTITIONERGATHER, PetscPartitionerCreate_Gather);
107: PetscPartitionerRegister(PETSCPARTITIONERMATPARTITIONING, PetscPartitionerCreate_MatPartitioning);
108: return(0);
109: }
110: #include <petscfe.h>
112: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
113: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
114: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
115: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
117: /*@C
118: PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.
120: Not Collective
122: Input parameter:
123: . path - The dynamic library path
125: Level: advanced
127: .seealso: PetscSpaceRegister(), PetscSpaceRegisterDestroy()
128: @*/
129: PetscErrorCode PetscSpaceRegisterAll(void)
130: {
134: if (PetscSpaceRegisterAllCalled) return(0);
135: PetscSpaceRegisterAllCalled = PETSC_TRUE;
137: PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial);
138: PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor);
139: PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point);
140: PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace);
141: return(0);
142: }
144: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
145: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
146: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
147: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);
149: /*@C
150: PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.
152: Not Collective
154: Input parameter:
155: . path - The dynamic library path
157: Level: advanced
159: .seealso: PetscDualSpaceRegister(), PetscDualSpaceRegisterDestroy()
160: @*/
161: PetscErrorCode PetscDualSpaceRegisterAll(void)
162: {
166: if (PetscDualSpaceRegisterAllCalled) return(0);
167: PetscDualSpaceRegisterAllCalled = PETSC_TRUE;
169: PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange);
170: PetscDualSpaceRegister("bdm", PetscDualSpaceCreate_Lagrange);
171: PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple);
172: PetscDualSpaceRegister(PETSCDUALSPACEREFINED, PetscDualSpaceCreate_Refined);
173: return(0);
174: }
176: PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
177: PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
178: PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
179: #if defined(PETSC_HAVE_OPENCL)
180: PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
181: #endif
183: /*@C
184: PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.
186: Not Collective
188: Input parameter:
189: . path - The dynamic library path
191: Level: advanced
193: .seealso: PetscFERegister(), PetscFERegisterDestroy()
194: @*/
195: PetscErrorCode PetscFERegisterAll(void)
196: {
200: if (PetscFERegisterAllCalled) return(0);
201: PetscFERegisterAllCalled = PETSC_TRUE;
203: PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic);
204: PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite);
205: #if defined(PETSC_HAVE_OPENCL)
206: PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL);
207: #endif
208: return(0);
209: }
210: #include <petscfv.h>
212: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
213: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
214: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
215: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
216: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
217: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
218: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
219: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);
221: /*@C
222: PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.
224: Not Collective
226: Input parameter:
227: . path - The dynamic library path
229: Level: advanced
231: .seealso: PetscLimiterRegister(), PetscLimiterRegisterDestroy()
232: @*/
233: PetscErrorCode PetscLimiterRegisterAll(void)
234: {
238: if (PetscLimiterRegisterAllCalled) return(0);
239: PetscLimiterRegisterAllCalled = PETSC_TRUE;
241: PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin);
242: PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero);
243: PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None);
244: PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod);
245: PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer);
246: PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada);
247: PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee);
248: PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC);
249: return(0);
250: }
252: PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
253: PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);
255: /*@C
256: PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.
258: Not Collective
260: Input parameter:
261: . path - The dynamic library path
263: Level: advanced
265: .seealso: PetscFVRegister(), PetscFVRegisterDestroy()
266: @*/
267: PetscErrorCode PetscFVRegisterAll(void)
268: {
272: if (PetscFVRegisterAllCalled) return(0);
273: PetscFVRegisterAllCalled = PETSC_TRUE;
275: PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind);
276: PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares);
277: return(0);
278: }
279: #include <petscds.h>
281: PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);
283: /*@C
284: PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.
286: Not Collective
288: Input parameter:
289: . path - The dynamic library path
291: Level: advanced
293: .seealso: PetscDSRegister(), PetscDSRegisterDestroy()
294: @*/
295: PetscErrorCode PetscDSRegisterAll(void)
296: {
300: if (PetscDSRegisterAllCalled) return(0);
301: PetscDSRegisterAllCalled = PETSC_TRUE;
303: PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic);
304: return(0);
305: }