xref: /petsc/include/petscdmcomposite.h (revision ce94432eddcd14845bc7e8083b7f8ea723b9bf7d)
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 DMCompositeGather(DM,Vec,InsertMode,...);
13 PETSC_EXTERN PetscErrorCode DMCompositeGetNumberDM(DM,PetscInt*);
14 PETSC_EXTERN PetscErrorCode DMCompositeGetAccess(DM,Vec,...);
15 PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccess(DM,Vec,...);
16 PETSC_EXTERN PetscErrorCode DMCompositeGetAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
17 PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*);
18 PETSC_EXTERN PetscErrorCode DMCompositeGetLocalVectors(DM,...);
19 PETSC_EXTERN PetscErrorCode DMCompositeGetEntries(DM,...);
20 PETSC_EXTERN PetscErrorCode DMCompositeGetEntriesArray(DM,DM[]);
21 PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalVectors(DM,...);
22 PETSC_EXTERN PetscErrorCode DMCompositeGetGlobalISs(DM,IS*[]);
23 PETSC_EXTERN PetscErrorCode DMCompositeGetLocalISs(DM,IS**);
24 PETSC_EXTERN PetscErrorCode DMCompositeGetISLocalToGlobalMappings(DM,ISLocalToGlobalMapping**);
25 
26 #endif
27