1 2 Interface 3 Subroutine DMPlexGetCone(m,p,cone,ierr) 4 use petscdmdef 5 PetscInt p 6 PetscInt, pointer :: cone(:) 7 PetscErrorCode ierr 8 DM m 9 End Subroutine 10 End Interface 11 12 Interface 13 Subroutine DMPlexRestoreCone(m,p,cone,ierr) 14 use petscdmdef 15 PetscInt p 16 PetscInt, pointer :: cone(:) 17 PetscErrorCode ierr 18 DM m 19 End Subroutine 20 End Interface 21 22 Interface 23 Subroutine DMPlexGetConeOrientation(m,p,coneOrient,ierr) 24 use petscdmdef 25 PetscInt p 26 PetscInt, pointer :: coneOrient(:) 27 PetscErrorCode ierr 28 DM m 29 End Subroutine 30 End Interface 31 32 Interface 33 Subroutine DMPlexRestoreConeOrientation(m,p,coneOrient,ierr) 34 use petscdmdef 35 PetscInt p 36 PetscInt, pointer :: coneOrient(:) 37 PetscErrorCode ierr 38 DM m 39 End Subroutine 40 End Interface 41 42 Interface 43 Subroutine DMPlexGetSupport(m,p,support,ierr) 44 use petscdmdef 45 PetscInt p 46 PetscInt, pointer :: support(:) 47 PetscErrorCode ierr 48 DM m 49 End Subroutine 50 End Interface 51 52 Interface 53 Subroutine DMPlexRestoreSupport(m,p,support,ierr) 54 use petscdmdef 55 PetscInt p 56 PetscInt, pointer :: support(:) 57 PetscErrorCode ierr 58 DM m 59 End Subroutine 60 End Interface 61 62 Interface 63 Subroutine DMPlexGetTransitiveClosure(m,p,useCone,points,ierr) 64 use petscdmdef 65 PetscInt p 66 PetscBool useCone 67 PetscInt, pointer :: points(:) 68 PetscErrorCode ierr 69 DM m 70 End Subroutine 71 End Interface 72 73 Interface 74 Subroutine DMPlexRestoreTransitiveClosure(m,p,uC,points,ierr) 75 use petscdmdef 76 PetscInt p 77 PetscBool uC 78 PetscInt, pointer :: points(:) 79 PetscErrorCode ierr 80 DM m 81 End Subroutine 82 End Interface 83 84 Interface 85 Subroutine DMPlexGetJoin(m,numPoints,points,join,ierr) 86 use petscdmdef 87 PetscInt numPoints 88 PetscInt, pointer :: points(:) 89 PetscInt, pointer :: join(:) 90 PetscErrorCode ierr 91 DM m 92 End Subroutine 93 End Interface 94 95 Interface 96 Subroutine DMPlexGetFullJoin(m,numPoints,points,join,ierr) 97 use petscdmdef 98 PetscInt numPoints 99 PetscInt, pointer :: points(:) 100 PetscInt, pointer :: join(:) 101 PetscErrorCode ierr 102 DM m 103 End Subroutine 104 End Interface 105 106 Interface 107 Subroutine DMPlexRestoreJoin(m,numPoints,points,join,ierr) 108 use petscdmdef 109 PetscInt numPoints 110 PetscInt, pointer :: points(:) 111 PetscInt, pointer :: join(:) 112 PetscErrorCode ierr 113 DM m 114 End Subroutine 115 End Interface 116 117 Interface 118 Subroutine DMPlexGetMeet(m,numPoints,points,meet,ierr) 119 use petscdmdef 120 PetscInt numPoints 121 PetscInt, pointer :: points(:) 122 PetscInt, pointer :: meet(:) 123 PetscErrorCode ierr 124 DM m 125 End Subroutine 126 End Interface 127 128 Interface 129 Subroutine DMPlexGetFullMeet(m,numPoints,points,meet,ierr) 130 use petscdmdef 131 PetscInt numPoints 132 PetscInt, pointer :: points(:) 133 PetscInt, pointer :: meet(:) 134 PetscErrorCode ierr 135 DM m 136 End Subroutine 137 End Interface 138 139 Interface 140 Subroutine DMPlexRestoreMeet(m,numPoints,points,meet,ierr) 141 use petscdmdef 142 PetscInt numPoints 143 PetscInt, pointer :: points(:) 144 PetscInt, pointer :: meet(:) 145 PetscErrorCode ierr 146 DM m 147 End Subroutine 148 End Interface 149 150 Interface 151 Subroutine DMPlexVecGetClosure(m,section,v,point,values,ierr) 152 use petscdmdef 153 PetscSection section 154 Vec v 155 PetscInt point 156 PetscScalar, pointer :: values(:) 157 PetscErrorCode ierr 158 DM m 159 End Subroutine 160 End Interface 161 162 Interface 163 Subroutine DMPlexVecRestoreClosure(m,section,v,point,vs,ierr) 164 use petscdmdef 165 PetscSection section 166 Vec v 167 PetscInt point 168 PetscScalar, pointer :: vs(:) 169 PetscErrorCode ierr 170 DM m 171 End Subroutine 172 End Interface 173 174 Interface 175 Subroutine DMPlexVecSetClosure(m,sec,v,point,vs,mode,ierr) 176 use petscdmdef 177 PetscSection sec 178 Vec v 179 PetscInt point 180 InsertMode mode 181 PetscScalar, pointer :: vs(:) 182 PetscErrorCode ierr 183 DM m 184 End Subroutine 185 End Interface 186 187 Interface 188 Subroutine DMPlexMatSetClosure(m,s,gS,A,p,v,mode,ierr) 189 use petscdmdef 190 PetscSection s 191 PetscSection gS 192 Mat A 193 PetscInt p 194 InsertMode mode 195 PetscScalar, pointer :: v(:) 196 PetscErrorCode ierr 197 DM m 198 End Subroutine 199 End Interface 200 201 Interface 202 Subroutine DMPlexCreateSection(m,l,nC,nD,nB,bF,bC,bP,pm,sc,e) 203 use petscdmdef 204 PetscSection sc 205 PetscInt nB 206 DMLabel, pointer :: l(:) 207 PetscInt, pointer :: nC(:) 208 PetscInt, pointer :: nD(:) 209 PetscInt, pointer :: bF(:) 210 IS, pointer :: bC(:) 211 IS, pointer :: bP(:) 212 IS pm 213 PetscErrorCode e 214 DM m 215 End Subroutine 216 End Interface 217 218 Interface 219 Subroutine DMPlexComputeCellGeometryAffineFEM(m,c,v0,J,iJ,dJ,er) 220 use petscdmdef 221 PetscInt c 222 PetscReal, pointer :: v0(:) 223 PetscReal, pointer :: J(:) 224 PetscReal, pointer :: iJ(:) 225 PetscReal dJ 226 PetscErrorCode er 227 DM m 228 End Subroutine 229 End Interface 230 231 Interface 232 Subroutine DMPlexComputeCellGeometryFEM(m,c,fe,v0,J,iJ,dJ,er) 233 use petscdmdef 234 PetscInt c 235 PetscReal, pointer :: v0(:) 236 PetscReal, pointer :: J(:) 237 PetscReal, pointer :: iJ(:) 238 PetscReal dJ 239 PetscErrorCode er 240 PetscFE fe 241 DM m 242 End Subroutine 243 End Interface 244 245 Interface 246 Subroutine DMPlexComputeCellGeometryFVM(m,cell,vol,ct,nm,ierr) 247 use petscdmdef 248 PetscInt cell 249 PetscReal vol 250 PetscReal, pointer :: ct(:) 251 PetscReal, pointer :: nm(:) 252 PetscErrorCode ierr 253 DM m 254 End Subroutine 255 End Interface 256 257 Interface 258 Subroutine DMPlexGetCellFields(m,s,e,x,xt,a,u,ut,v,ierr) 259 use petscdmdef 260 PetscInt s, e 261 Vec x, xt, a 262 PetscScalar, pointer :: u(:) 263 PetscScalar, pointer :: ut(:) 264 PetscScalar, pointer :: v(:) 265 PetscErrorCode ierr 266 DM m 267 End Subroutine 268 End Interface 269 270 Interface 271 Subroutine DMPlexRestoreCellFields(m,s,e,x,xt,a,u,ut,v,ierr) 272 use petscdmdef 273 PetscInt s, e 274 Vec x, xt, a 275 PetscScalar, pointer :: u(:) 276 PetscScalar, pointer :: ut(:) 277 PetscScalar, pointer :: v(:) 278 PetscErrorCode ierr 279 DM m 280 End Subroutine 281 End Interface 282 283 Interface 284 Subroutine DMPlexGetFaceFields(m,s,e,x,xt,f,c,g,uL,uR,ierr) 285 use petscdmdef 286 PetscInt s, e 287 Vec x, xt, f, c, g 288 PetscScalar, pointer :: uL(:) 289 PetscScalar, pointer :: uR(:) 290 PetscErrorCode ierr 291 DM m 292 End Subroutine 293 End Interface 294 295 Interface 296 Subroutine DMPlexRestoreFaceFields(m,s,e,x,xt,f,c,g,uL,uR,ierr) 297 use petscdmdef 298 PetscInt s, e 299 Vec x, xt, f, c, g 300 PetscScalar, pointer :: uL(:) 301 PetscScalar, pointer :: uR(:) 302 PetscErrorCode ierr 303 DM m 304 End Subroutine 305 End Interface 306 307 Interface 308 Subroutine DMPlexGetFaceGeometry(m,s,e,f,c,g,v,ierr) 309 use petscdmdef 310 PetscInt s, e 311 Vec f, c 312 PetscScalar, pointer :: g(:) 313 PetscScalar, pointer :: v(:) 314 PetscErrorCode ierr 315 DM m 316 End Subroutine 317 End Interface 318 319 Interface 320 Subroutine DMPlexRestoreFaceGeometry(m,s,e,f,c,g,v,ierr) 321 use petscdmdef 322 PetscInt s, e 323 Vec f, c 324 PetscScalar, pointer :: g(:) 325 PetscScalar, pointer :: v(:) 326 PetscErrorCode ierr 327 DM m 328 End Subroutine 329 End Interface 330 331 Interface 332 Subroutine DMPlexCreateFromFile(c,str,i,m,ierr) 333 use petscdmdef 334 MPI_Comm :: c 335 character(len=*) :: str 336 PetscBool, intent(in) :: i 337 DM, intent(out) :: m 338 PetscErrorCode, intent(out):: ierr 339 End Subroutine 340 End Interface 341 342 Interface 343 Subroutine DMPlexDistribute(m,o,sf,mp,ierr) 344 use petscdmdef 345 DM, intent(in) :: m 346 PetscInt, intent(in) :: o 347 PetscSF :: sf 348 DM, intent(out) :: mp 349 PetscErrorCode, intent(out):: ierr 350 End Subroutine 351 End Interface 352 353 Interface 354 Subroutine DMPlexCreateDefault(m,ierr) 355 use petscdmdef 356 DM, intent(out) :: m 357 PetscErrorCode, intent(out):: ierr 358 End Subroutine 359 End Interface 360