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