1PetscSF Object: 4 MPI processes 2 type: basic 3 [0] Number of roots=6, leaves=4, remote ranks=2 4 [0] 0 <- (3,1) 5 [0] 1 <- (1,0) 6 [0] 2 <- (3,3) 7 [0] 3 <- (1,2) 8 [1] Number of roots=4, leaves=6, remote ranks=2 9 [1] 0 <- (0,1) 10 [1] 1 <- (2,0) 11 [1] 2 <- (0,2) 12 [1] 3 <- (0,4) 13 [1] 4 <- (2,2) 14 [1] 5 <- (0,5) 15 [2] Number of roots=4, leaves=6, remote ranks=3 16 [2] 0 <- (1,1) 17 [2] 1 <- (3,0) 18 [2] 2 <- (0,2) 19 [2] 3 <- (1,3) 20 [2] 4 <- (3,2) 21 [2] 5 <- (0,5) 22 [3] Number of roots=4, leaves=6, remote ranks=2 23 [3] 0 <- (2,1) 24 [3] 1 <- (0,0) 25 [3] 2 <- (0,2) 26 [3] 3 <- (2,3) 27 [3] 4 <- (0,3) 28 [3] 5 <- (0,5) 29 [0] Roots referenced by my leaves, by rank 30 [0] 1: 2 edges 31 [0] 1 <- 0 32 [0] 3 <- 2 33 [0] 3: 2 edges 34 [0] 0 <- 1 35 [0] 2 <- 3 36 [1] Roots referenced by my leaves, by rank 37 [1] 0: 4 edges 38 [1] 0 <- 1 39 [1] 2 <- 2 40 [1] 3 <- 4 41 [1] 5 <- 5 42 [1] 2: 2 edges 43 [1] 1 <- 0 44 [1] 4 <- 2 45 [2] Roots referenced by my leaves, by rank 46 [2] 0: 2 edges 47 [2] 2 <- 2 48 [2] 5 <- 5 49 [2] 1: 2 edges 50 [2] 0 <- 1 51 [2] 3 <- 3 52 [2] 3: 2 edges 53 [2] 1 <- 0 54 [2] 4 <- 2 55 [3] Roots referenced by my leaves, by rank 56 [3] 0: 4 edges 57 [3] 1 <- 0 58 [3] 2 <- 2 59 [3] 4 <- 3 60 [3] 5 <- 5 61 [3] 2: 2 edges 62 [3] 0 <- 1 63 [3] 3 <- 3 64 MultiSF sort=rank-order 65## Bcast Rootdata 66[0] 0: 100 101 102 103 104 105 67[1] 0: 200 201 202 203 68[2] 0: 300 301 302 303 69[3] 0: 400 401 402 403 70## Bcast Leafdata 71[0] 0: 401 200 403 202 72[1] 0: 101 300 102 104 302 105 73[2] 0: 201 400 102 203 402 105 74[3] 0: 301 100 102 303 103 105 75## Bcast Rootdata in type of char 76 0: A B C D E F 77 1: D E F G 78 2: G H I J 79 3: J K L M 80## Bcast Leafdata in type of char 81 0: K D M F 82 1: B G C E I F 83 2: E J C G L F 84 3: H A C J D F 85## Pre-Reduce Rootdata 86[0] 0: 100 101 102 103 104 105 87[1] 0: 200 201 202 203 88[2] 0: 300 301 302 303 89[3] 0: 400 401 402 403 90## Reduce Leafdata 91[0] 0: 1000 1010 1020 1030 92[1] 0: 2000 2010 2020 2030 2040 2050 93[2] 0: 3000 3010 3020 3030 3040 3050 94[3] 0: 4000 4010 4020 4030 4040 4050 95## Reduce Rootdata 96[0] 0: 4110 2101 9162 4143 2134 9255 97[1] 0: 1210 3201 1232 3233 98[2] 0: 2310 4301 2342 4333 99[3] 0: 3410 1401 3442 1423 100## Pre-Reduce Rootdata in type of signed char 101 0: 10 11 12 13 14 15 102 1: 20 21 22 23 103 2: 30 31 32 33 104 3: 40 41 42 43 105## Reduce Leafdata in type of signed char 106 0: 50 60 70 80 107 1: 100 110 120 -126 -116 -106 108 2: -106 -96 -86 -76 -66 -56 109 3: -56 -46 -36 -26 -16 -6 110## Reduce Rootdata in type of signed char 111 0: -36 111 10 -3 -112 103 112 1: 80 -85 102 -53 113 2: -116 -25 -84 7 114 3: -56 91 -24 113 115## Pre-Reduce Rootdata in type of unsigned char 116 0: 10 11 12 13 14 15 117 1: 20 21 22 23 118 2: 30 31 32 33 119 3: 40 41 42 43 120## Reduce Leafdata in type of unsigned char 121 0: 50 60 70 80 122 1: 100 110 120 130 140 150 123 2: 150 160 170 180 190 200 124 3: 200 210 220 230 240 250 125## Reduce Rootdata in type of unsigned char 126 0: 220 111 10 253 144 103 127 1: 80 171 102 203 128 2: 140 231 172 7 129 3: 200 91 232 113 130## Root degrees 131[0] 0: 1 1 3 1 1 3 132[1] 0: 1 1 1 1 133[2] 0: 1 1 1 1 134[3] 0: 1 1 1 1 135## Gathered data at multi-roots from leaves 136[0] 0: 4001 2000 2002 3002 4002 4004 2003 2005 3005 4005 137[1] 0: 1001 3000 1003 3003 138[2] 0: 2001 4000 2004 4003 139[3] 0: 3001 1000 3004 1002 140## Data at multi-roots, to scatter to leaves 141[0] 0: 1000 1100 1200 1201 1202 1300 1400 1500 1501 1502 142[1] 0: 2000 2100 2200 2300 143[2] 0: 3000 3100 3200 3300 144[3] 0: 4000 4100 4200 4300 145## Scattered data at leaves 146[0] 0: 4100 2000 4300 2200 147[1] 0: 1100 3000 1200 1400 3200 1500 148[2] 0: 2100 4000 1201 2300 4200 1501 149[3] 0: 3100 1000 1202 3300 1300 1502 150## Embedded PetscSF 151PetscSF Object: 4 MPI processes 152 type: basic 153 [0] Number of roots=6, leaves=1, remote ranks=1 154 [0] 0 <- (3,1) 155 [1] Number of roots=4, leaves=2, remote ranks=1 156 [1] 0 <- (0,1) 157 [1] 2 <- (0,2) 158 [2] Number of roots=4, leaves=2, remote ranks=2 159 [2] 0 <- (1,1) 160 [2] 2 <- (0,2) 161 [3] Number of roots=4, leaves=2, remote ranks=2 162 [3] 0 <- (2,1) 163 [3] 2 <- (0,2) 164 [0] Roots referenced by my leaves, by rank 165 [0] 3: 1 edges 166 [0] 0 <- 1 167 [1] Roots referenced by my leaves, by rank 168 [1] 0: 2 edges 169 [1] 0 <- 1 170 [1] 2 <- 2 171 [2] Roots referenced by my leaves, by rank 172 [2] 0: 1 edges 173 [2] 2 <- 2 174 [2] 1: 1 edges 175 [2] 0 <- 1 176 [3] Roots referenced by my leaves, by rank 177 [3] 0: 1 edges 178 [3] 2 <- 2 179 [3] 2: 1 edges 180 [3] 0 <- 1 181 MultiSF sort=rank-order 182## Multi-SF 183PetscSF Object: 4 MPI processes 184 type: basic 185 [0] Number of roots=10, leaves=4, remote ranks=2 186 [0] 0 <- (3,1) 187 [0] 1 <- (1,0) 188 [0] 2 <- (3,3) 189 [0] 3 <- (1,2) 190 [1] Number of roots=4, leaves=6, remote ranks=2 191 [1] 0 <- (0,1) 192 [1] 1 <- (2,0) 193 [1] 2 <- (0,2) 194 [1] 3 <- (0,6) 195 [1] 4 <- (2,2) 196 [1] 5 <- (0,7) 197 [2] Number of roots=4, leaves=6, remote ranks=3 198 [2] 0 <- (1,1) 199 [2] 1 <- (3,0) 200 [2] 2 <- (0,3) 201 [2] 3 <- (1,3) 202 [2] 4 <- (3,2) 203 [2] 5 <- (0,8) 204 [3] Number of roots=4, leaves=6, remote ranks=2 205 [3] 0 <- (2,1) 206 [3] 1 <- (0,0) 207 [3] 2 <- (0,4) 208 [3] 3 <- (2,3) 209 [3] 4 <- (0,5) 210 [3] 5 <- (0,9) 211 MultiSF sort=rank-order 212## Multi-SF roots indices in original SF roots numbering 213[0] 0: 0 1 2 2 2 3 4 5 5 5 214[1] 0: 0 1 2 3 215[2] 0: 0 1 2 3 216[3] 0: 0 1 2 3 217## Inverse of Multi-SF 218PetscSF Object: 4 MPI processes 219 type: basic 220 [0] Number of roots=4, leaves=10, remote ranks=3 221 [0] 0 <- (3,1) 222 [0] 1 <- (1,0) 223 [0] 2 <- (1,2) 224 [0] 3 <- (2,2) 225 [0] 4 <- (3,2) 226 [0] 5 <- (3,4) 227 [0] 6 <- (1,3) 228 [0] 7 <- (1,5) 229 [0] 8 <- (2,5) 230 [0] 9 <- (3,5) 231 [1] Number of roots=6, leaves=4, remote ranks=2 232 [1] 0 <- (0,1) 233 [1] 1 <- (2,0) 234 [1] 2 <- (0,3) 235 [1] 3 <- (2,3) 236 [2] Number of roots=6, leaves=4, remote ranks=2 237 [2] 0 <- (1,1) 238 [2] 1 <- (3,0) 239 [2] 2 <- (1,4) 240 [2] 3 <- (3,3) 241 [3] Number of roots=6, leaves=4, remote ranks=2 242 [3] 0 <- (2,1) 243 [3] 1 <- (0,0) 244 [3] 2 <- (2,4) 245 [3] 3 <- (0,2) 246 MultiSF sort=rank-order 247## Inverse of Multi-SF, original numbering 248 [0] Number of roots=4, leaves=10, remote ranks=3 249 [0] 0 <- (3,1) 250 [0] 1 <- (1,0) 251 [0] 2 <- (1,2) 252 [0] 2 <- (2,2) 253 [0] 2 <- (3,2) 254 [0] 3 <- (3,4) 255 [0] 4 <- (1,3) 256 [0] 5 <- (1,5) 257 [0] 5 <- (2,5) 258 [0] 5 <- (3,5) 259 [1] Number of roots=6, leaves=4, remote ranks=2 260 [1] 0 <- (0,1) 261 [1] 1 <- (2,0) 262 [1] 2 <- (0,3) 263 [1] 3 <- (2,3) 264 [2] Number of roots=6, leaves=4, remote ranks=2 265 [2] 0 <- (1,1) 266 [2] 1 <- (3,0) 267 [2] 2 <- (1,4) 268 [2] 3 <- (3,3) 269 [3] Number of roots=6, leaves=4, remote ranks=2 270 [3] 0 <- (2,1) 271 [3] 1 <- (0,0) 272 [3] 2 <- (2,4) 273 [3] 3 <- (0,2) 274