13c48a1e8SJed Brown /* "Unintrusive" multi-physics DM */ 2*a4963045SJacob Faibussowitsch #pragma once 33c48a1e8SJed Brown 42c8e378dSBarry Smith #include <petscdm.h> 53c48a1e8SJed Brown 6014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeCreate(MPI_Comm, DM *); 7014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddDM(DM, DM); 8014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeSetCoupling(DM, PetscErrorCode (*)(DM, Mat, PetscInt *, PetscInt *, PetscInt, PetscInt, PetscInt, PetscInt)); 9014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeAddVecScatter(DM, VecScatter); 10014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeScatter(DM, Vec, ...); 116f3c3dcfSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeScatterArray(DM, Vec, Vec *); 121dac896bSSatish Balay PETSC_EXTERN PetscErrorCode DMCompositeGather(DM, InsertMode, Vec, ...); 131dac896bSSatish Balay PETSC_EXTERN PetscErrorCode DMCompositeGatherArray(DM, InsertMode, Vec, Vec *); 14014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetNumberDM(DM, PetscInt *); 15f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetAccess(DM, Vec, ...); 16014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccess(DM, Vec, ...); 17f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetAccessArray(DM, Vec, PetscInt, const PetscInt *, Vec *); 18f73e5cebSJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreAccessArray(DM, Vec, PetscInt, const PetscInt *, Vec *); 197ac2b803SAlex Fikl PETSC_EXTERN PetscErrorCode DMCompositeGetLocalAccessArray(DM, Vec, PetscInt, const PetscInt *, Vec *); 207ac2b803SAlex Fikl PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalAccessArray(DM, Vec, PetscInt, const PetscInt *, Vec *); 21014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalVectors(DM, ...); 22014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntries(DM, ...); 23014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetEntriesArray(DM, DM[]); 24014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeRestoreLocalVectors(DM, ...); 25014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetGlobalISs(DM, IS *[]); 26014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetLocalISs(DM, IS **); 27014dd563SJed Brown PETSC_EXTERN PetscErrorCode DMCompositeGetISLocalToGlobalMappings(DM, ISLocalToGlobalMapping **); 28