Date: 2022-03-31T04:47:42+00:00

Actual source code: petscdmplex.h90

      2:       Interface
      3:         Subroutine DMPlexGetCone(m,p,cone,ierr)
      4:           import tDM
      5:           PetscInt     p
      6:           PetscInt, pointer :: cone(:)
      7:           PetscErrorCode ierr
      8:           DM m
      9:         End Subroutine
     10:       End Interface

     12:       Interface
     13:         Subroutine DMPlexRestoreCone(m,p,cone,ierr)
     14:           import tDM
     15:           PetscInt     p
     16:           PetscInt, pointer :: cone(:)
     17:           PetscErrorCode ierr
     18:           DM m
     19:         End Subroutine
     20:       End Interface

     22:       Interface
     23:         Subroutine DMPlexGetConeOrientation(m,p,coneOrient,ierr)
     24:           import tDM
     25:           PetscInt     p
     26:           PetscInt, pointer :: coneOrient(:)
     27:           PetscErrorCode ierr
     28:           DM m
     29:         End Subroutine
     30:       End Interface

     32:       Interface
     33:         Subroutine DMPlexRestoreConeOrientation(m,p,coneOrient,ierr)
     34:           import tDM
     35:           PetscInt     p
     36:           PetscInt, pointer :: coneOrient(:)
     37:           PetscErrorCode ierr
     38:           DM m
     39:         End Subroutine
     40:       End Interface

     42:       Interface
     43:         Subroutine DMPlexGetSupport(m,p,support,ierr)
     44:           import tDM
     45:           PetscInt     p
     46:           PetscInt, pointer :: support(:)
     47:           PetscErrorCode ierr
     48:           DM m
     49:         End Subroutine
     50:       End Interface

     52:       Interface
     53:         Subroutine DMPlexRestoreSupport(m,p,support,ierr)
     54:           import tDM
     55:           PetscInt     p
     56:           PetscInt, pointer :: support(:)
     57:           PetscErrorCode ierr
     58:           DM m
     59:         End Subroutine
     60:       End Interface

     62:       Interface
     63:         Subroutine DMPlexGetTransitiveClosure(m,p,useCone,points,ierr)
     64:           import tDM
     65:           PetscInt     p
     66:           PetscBool    useCone
     67:           PetscInt, pointer :: points(:)
     68:           PetscErrorCode ierr
     69:           DM m
     70:         End Subroutine
     71:       End Interface

     73:       Interface
     74:         Subroutine DMPlexRestoreTransitiveClosure(m,p,uC,points,ierr)
     75:           import tDM
     76:           PetscInt     p
     77:           PetscBool    uC
     78:           PetscInt, pointer :: points(:)
     79:           PetscErrorCode ierr
     80:           DM m
     81:         End Subroutine
     82:       End Interface

     84:       Interface
     85:         Subroutine DMPlexGetJoin(m,numPoints,points,join,ierr)
     86:           import tDM
     87:           PetscInt     numPoints
     88:           PetscInt, pointer :: points(:)
     89:           PetscInt, pointer :: join(:)
     90:           PetscErrorCode ierr
     91:           DM m
     92:         End Subroutine
     93:       End Interface

     95:       Interface
     96:         Subroutine DMPlexGetFullJoin(m,numPoints,points,join,ierr)
     97:           import tDM
     98:           PetscInt     numPoints
     99:           PetscInt, pointer :: points(:)
    100:           PetscInt, pointer :: join(:)
    101:           PetscErrorCode ierr
    102:           DM m
    103:         End Subroutine
    104:       End Interface

    106:       Interface
    107:         Subroutine DMPlexRestoreJoin(m,numPoints,points,join,ierr)
    108:           import tDM
    109:           PetscInt     numPoints
    110:           PetscInt, pointer :: points(:)
    111:           PetscInt, pointer :: join(:)
    112:           PetscErrorCode ierr
    113:           DM m
    114:         End Subroutine
    115:       End Interface

    117:       Interface
    118:         Subroutine DMPlexGetMeet(m,numPoints,points,meet,ierr)
    119:           import tDM
    120:           PetscInt     numPoints
    121:           PetscInt, pointer :: points(:)
    122:           PetscInt, pointer :: meet(:)
    123:           PetscErrorCode ierr
    124:           DM m
    125:         End Subroutine
    126:       End Interface

    128:       Interface
    129:         Subroutine DMPlexGetFullMeet(m,numPoints,points,meet,ierr)
    130:           import tDM
    131:           PetscInt     numPoints
    132:           PetscInt, pointer :: points(:)
    133:           PetscInt, pointer :: meet(:)
    134:           PetscErrorCode ierr
    135:           DM m
    136:         End Subroutine
    137:       End Interface

    139:       Interface
    140:         Subroutine DMPlexRestoreMeet(m,numPoints,points,meet,ierr)
    141:           import tDM
    142:           PetscInt     numPoints
    143:           PetscInt, pointer :: points(:)
    144:           PetscInt, pointer :: meet(:)
    145:           PetscErrorCode ierr
    146:           DM m
    147:         End Subroutine
    148:       End Interface

    150:       Interface
    151:         Subroutine DMPlexVecGetClosure(m,section,v,point,values,ierr)
    152:           import tDM,tPetscSection,tVec
    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

    162:       Interface
    163:         Subroutine DMPlexVecRestoreClosure(m,section,v,point,vs,ierr)
    164:           import tDM,tPetscSection,tVec
    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

    174:       Interface
    175:         Subroutine DMPlexVecSetClosure(m,sec,v,point,vs,mode,ierr)
    176:           import tDM,tPetscSection,tVec
    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

    187:       Interface
    188:         Subroutine DMPlexMatSetClosure(m,s,gS,A,p,v,mode,ierr)
    189:           import tDM,tPetscSection,tMat
    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

    201:       Interface
    202:         Subroutine DMPlexCreateSection(m,l,nC,nD,nB,bF,bC,bP,pm,sc,e)
    203:           import tDM,tPetscSection,tIS,tDMLabel
    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

    218:       Interface
    219:         Subroutine DMPlexComputeCellGeometryAffineFEM(m,c,v0,J,iJ,dJ,er)
    220:           import tDM
    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

    231:       Interface
    232:         Subroutine DMPlexComputeCellGeometryFEM(m,c,fe,v0,J,iJ,dJ,er)
    233:           import tDM
    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

    245:       Interface
    246:         Subroutine DMPlexComputeCellGeometryFVM(m,cell,vol,ct,nm,ierr)
    247:           import tDM
    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

    257:       Interface
    258:         Subroutine DMPlexGetCellFields(m,c,x,xt,a,u,ut,v,ierr)
    259:           import tDM,tIS,tVec
    260:           IS  c
    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

    270:       Interface
    271:         Subroutine DMPlexRestoreCellFields(m,c,x,xt,a,u,ut,v,ierr)
    272:           import tDM,tIS,tVec
    273:           IS  c
    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

    283:       Interface
    284:         Subroutine DMPlexGetFaceFields(m,s,e,x,xt,f,c,g,n,uL,uR,ierr)
    285:           import tDM,tVec
    286:           PetscInt  s, e, n
    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

    295:       Interface
    296:         Subroutine DMPlexRestoreFaceFields(m,s,e,x,xt,f,c,g,n,uL,uR,ierr)
    297:           import tDM,tVec
    298:           PetscInt  s, e, n
    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

    307:       Interface
    308:         Subroutine DMPlexGetFaceGeometry(m,s,e,f,c,n,g,v,ierr)
    309:           import tDM,tVec
    310:           PetscInt  s, e, n
    311:           Vec  f, c
    312:           PetscScalar, pointer :: g(:)
    313:           PetscScalar, pointer :: v(:)
    314:           PetscErrorCode ierr
    315:           DM m
    316:         End Subroutine
    317:       End Interface

    319:       Interface
    320:         Subroutine DMPlexRestoreFaceGeometry(m,s,e,f,c,n,g,v,ierr)
    321:           import tDM,tVec
    322:           PetscInt  s, e, n
    323:           Vec  f, c
    324:           PetscScalar, pointer :: g(:)
    325:           PetscScalar, pointer :: v(:)
    326:           PetscErrorCode ierr
    327:           DM m
    328:         End Subroutine
    329:       End Interface

    331:       Interface
    332:         Subroutine DMPlexCreateFromFile(c,str,pstr,i,m,ierr)
    333:           import tDM
    334:           MPI_Comm :: c
    335:           character(len=*) :: str
    336:           character(len=*) :: pstr
    337:           PetscBool, intent(in) :: i
    338:           DM, intent(out) :: m
    339:           PetscErrorCode, intent(out):: ierr
    340:         End Subroutine
    341:       End Interface

    343:       Interface
    344:         Subroutine DMPlexDistribute(m,o,sf,mp,ierr)
    345:           import tDM,tPetscSF
    346:           DM, intent(in) :: m
    347:           PetscInt, intent(in) :: o
    348:           PetscSF :: sf
    349:           DM, intent(out) :: mp
    350:           PetscErrorCode, intent(out):: ierr
    351:         End Subroutine
    352:       End Interface

    354:       Interface
    355:         Subroutine DMPlexCreateDefault(m,ierr)
    356:           import tDM
    357:           DM, intent(out) :: m
    358:           PetscErrorCode, intent(out):: ierr
    359:         End Subroutine
    360:       End Interface

    362:       Interface
    363:         Subroutine PetscViewerExodusIIOpen(c,str,mode,v,ierr)
    364:           import tPetscViewer
    365:           MPI_Comm                     :: c
    366:           character(len=*)             :: str
    367:           PetscFileMode                :: mode
    368:           PetscViewer                  :: v
    369:           PetscErrorCode, intent(out)  :: ierr
    370:         End Subroutine
    371:       End Interface