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