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 .keywords: DM, register, all 40 .seealso: DMRegister(), DMRegisterDestroy() 41 @*/ 42 PetscErrorCode DMRegisterAll(void) 43 { 44 PetscErrorCode ierr; 45 46 PetscFunctionBegin; 47 if (DMRegisterAllCalled) PetscFunctionReturn(0); 48 DMRegisterAllCalled = PETSC_TRUE; 49 50 ierr = DMRegister(DMDA, DMCreate_DA);CHKERRQ(ierr); 51 ierr = DMRegister(DMCOMPOSITE, DMCreate_Composite);CHKERRQ(ierr); 52 ierr = DMRegister(DMSLICED, DMCreate_Sliced);CHKERRQ(ierr); 53 ierr = DMRegister(DMSHELL, DMCreate_Shell);CHKERRQ(ierr); 54 ierr = DMRegister(DMREDUNDANT, DMCreate_Redundant);CHKERRQ(ierr); 55 ierr = DMRegister(DMPLEX, DMCreate_Plex);CHKERRQ(ierr); 56 ierr = DMRegister(DMPATCH, DMCreate_Patch);CHKERRQ(ierr); 57 ierr = DMRegister(DMSWARM, DMCreate_Swarm);CHKERRQ(ierr); 58 #if defined(PETSC_HAVE_MOAB) 59 ierr = DMRegister(DMMOAB, DMCreate_Moab);CHKERRQ(ierr); 60 #endif 61 ierr = DMRegister(DMNETWORK, DMCreate_Network);CHKERRQ(ierr); 62 ierr = DMRegister(DMFOREST, DMCreate_Forest);CHKERRQ(ierr); 63 #if defined(PETSC_HAVE_P4EST) 64 ierr = DMRegister(DMP4EST, DMCreate_p4est);CHKERRQ(ierr); 65 ierr = DMRegister(DMP8EST, DMCreate_p8est);CHKERRQ(ierr); 66 #endif 67 ierr = DMRegister(DMPRODUCT, DMCreate_Product);CHKERRQ(ierr); 68 ierr = DMRegister(DMSTAG, DMCreate_Stag);CHKERRQ(ierr); 69 PetscFunctionReturn(0); 70 } 71 72 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Chaco(PetscPartitioner); 73 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_ParMetis(PetscPartitioner); 74 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_PTScotch(PetscPartitioner); 75 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Shell(PetscPartitioner); 76 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Simple(PetscPartitioner); 77 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Gather(PetscPartitioner); 78 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_MatPartitioning(PetscPartitioner); 79 80 /*@C 81 PetscPartitionerRegisterAll - Registers all of the PetscPartitioner components in the DM package. 82 83 Not Collective 84 85 Input parameter: 86 . path - The dynamic library path 87 88 Level: advanced 89 90 .keywords: PetscPartitioner, register, all 91 .seealso: PetscPartitionerRegister(), PetscPartitionerRegisterDestroy() 92 @*/ 93 PetscErrorCode PetscPartitionerRegisterAll(void) 94 { 95 PetscErrorCode ierr; 96 97 PetscFunctionBegin; 98 if (PetscPartitionerRegisterAllCalled) PetscFunctionReturn(0); 99 PetscPartitionerRegisterAllCalled = PETSC_TRUE; 100 101 ierr = PetscPartitionerRegister(PETSCPARTITIONERCHACO, PetscPartitionerCreate_Chaco);CHKERRQ(ierr); 102 ierr = PetscPartitionerRegister(PETSCPARTITIONERPARMETIS, PetscPartitionerCreate_ParMetis);CHKERRQ(ierr); 103 ierr = PetscPartitionerRegister(PETSCPARTITIONERPTSCOTCH, PetscPartitionerCreate_PTScotch);CHKERRQ(ierr); 104 ierr = PetscPartitionerRegister(PETSCPARTITIONERSHELL, PetscPartitionerCreate_Shell);CHKERRQ(ierr); 105 ierr = PetscPartitionerRegister(PETSCPARTITIONERSIMPLE, PetscPartitionerCreate_Simple);CHKERRQ(ierr); 106 ierr = PetscPartitionerRegister(PETSCPARTITIONERGATHER, PetscPartitionerCreate_Gather);CHKERRQ(ierr); 107 ierr = PetscPartitionerRegister(PETSCPARTITIONERMATPARTITIONING, PetscPartitionerCreate_MatPartitioning);CHKERRQ(ierr); 108 PetscFunctionReturn(0); 109 } 110 #include <petscfe.h> /*I "petscfe.h" I*/ 111 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); 116 117 /*@C 118 PetscSpaceRegisterAll - Registers all of the PetscSpace components in the PetscFE package. 119 120 Not Collective 121 122 Input parameter: 123 . path - The dynamic library path 124 125 Level: advanced 126 127 .keywords: PetscSpace, register, all 128 .seealso: PetscSpaceRegister(), PetscSpaceRegisterDestroy() 129 @*/ 130 PetscErrorCode PetscSpaceRegisterAll(void) 131 { 132 PetscErrorCode ierr; 133 134 PetscFunctionBegin; 135 if (PetscSpaceRegisterAllCalled) PetscFunctionReturn(0); 136 PetscSpaceRegisterAllCalled = PETSC_TRUE; 137 138 ierr = PetscSpaceRegister(PETSCSPACEPOLYNOMIAL, PetscSpaceCreate_Polynomial);CHKERRQ(ierr); 139 ierr = PetscSpaceRegister(PETSCSPACETENSOR, PetscSpaceCreate_Tensor);CHKERRQ(ierr); 140 ierr = PetscSpaceRegister(PETSCSPACEPOINT, PetscSpaceCreate_Point);CHKERRQ(ierr); 141 ierr = PetscSpaceRegister(PETSCSPACESUBSPACE, PetscSpaceCreate_Subspace);CHKERRQ(ierr); 142 PetscFunctionReturn(0); 143 } 144 145 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Lagrange(PetscDualSpace); 146 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_BDM(PetscDualSpace); 147 PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate_Simple(PetscDualSpace); 148 149 /*@C 150 PetscDualSpaceRegisterAll - Registers all of the PetscDualSpace components in the PetscFE package. 151 152 Not Collective 153 154 Input parameter: 155 . path - The dynamic library path 156 157 Level: advanced 158 159 .keywords: PetscDualSpace, register, all 160 .seealso: PetscDualSpaceRegister(), PetscDualSpaceRegisterDestroy() 161 @*/ 162 PetscErrorCode PetscDualSpaceRegisterAll(void) 163 { 164 PetscErrorCode ierr; 165 166 PetscFunctionBegin; 167 if (PetscDualSpaceRegisterAllCalled) PetscFunctionReturn(0); 168 PetscDualSpaceRegisterAllCalled = PETSC_TRUE; 169 170 ierr = PetscDualSpaceRegister(PETSCDUALSPACELAGRANGE, PetscDualSpaceCreate_Lagrange);CHKERRQ(ierr); 171 ierr = PetscDualSpaceRegister(PETSCDUALSPACEBDM, PetscDualSpaceCreate_BDM);CHKERRQ(ierr); 172 ierr = PetscDualSpaceRegister(PETSCDUALSPACESIMPLE, PetscDualSpaceCreate_Simple);CHKERRQ(ierr); 173 PetscFunctionReturn(0); 174 } 175 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 182 183 /*@C 184 PetscFERegisterAll - Registers all of the PetscFE components in the PetscFE package. 185 186 Not Collective 187 188 Input parameter: 189 . path - The dynamic library path 190 191 Level: advanced 192 193 .keywords: PetscFE, register, all 194 .seealso: PetscFERegister(), PetscFERegisterDestroy() 195 @*/ 196 PetscErrorCode PetscFERegisterAll(void) 197 { 198 PetscErrorCode ierr; 199 200 PetscFunctionBegin; 201 if (PetscFERegisterAllCalled) PetscFunctionReturn(0); 202 PetscFERegisterAllCalled = PETSC_TRUE; 203 204 ierr = PetscFERegister(PETSCFEBASIC, PetscFECreate_Basic);CHKERRQ(ierr); 205 ierr = PetscFERegister(PETSCFECOMPOSITE, PetscFECreate_Composite);CHKERRQ(ierr); 206 #if defined(PETSC_HAVE_OPENCL) 207 ierr = PetscFERegister(PETSCFEOPENCL, PetscFECreate_OpenCL);CHKERRQ(ierr); 208 #endif 209 PetscFunctionReturn(0); 210 } 211 #include <petscfv.h> /*I "petscfv.h" I*/ 212 213 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Sin(PetscLimiter); 214 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Zero(PetscLimiter); 215 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_None(PetscLimiter); 216 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Minmod(PetscLimiter); 217 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanLeer(PetscLimiter); 218 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_VanAlbada(PetscLimiter); 219 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_Superbee(PetscLimiter); 220 PETSC_EXTERN PetscErrorCode PetscLimiterCreate_MC(PetscLimiter); 221 222 /*@C 223 PetscLimiterRegisterAll - Registers all of the PetscLimiter components in the PetscFV package. 224 225 Not Collective 226 227 Input parameter: 228 . path - The dynamic library path 229 230 Level: advanced 231 232 .keywords: PetscLimiter, register, all 233 .seealso: PetscLimiterRegister(), PetscLimiterRegisterDestroy() 234 @*/ 235 PetscErrorCode PetscLimiterRegisterAll(void) 236 { 237 PetscErrorCode ierr; 238 239 PetscFunctionBegin; 240 if (PetscLimiterRegisterAllCalled) PetscFunctionReturn(0); 241 PetscLimiterRegisterAllCalled = PETSC_TRUE; 242 243 ierr = PetscLimiterRegister(PETSCLIMITERSIN, PetscLimiterCreate_Sin);CHKERRQ(ierr); 244 ierr = PetscLimiterRegister(PETSCLIMITERZERO, PetscLimiterCreate_Zero);CHKERRQ(ierr); 245 ierr = PetscLimiterRegister(PETSCLIMITERNONE, PetscLimiterCreate_None);CHKERRQ(ierr); 246 ierr = PetscLimiterRegister(PETSCLIMITERMINMOD, PetscLimiterCreate_Minmod);CHKERRQ(ierr); 247 ierr = PetscLimiterRegister(PETSCLIMITERVANLEER, PetscLimiterCreate_VanLeer);CHKERRQ(ierr); 248 ierr = PetscLimiterRegister(PETSCLIMITERVANALBADA, PetscLimiterCreate_VanAlbada);CHKERRQ(ierr); 249 ierr = PetscLimiterRegister(PETSCLIMITERSUPERBEE, PetscLimiterCreate_Superbee);CHKERRQ(ierr); 250 ierr = PetscLimiterRegister(PETSCLIMITERMC, PetscLimiterCreate_MC);CHKERRQ(ierr); 251 PetscFunctionReturn(0); 252 } 253 254 PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV); 255 PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV); 256 257 /*@C 258 PetscFVRegisterAll - Registers all of the PetscFV components in the PetscFV package. 259 260 Not Collective 261 262 Input parameter: 263 . path - The dynamic library path 264 265 Level: advanced 266 267 .keywords: PetscFV, register, all 268 .seealso: PetscFVRegister(), PetscFVRegisterDestroy() 269 @*/ 270 PetscErrorCode PetscFVRegisterAll(void) 271 { 272 PetscErrorCode ierr; 273 274 PetscFunctionBegin; 275 if (PetscFVRegisterAllCalled) PetscFunctionReturn(0); 276 PetscFVRegisterAllCalled = PETSC_TRUE; 277 278 ierr = PetscFVRegister(PETSCFVUPWIND, PetscFVCreate_Upwind);CHKERRQ(ierr); 279 ierr = PetscFVRegister(PETSCFVLEASTSQUARES, PetscFVCreate_LeastSquares);CHKERRQ(ierr); 280 PetscFunctionReturn(0); 281 } 282 #include <petscds.h> /*I "petscds.h" I*/ 283 284 PETSC_EXTERN PetscErrorCode PetscDSCreate_Basic(PetscDS); 285 286 /*@C 287 PetscDSRegisterAll - Registers all of the PetscDS components in the PetscDS package. 288 289 Not Collective 290 291 Input parameter: 292 . path - The dynamic library path 293 294 Level: advanced 295 296 .keywords: PetscDS, register, all 297 .seealso: PetscDSRegister(), PetscDSRegisterDestroy() 298 @*/ 299 PetscErrorCode PetscDSRegisterAll(void) 300 { 301 PetscErrorCode ierr; 302 303 PetscFunctionBegin; 304 if (PetscDSRegisterAllCalled) PetscFunctionReturn(0); 305 PetscDSRegisterAllCalled = PETSC_TRUE; 306 307 ierr = PetscDSRegister(PETSCDSBASIC, PetscDSCreate_Basic);CHKERRQ(ierr); 308 PetscFunctionReturn(0); 309 } 310