Actual source code: dmregall.c


  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: {
 43:   PetscFunctionBegin;
 44:   if (DMRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
 45:   DMRegisterAllCalled = PETSC_TRUE;

 47:   PetscCall(DMRegister(DMDA, DMCreate_DA));
 48:   PetscCall(DMRegister(DMCOMPOSITE, DMCreate_Composite));
 49:   PetscCall(DMRegister(DMSLICED, DMCreate_Sliced));
 50:   PetscCall(DMRegister(DMSHELL, DMCreate_Shell));
 51:   PetscCall(DMRegister(DMREDUNDANT, DMCreate_Redundant));
 52:   PetscCall(DMRegister(DMPLEX, DMCreate_Plex));
 53:   PetscCall(DMRegister(DMPATCH, DMCreate_Patch));
 54:   PetscCall(DMRegister(DMSWARM, DMCreate_Swarm));
 55: #if defined(PETSC_HAVE_MOAB)
 56:   PetscCall(DMRegister(DMMOAB, DMCreate_Moab));
 57: #endif
 58:   PetscCall(DMRegister(DMNETWORK, DMCreate_Network));
 59:   PetscCall(DMRegister(DMFOREST, DMCreate_Forest));
 60: #if defined(PETSC_HAVE_P4EST)
 61:   PetscCall(DMRegister(DMP4EST, DMCreate_p4est));
 62:   PetscCall(DMRegister(DMP8EST, DMCreate_p8est));
 63: #endif
 64:   PetscCall(DMRegister(DMPRODUCT, DMCreate_Product));
 65:   PetscCall(DMRegister(DMSTAG, DMCreate_Stag));
 66:   PetscFunctionReturn(PETSC_SUCCESS);
 67: }

 69: #include <petscfe.h>

 71: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Polynomial(PetscSpace);
 72: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Ptrimmed(PetscSpace);
 73: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Tensor(PetscSpace);
 74: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Sum(PetscSpace);
 75: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Point(PetscSpace);
 76: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_Subspace(PetscSpace);
 77: PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace);

 79: /*@C
 80:   PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package.

 82:   Not Collective

 84:   Input parameter:
 85: . path - The dynamic library path

 87:   Level: advanced

 89: .seealso: `PetscSpaceRegister()`, `PetscSpaceRegisterDestroy()`
 90: @*/
 91: PetscErrorCode PetscSpaceRegisterAll(void)
 92: {
 93:   PetscFunctionBegin;
 94:   if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
 95:   PetscSpaceRegisterAllCalled = PETSC_TRUE;

 97:   PetscCall(PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial));
 98:   PetscCall(PetscSpaceRegister(PETSCSPACEPTRIMMED, PetscSpaceCreate_Ptrimmed));
 99:   PetscCall(PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor));
100:   PetscCall(PetscSpaceRegister(PETSCSPACESUM, PetscSpaceCreate_Sum));
101:   PetscCall(PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point));
102:   PetscCall(PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace));
103:   PetscCall(PetscSpaceRegister(PETSCSPACEWXY, PetscSpaceCreate_WXY));
104:   PetscFunctionReturn(PETSC_SUCCESS);
105: }

107: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace);
108: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange_BDM(PetscDualSpace);
109: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace);
110: PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Refined(PetscDualSpace);

112: /*@C
113:   PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package.

115:   Not Collective

117:   Input parameter:
118: . path - The dynamic library path

120:   Level: advanced

122: .seealso: `PetscDualSpaceRegister()`, `PetscDualSpaceRegisterDestroy()`
123: @*/
124: PetscErrorCode PetscDualSpaceRegisterAll(void)
125: {
126:   PetscFunctionBegin;
127:   if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
128:   PetscDualSpaceRegisterAllCalled = PETSC_TRUE;

130:   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange));
131:   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEBDM, PetscDualSpaceCreate_Lagrange));
132:   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple));
133:   PetscCall(PetscDualSpaceRegister(PETSCDUALSPACEREFINED, PetscDualSpaceCreate_Refined));
134:   PetscFunctionReturn(PETSC_SUCCESS);
135: }

137: PETSC_EXTERN PetscErrorCode PetscFECreate_Basic(PetscFE);
138: PETSC_EXTERN PetscErrorCode PetscFECreate_Nonaffine(PetscFE);
139: PETSC_EXTERN PetscErrorCode PetscFECreate_Composite(PetscFE);
140: #if defined(PETSC_HAVE_OPENCL)
141: PETSC_EXTERN PetscErrorCode PetscFECreate_OpenCL(PetscFE);
142: #endif

144: /*@C
145:   PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package.

147:   Not Collective

149:   Input parameter:
150: . path - The dynamic library path

152:   Level: advanced

154: .seealso: `PetscFERegister()`, `PetscFERegisterDestroy()`
155: @*/
156: PetscErrorCode PetscFERegisterAll(void)
157: {
158:   PetscFunctionBegin;
159:   if (PetscFERegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
160:   PetscFERegisterAllCalled = PETSC_TRUE;

162:   PetscCall(PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic));
163:   PetscCall(PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite));
164: #if defined(PETSC_HAVE_OPENCL)
165:   PetscCall(PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL));
166: #endif
167:   PetscFunctionReturn(PETSC_SUCCESS);
168: }
169: #include <petscfv.h>

171: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter);
172: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter);
173: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter);
174: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter);
175: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter);
176: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter);
177: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter);
178: PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter);

180: /*@C
181:   PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package.

183:   Not Collective

185:   Input parameter:
186: . path - The dynamic library path

188:   Level: advanced

190: .seealso: `PetscLimiterRegister()`, `PetscLimiterRegisterDestroy()`
191: @*/
192: PetscErrorCode PetscLimiterRegisterAll(void)
193: {
194:   PetscFunctionBegin;
195:   if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
196:   PetscLimiterRegisterAllCalled = PETSC_TRUE;

198:   PetscCall(PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin));
199:   PetscCall(PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero));
200:   PetscCall(PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None));
201:   PetscCall(PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod));
202:   PetscCall(PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer));
203:   PetscCall(PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada));
204:   PetscCall(PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee));
205:   PetscCall(PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC));
206:   PetscFunctionReturn(PETSC_SUCCESS);
207: }

209: PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV);
210: PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV);

212: /*@C
213:   PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package.

215:   Not Collective

217:   Input parameter:
218: . path - The dynamic library path

220:   Level: advanced

222: .seealso: `PetscFVRegister()`, `PetscFVRegisterDestroy()`
223: @*/
224: PetscErrorCode PetscFVRegisterAll(void)
225: {
226:   PetscFunctionBegin;
227:   if (PetscFVRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
228:   PetscFVRegisterAllCalled = PETSC_TRUE;

230:   PetscCall(PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind));
231:   PetscCall(PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares));
232:   PetscFunctionReturn(PETSC_SUCCESS);
233: }
234: #include <petscds.h>

236: PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS);

238: /*@C
239:   PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package.

241:   Not Collective

243:   Input parameter:
244: . path - The dynamic library path

246:   Level: advanced

248: .seealso: `PetscDSRegister()`, `PetscDSRegisterDestroy()`
249: @*/
250: PetscErrorCode PetscDSRegisterAll(void)
251: {
252:   PetscFunctionBegin;
253:   if (PetscDSRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
254:   PetscDSRegisterAllCalled = PETSC_TRUE;

256:   PetscCall(PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic));
257:   PetscFunctionReturn(PETSC_SUCCESS);
258: }