13c48a1e8SJed Brown /* "Unintrusive" multi-physics DM */ 23c48a1e8SJed Brown #if !defined(__PETSCDMCOMPOSITE_H) 33c48a1e8SJed Brown #define __PETSCDMCOMPOSITE_H 43c48a1e8SJed Brown 53c48a1e8SJed Brown #include "petscdm.h" 63c48a1e8SJed Brown 7*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeCreate(MPI_Comm,DM*); 8*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddDM(DM,DM); 9*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeSetCoupling(DM,PetscErrorCode (*)(DM,Mat,PetscInt*,PetscInt*,PetscInt,PetscInt,PetscInt,PetscInt)); 10*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddVecScatter(DM,VecScatter); 11*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeScatter(DM,Vec,...); 12*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGather(DM,Vec,InsertMode,...); 13*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetAccess(DM,Vec,...); 14*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetNumberDM(DM,PetscInt*); 15*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccess(DM,Vec,...); 16*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalVectors(DM,...); 17*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntries(DM,...); 18*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntriesArray(DM,DM[]); 19*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalVectors(DM,...); 20*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetGlobalISs(DM,IS*[]); 21*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalISs(DM,IS**); 22*014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetISLocalToGlobalMappings(DM,ISLocalToGlobalMapping**); 233c48a1e8SJed Brown 243c48a1e8SJed Brown #endif 25