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