PetscSF Object: 4 MPI processes type: basic [0] Number of roots=6, leaves=4, remote ranks=2 [0] 0 <- (3,1) [0] 1 <- (1,0) [0] 2 <- (3,3) [0] 3 <- (1,2) [1] Number of roots=4, leaves=6, remote ranks=2 [1] 0 <- (0,1) [1] 1 <- (2,0) [1] 2 <- (0,2) [1] 3 <- (0,4) [1] 4 <- (2,2) [1] 5 <- (0,5) [2] Number of roots=4, leaves=6, remote ranks=3 [2] 0 <- (1,1) [2] 1 <- (3,0) [2] 2 <- (0,2) [2] 3 <- (1,3) [2] 4 <- (3,2) [2] 5 <- (0,5) [3] Number of roots=4, leaves=6, remote ranks=2 [3] 0 <- (2,1) [3] 1 <- (0,0) [3] 2 <- (0,2) [3] 3 <- (2,3) [3] 4 <- (0,3) [3] 5 <- (0,5) [0] Roots referenced by my leaves, by rank [0] 1: 2 edges [0] 1 <- 0 [0] 3 <- 2 [0] 3: 2 edges [0] 0 <- 1 [0] 2 <- 3 [1] Roots referenced by my leaves, by rank [1] 0: 4 edges [1] 0 <- 1 [1] 2 <- 2 [1] 3 <- 4 [1] 5 <- 5 [1] 2: 2 edges [1] 1 <- 0 [1] 4 <- 2 [2] Roots referenced by my leaves, by rank [2] 0: 2 edges [2] 2 <- 2 [2] 5 <- 5 [2] 1: 2 edges [2] 0 <- 1 [2] 3 <- 3 [2] 3: 2 edges [2] 1 <- 0 [2] 4 <- 2 [3] Roots referenced by my leaves, by rank [3] 0: 4 edges [3] 1 <- 0 [3] 2 <- 2 [3] 4 <- 3 [3] 5 <- 5 [3] 2: 2 edges [3] 0 <- 1 [3] 3 <- 3 MultiSF sort=rank-order ## Bcast Rootdata [0] 0: 100 101 102 103 104 105 [1] 0: 200 201 202 203 [2] 0: 300 301 302 303 [3] 0: 400 401 402 403 ## Bcast Leafdata [0] 0: 401 200 403 202 [1] 0: 101 300 102 104 302 105 [2] 0: 201 400 102 203 402 105 [3] 0: 301 100 102 303 103 105 ## Bcast Rootdata in type of char 0: A B C D E F 1: D E F G 2: G H I J 3: J K L M ## Bcast Leafdata in type of char 0: K D M F 1: B G C E I F 2: E J C G L F 3: H A C J D F ## Pre-Reduce Rootdata [0] 0: 100 101 102 103 104 105 [1] 0: 200 201 202 203 [2] 0: 300 301 302 303 [3] 0: 400 401 402 403 ## Reduce Leafdata [0] 0: 1000 1010 1020 1030 [1] 0: 2000 2010 2020 2030 2040 2050 [2] 0: 3000 3010 3020 3030 3040 3050 [3] 0: 4000 4010 4020 4030 4040 4050 ## Reduce Rootdata [0] 0: 4110 2101 9162 4143 2134 9255 [1] 0: 1210 3201 1232 3233 [2] 0: 2310 4301 2342 4333 [3] 0: 3410 1401 3442 1423 ## Pre-Reduce Rootdata in type of signed char 0: 10 11 12 13 14 15 1: 20 21 22 23 2: 30 31 32 33 3: 40 41 42 43 ## Reduce Leafdata in type of signed char 0: 50 60 70 80 1: 100 110 120 -126 -116 -106 2: -106 -96 -86 -76 -66 -56 3: -56 -46 -36 -26 -16 -6 ## Reduce Rootdata in type of signed char 0: -36 111 10 -3 -112 103 1: 80 -85 102 -53 2: -116 -25 -84 7 3: -56 91 -24 113 ## Pre-Reduce Rootdata in type of unsigned char 0: 10 11 12 13 14 15 1: 20 21 22 23 2: 30 31 32 33 3: 40 41 42 43 ## Reduce Leafdata in type of unsigned char 0: 50 60 70 80 1: 100 110 120 130 140 150 2: 150 160 170 180 190 200 3: 200 210 220 230 240 250 ## Reduce Rootdata in type of unsigned char 0: 220 111 10 253 144 103 1: 80 171 102 203 2: 140 231 172 7 3: 200 91 232 113 ## Root degrees [0] 0: 1 1 3 1 1 3 [1] 0: 1 1 1 1 [2] 0: 1 1 1 1 [3] 0: 1 1 1 1 ## Gathered data at multi-roots from leaves [0] 0: 4001 2000 2002 3002 4002 4004 2003 2005 3005 4005 [1] 0: 1001 3000 1003 3003 [2] 0: 2001 4000 2004 4003 [3] 0: 3001 1000 3004 1002 ## Data at multi-roots, to scatter to leaves [0] 0: 1000 1100 1200 1201 1202 1300 1400 1500 1501 1502 [1] 0: 2000 2100 2200 2300 [2] 0: 3000 3100 3200 3300 [3] 0: 4000 4100 4200 4300 ## Scattered data at leaves [0] 0: 4100 2000 4300 2200 [1] 0: 1100 3000 1200 1400 3200 1500 [2] 0: 2100 4000 1201 2300 4200 1501 [3] 0: 3100 1000 1202 3300 1300 1502 ## Embedded PetscSF PetscSF Object: 4 MPI processes type: basic [0] Number of roots=6, leaves=1, remote ranks=1 [0] 0 <- (3,1) [1] Number of roots=4, leaves=2, remote ranks=1 [1] 0 <- (0,1) [1] 2 <- (0,2) [2] Number of roots=4, leaves=2, remote ranks=2 [2] 0 <- (1,1) [2] 2 <- (0,2) [3] Number of roots=4, leaves=2, remote ranks=2 [3] 0 <- (2,1) [3] 2 <- (0,2) [0] Roots referenced by my leaves, by rank [0] 3: 1 edges [0] 0 <- 1 [1] Roots referenced by my leaves, by rank [1] 0: 2 edges [1] 0 <- 1 [1] 2 <- 2 [2] Roots referenced by my leaves, by rank [2] 0: 1 edges [2] 2 <- 2 [2] 1: 1 edges [2] 0 <- 1 [3] Roots referenced by my leaves, by rank [3] 0: 1 edges [3] 2 <- 2 [3] 2: 1 edges [3] 0 <- 1 MultiSF sort=rank-order ## Multi-SF PetscSF Object: 4 MPI processes type: basic [0] Number of roots=10, leaves=4, remote ranks=2 [0] 0 <- (3,1) [0] 1 <- (1,0) [0] 2 <- (3,3) [0] 3 <- (1,2) [1] Number of roots=4, leaves=6, remote ranks=2 [1] 0 <- (0,1) [1] 1 <- (2,0) [1] 2 <- (0,2) [1] 3 <- (0,6) [1] 4 <- (2,2) [1] 5 <- (0,7) [2] Number of roots=4, leaves=6, remote ranks=3 [2] 0 <- (1,1) [2] 1 <- (3,0) [2] 2 <- (0,3) [2] 3 <- (1,3) [2] 4 <- (3,2) [2] 5 <- (0,8) [3] Number of roots=4, leaves=6, remote ranks=2 [3] 0 <- (2,1) [3] 1 <- (0,0) [3] 2 <- (0,4) [3] 3 <- (2,3) [3] 4 <- (0,5) [3] 5 <- (0,9) MultiSF sort=rank-order ## Multi-SF roots indices in original SF roots numbering [0] 0: 0 1 2 2 2 3 4 5 5 5 [1] 0: 0 1 2 3 [2] 0: 0 1 2 3 [3] 0: 0 1 2 3 ## Inverse of Multi-SF PetscSF Object: 4 MPI processes type: basic [0] Number of roots=4, leaves=10, remote ranks=3 [0] 0 <- (3,1) [0] 1 <- (1,0) [0] 2 <- (1,2) [0] 3 <- (2,2) [0] 4 <- (3,2) [0] 5 <- (3,4) [0] 6 <- (1,3) [0] 7 <- (1,5) [0] 8 <- (2,5) [0] 9 <- (3,5) [1] Number of roots=6, leaves=4, remote ranks=2 [1] 0 <- (0,1) [1] 1 <- (2,0) [1] 2 <- (0,3) [1] 3 <- (2,3) [2] Number of roots=6, leaves=4, remote ranks=2 [2] 0 <- (1,1) [2] 1 <- (3,0) [2] 2 <- (1,4) [2] 3 <- (3,3) [3] Number of roots=6, leaves=4, remote ranks=2 [3] 0 <- (2,1) [3] 1 <- (0,0) [3] 2 <- (2,4) [3] 3 <- (0,2) MultiSF sort=rank-order ## Inverse of Multi-SF, original numbering [0] Number of roots=4, leaves=10, remote ranks=3 [0] 0 <- (3,1) [0] 1 <- (1,0) [0] 2 <- (1,2) [0] 2 <- (2,2) [0] 2 <- (3,2) [0] 3 <- (3,4) [0] 4 <- (1,3) [0] 5 <- (1,5) [0] 5 <- (2,5) [0] 5 <- (3,5) [1] Number of roots=6, leaves=4, remote ranks=2 [1] 0 <- (0,1) [1] 1 <- (2,0) [1] 2 <- (0,3) [1] 3 <- (2,3) [2] Number of roots=6, leaves=4, remote ranks=2 [2] 0 <- (1,1) [2] 1 <- (3,0) [2] 2 <- (1,4) [2] 3 <- (3,3) [3] Number of roots=6, leaves=4, remote ranks=2 [3] 0 <- (2,1) [3] 1 <- (0,0) [3] 2 <- (2,4) [3] 3 <- (0,2)