xref: /petsc/include/petscdmcomposite.h (revision 5b6bfdb9644f185dbf5e5a09b808ec241507e1e7)
1 /* "Unintrusive" multi-physics DM */
2 #if !defined(__PETSCDMCOMPOSITE_H)
3 #define __PETSCDMCOMPOSITE_H
4 
5 #include <petscdm.h>
6 
7 PETSC_EXTERN PetscErrorCode DMCompositeCreate(MPI_Comm,DM*);
8 PETSC_EXTERN PetscErrorCode DMCompositeAddDM(DM,DM);
9 PETSC_EXTERN PetscErrorCode DMCompositeSetCoupling(DM,PetscErrorCode (*)(DM,Mat,PetscInt*,PetscInt*,PetscInt,PetscInt,PetscInt,PetscInt));
10 PETSC_EXTERN PetscErrorCode DMCompositeAddVecScatter(DM,VecScatter);
11 PETSC_EXTERN PetscErrorCode DMCompositeScatter(DM,Vec,...);
12 PETSC_EXTERN PetscErrorCode DMCompositeScatterArray(DM,Vec,Vec*);
13 PETSC_EXTERN PetscErrorCode DMCompositeGather(DM,InsertMode,Vec,...);
14 PETSC_EXTERN PetscErrorCode DMCompositeGatherArray(DM,InsertMode,Vec,Vec*);
15 PETSC_EXTERN PetscErrorCode DMCompositeGetNumberDM(DM,PetscInt*);
16 PETSC_EXTERN PetscErrorCode DMCompositeGetAccess(DM,Vec,...);
17 PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccess(DM,Vec,...);
18 PETSC_EXTERN PetscErrorCode DMCompositeGetAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
19 PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
20 PETSC_EXTERN PetscErrorCode DMCompositeGetLocalAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
21 PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
22 PETSC_EXTERN PetscErrorCode DMCompositeGetLocalVectors(DM,...);
23 PETSC_EXTERN PetscErrorCode DMCompositeGetEntries(DM,...);
24 PETSC_EXTERN PetscErrorCode DMCompositeGetEntriesArray(DM,DM[]);
25 PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalVectors(DM,...);
26 PETSC_EXTERN PetscErrorCode DMCompositeGetGlobalISs(DM,IS*[]);
27 PETSC_EXTERN PetscErrorCode DMCompositeGetLocalISs(DM,IS**);
28 PETSC_EXTERN PetscErrorCode DMCompositeGetISLocalToGlobalMappings(DM,ISLocalToGlobalMapping**);
29 
30 #endif
31