xref: /petsc/include/petscdmnetwork.h (revision 0be93d5497ac86d873d9630e3d029b5182065950)
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, const char[], 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