xref: /petsc/include/petscdmnetwork.h (revision b2930b4143e7f606a677aed88a2b5b8ee16fea20)
1*b2930b41SShri Abhyankar /*
2*b2930b41SShri Abhyankar   DMNetwork, for parallel unstructured network problems.
3*b2930b41SShri Abhyankar */
4*b2930b41SShri Abhyankar #if !defined(__PETSCDMNETWORK_H)
5*b2930b41SShri Abhyankar #define __PETSCDMNETWORK_H
6*b2930b41SShri Abhyankar 
7*b2930b41SShri Abhyankar #include <petscdm.h>
8*b2930b41SShri Abhyankar 
9*b2930b41SShri Abhyankar /*
10*b2930b41SShri Abhyankar   DMNetworkComponentGenericDataType - This is the data type that PETSc uses for storing the component data.
11*b2930b41SShri Abhyankar             For compatibility with PetscSF, which is used for data distribution, its declared as PetscInt.
12*b2930b41SShri Abhyankar 	    To get the user-specific data type, one needs to cast it to the appropriate type.
13*b2930b41SShri Abhyankar */
14*b2930b41SShri Abhyankar typedef PetscInt DMNetworkComponentGenericDataType;
15*b2930b41SShri Abhyankar 
16*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkCreate(MPI_Comm, DM*);
17*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkSetSizes(DM, PetscInt, PetscInt, PetscInt, PetscInt);
18*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkSetEdgeList(DM, int[]);
19*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkLayoutSetUp(DM);
20*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkRegisterComponent(DM, const char*, PetscInt, PetscInt*);
21*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetVertexRange(DM, PetscInt*, PetscInt*);
22*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetEdgeRange(DM, PetscInt*, PetscInt*);
23*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkAddComponent(DM, PetscInt, PetscInt, void*);
24*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetNumComponents(DM, PetscInt, PetscInt*);
25*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetComponentTypeOffset(DM, PetscInt, PetscInt, PetscInt*, PetscInt*);
26*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetVariableOffset(DM, PetscInt, PetscInt*);
27*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetVariableGlobalOffset(DM, PetscInt, PetscInt*);
28*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkAddNumVariables(DM, PetscInt, PetscInt);
29*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkSetNumVariables(DM, PetscInt, PetscInt);
30*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetComponentDataArray(DM, DMNetworkComponentGenericDataType**);
31*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkDistribute(DM, const char[], PetscInt,DM*);
32*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetSupportingEdges(DM, PetscInt, PetscInt*, const PetscInt*[]);
33*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkGetConnectedNodes(DM, PetscInt, const PetscInt*[]);
34*b2930b41SShri Abhyankar PETSC_EXTERN PetscErrorCode DMNetworkIsGhostVertex(DM, PetscInt, PetscBool*);
35*b2930b41SShri Abhyankar 
36*b2930b41SShri Abhyankar 
37*b2930b41SShri Abhyankar #endif
38