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