xref: /petsc/src/binding/petsc4py/src/petsc4py/PETSc/petscsf.pxi (revision 552edb6364df478b294b3111f33a8f37ca096b20)
1# --------------------------------------------------------------------
2
3cdef extern from * nogil:
4
5    ctypedef const char* PetscSFType
6    PetscSFType PETSCSFBASIC
7    PetscSFType PETSCSFNEIGHBOR
8    PetscSFType PETSCSFALLGATHERV
9    PetscSFType PETSCSFALLGATHER
10    PetscSFType PETSCSFGATHERV
11    PetscSFType PETSCSFGATHER
12    PetscSFType PETSCSFALLTOALL
13    PetscSFType PETSCSFWINDOW
14
15    PetscErrorCode PetscSFCreate(MPI_Comm, PetscSF*)
16    PetscErrorCode PetscSFSetType(PetscSF, PetscSFType)
17    PetscErrorCode PetscSFGetType(PetscSF, PetscSFType*)
18    PetscErrorCode PetscSFSetFromOptions(PetscSF)
19    PetscErrorCode PetscSFSetUp(PetscSF)
20    PetscErrorCode PetscSFView(PetscSF, PetscViewer)
21    PetscErrorCode PetscSFReset(PetscSF)
22    PetscErrorCode PetscSFDestroy(PetscSF*)
23
24    ctypedef struct PetscSFNode:
25        PetscInt rank
26        PetscInt index
27    PetscErrorCode PetscSFGetGraph(PetscSF, PetscInt*, PetscInt*, const PetscInt**, const PetscSFNode**)
28    PetscErrorCode PetscSFSetGraph(PetscSF, PetscInt, PetscInt, const PetscInt*, PetscCopyMode, PetscSFNode*, PetscCopyMode)
29    PetscErrorCode PetscSFSetRankOrder(PetscSF, PetscBool)
30
31    PetscErrorCode PetscSFComputeDegreeBegin(PetscSF, const PetscInt**)
32    PetscErrorCode PetscSFComputeDegreeEnd(PetscSF, const PetscInt**)
33    PetscErrorCode PetscSFGetMultiSF(PetscSF, PetscSF*)
34    PetscErrorCode PetscSFCreateInverseSF(PetscSF, PetscSF*)
35
36    PetscErrorCode PetscSFCreateEmbeddedRootSF(PetscSF, PetscInt, const PetscInt*, PetscSF*)
37    PetscErrorCode PetscSFCreateEmbeddedLeafSF(PetscSF, PetscInt, const PetscInt*, PetscSF*)
38
39    PetscErrorCode PetscSFDistributeSection(PetscSF, PetscSection, PetscInt**, PetscSection)
40    PetscErrorCode PetscSFCreateSectionSF(PetscSF, PetscSection, PetscInt*, PetscSection, PetscSF*)
41
42    PetscErrorCode PetscSFCompose(PetscSF, PetscSF, PetscSF*)
43
44    PetscErrorCode PetscSFBcastBegin(PetscSF, MPI_Datatype, const void*, void*, MPI_Op)
45    PetscErrorCode PetscSFBcastEnd(PetscSF, MPI_Datatype, const void*, void*, MPI_Op)
46    PetscErrorCode PetscSFReduceBegin(PetscSF, MPI_Datatype, const void*, void*, MPI_Op)
47    PetscErrorCode PetscSFReduceEnd(PetscSF, MPI_Datatype, const void*, void*, MPI_Op)
48    PetscErrorCode PetscSFScatterBegin(PetscSF, MPI_Datatype, const void*, void*)
49    PetscErrorCode PetscSFScatterEnd(PetscSF, MPI_Datatype, const void*, void*)
50    PetscErrorCode PetscSFGatherBegin(PetscSF, MPI_Datatype, const void*, void*)
51    PetscErrorCode PetscSFGatherEnd(PetscSF, MPI_Datatype, const void*, void*)
52    PetscErrorCode PetscSFFetchAndOpBegin(PetscSF, MPI_Datatype, void*, const void*, void*, MPI_Op)
53    PetscErrorCode PetscSFFetchAndOpEnd(PetscSF, MPI_Datatype, void*, const void*, void*, MPI_Op)
54