13c48a1e8SJed Brown /* "Unintrusive" multi-physics DM */ 23c48a1e8SJed Brown #if !defined(__PETSCDMCOMPOSITE_H) 33c48a1e8SJed Brown #define __PETSCDMCOMPOSITE_H 43c48a1e8SJed Brown 52c8e378dSBarry Smith #include <petscdm.h> 63c48a1e8SJed Brown 7014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeCreate(MPI_Comm,DM*); 8014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddDM(DM,DM); 9014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeSetCoupling(DM,PetscErrorCode (*)(DM,Mat,PetscInt*,PetscInt*,PetscInt,PetscInt,PetscInt,PetscInt)); 10014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddVecScatter(DM,VecScatter); 11014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeScatter(DM,Vec,...); 12014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGather(DM,Vec,InsertMode,...); 13014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetNumberDM(DM,PetscInt*); 14*f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetAccess(DM,Vec,...); 15014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccess(DM,Vec,...); 16*f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*); 17*f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccessArray(DM,Vec,PetscInt,const PetscInt*,Vec*); 18014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalVectors(DM,...); 19014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntries(DM,...); 20014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntriesArray(DM,DM[]); 21014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalVectors(DM,...); 22014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetGlobalISs(DM,IS*[]); 23014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalISs(DM,IS**); 24014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetISLocalToGlobalMappings(DM,ISLocalToGlobalMapping**); 253c48a1e8SJed Brown 263c48a1e8SJed Brown #endif 27