1c4762a1bSJed BrownPetscSF Object: 4 MPI processes 2c4762a1bSJed Brown type: basic 3c4762a1bSJed Brown [0] Number of roots=3, leaves=2, remote ranks=2 4c4762a1bSJed Brown [0] 0 <- (3,1) 5c4762a1bSJed Brown [0] 1 <- (1,0) 6c4762a1bSJed Brown [1] Number of roots=2, leaves=3, remote ranks=2 7c4762a1bSJed Brown [1] 0 <- (0,1) 8c4762a1bSJed Brown [1] 1 <- (2,0) 9c4762a1bSJed Brown [1] 2 <- (0,2) 10c4762a1bSJed Brown [2] Number of roots=2, leaves=3, remote ranks=3 11c4762a1bSJed Brown [2] 0 <- (1,1) 12c4762a1bSJed Brown [2] 1 <- (3,0) 13c4762a1bSJed Brown [2] 2 <- (0,2) 14c4762a1bSJed Brown [3] Number of roots=2, leaves=3, remote ranks=2 15c4762a1bSJed Brown [3] 0 <- (2,1) 16c4762a1bSJed Brown [3] 1 <- (0,0) 17c4762a1bSJed Brown [3] 2 <- (0,2) 18c4762a1bSJed Brown [0] Roots referenced by my leaves, by rank 19c4762a1bSJed Brown [0] 1: 1 edges 20c4762a1bSJed Brown [0] 1 <- 0 21c4762a1bSJed Brown [0] 3: 1 edges 22c4762a1bSJed Brown [0] 0 <- 1 23c4762a1bSJed Brown [1] Roots referenced by my leaves, by rank 24c4762a1bSJed Brown [1] 0: 2 edges 25c4762a1bSJed Brown [1] 0 <- 1 26c4762a1bSJed Brown [1] 2 <- 2 27c4762a1bSJed Brown [1] 2: 1 edges 28c4762a1bSJed Brown [1] 1 <- 0 29c4762a1bSJed Brown [2] Roots referenced by my leaves, by rank 30c4762a1bSJed Brown [2] 0: 1 edges 31c4762a1bSJed Brown [2] 2 <- 2 32c4762a1bSJed Brown [2] 1: 1 edges 33c4762a1bSJed Brown [2] 0 <- 1 34c4762a1bSJed Brown [2] 3: 1 edges 35c4762a1bSJed Brown [2] 1 <- 0 36c4762a1bSJed Brown [3] Roots referenced by my leaves, by rank 37c4762a1bSJed Brown [3] 0: 2 edges 38c4762a1bSJed Brown [3] 1 <- 0 39c4762a1bSJed Brown [3] 2 <- 2 40c4762a1bSJed Brown [3] 2: 1 edges 41c4762a1bSJed Brown [3] 0 <- 1 4262152dedSBarry Smith MultiSF sort=rank-order 43c4762a1bSJed Brown## Bcast Rootdata 44c4762a1bSJed Brown[0] 0: 100 101 102 45c4762a1bSJed Brown[1] 0: 200 201 46c4762a1bSJed Brown[2] 0: 300 301 47c4762a1bSJed Brown[3] 0: 400 401 48c4762a1bSJed Brown## Bcast Leafdata 49c4762a1bSJed Brown[0] 0: 401 200 50c4762a1bSJed Brown[1] 0: 101 300 102 51c4762a1bSJed Brown[2] 0: 201 400 102 52c4762a1bSJed Brown[3] 0: 301 100 102 53c4762a1bSJed Brown## Bcast Rootdata in type of char 54c4762a1bSJed Brown 0: A B C 55c4762a1bSJed Brown 1: D E 56c4762a1bSJed Brown 2: G H 57c4762a1bSJed Brown 3: J K 58c4762a1bSJed Brown## Bcast Leafdata in type of char 59c4762a1bSJed Brown 0: K D 60c4762a1bSJed Brown 1: B G C 61c4762a1bSJed Brown 2: E J C 62c4762a1bSJed Brown 3: H A C 63c4762a1bSJed Brown## Pre-Reduce Rootdata 64c4762a1bSJed Brown[0] 0: 100 101 102 65c4762a1bSJed Brown[1] 0: 200 201 66c4762a1bSJed Brown[2] 0: 300 301 67c4762a1bSJed Brown[3] 0: 400 401 68c4762a1bSJed Brown## Reduce Leafdata 69c4762a1bSJed Brown[0] 0: 1000 1010 70c4762a1bSJed Brown[1] 0: 2000 2010 2020 71c4762a1bSJed Brown[2] 0: 3000 3010 3020 72c4762a1bSJed Brown[3] 0: 4000 4010 4020 73c4762a1bSJed Brown## Reduce Rootdata 74c4762a1bSJed Brown[0] 0: 4110 2101 9162 75c4762a1bSJed Brown[1] 0: 1210 3201 76c4762a1bSJed Brown[2] 0: 2310 4301 77c4762a1bSJed Brown[3] 0: 3410 1401 78c4762a1bSJed Brown## Pre-Reduce Rootdata in type of signed char 79c4762a1bSJed Brown 0: 10 11 12 80c4762a1bSJed Brown 1: 20 21 81c4762a1bSJed Brown 2: 30 31 82c4762a1bSJed Brown 3: 40 41 83c4762a1bSJed Brown## Reduce Leafdata in type of signed char 84c4762a1bSJed Brown 0: 50 60 85c4762a1bSJed Brown 1: 100 110 120 86c4762a1bSJed Brown 2: -106 -96 -86 87c4762a1bSJed Brown 3: -56 -46 -36 88c4762a1bSJed Brown## Reduce Rootdata in type of signed char 89c4762a1bSJed Brown 0: -36 111 10 90c4762a1bSJed Brown 1: 80 -85 91c4762a1bSJed Brown 2: -116 -25 92c4762a1bSJed Brown 3: -56 91 93c4762a1bSJed Brown## Pre-Reduce Rootdata in type of unsigned char 94c4762a1bSJed Brown 0: 10 11 12 95c4762a1bSJed Brown 1: 20 21 96c4762a1bSJed Brown 2: 30 31 97c4762a1bSJed Brown 3: 40 41 98c4762a1bSJed Brown## Reduce Leafdata in type of unsigned char 99c4762a1bSJed Brown 0: 50 60 100c4762a1bSJed Brown 1: 100 110 120 101c4762a1bSJed Brown 2: 150 160 170 102c4762a1bSJed Brown 3: 200 210 220 103c4762a1bSJed Brown## Reduce Rootdata in type of unsigned char 104c4762a1bSJed Brown 0: 220 111 10 105c4762a1bSJed Brown 1: 80 171 106c4762a1bSJed Brown 2: 140 231 107c4762a1bSJed Brown 3: 200 91 108c4762a1bSJed Brown## Root degrees 109c4762a1bSJed Brown[0] 0: 1 1 3 110c4762a1bSJed Brown[1] 0: 1 1 111c4762a1bSJed Brown[2] 0: 1 1 112c4762a1bSJed Brown[3] 0: 1 1 113c4762a1bSJed Brown## Gathered data at multi-roots from leaves 114c4762a1bSJed Brown[0] 0: 4001 2000 2002 3002 4002 115c4762a1bSJed Brown[1] 0: 1001 3000 116c4762a1bSJed Brown[2] 0: 2001 4000 117c4762a1bSJed Brown[3] 0: 3001 1000 118c4762a1bSJed Brown## Data at multi-roots, to scatter to leaves 119c4762a1bSJed Brown[0] 0: 1000 1100 1200 1201 1202 120c4762a1bSJed Brown[1] 0: 2000 2100 121c4762a1bSJed Brown[2] 0: 3000 3100 122c4762a1bSJed Brown[3] 0: 4000 4100 123c4762a1bSJed Brown## Scattered data at leaves 124c4762a1bSJed Brown[0] 0: 4100 2000 125c4762a1bSJed Brown[1] 0: 1100 3000 1200 126c4762a1bSJed Brown[2] 0: 2100 4000 1201 127c4762a1bSJed Brown[3] 0: 3100 1000 1202 128c4762a1bSJed Brown## Embedded PetscSF 129c4762a1bSJed BrownPetscSF Object: 4 MPI processes 130c4762a1bSJed Brown type: basic 131c4762a1bSJed Brown [0] Number of roots=3, leaves=1, remote ranks=1 132c4762a1bSJed Brown [0] 0 <- (3,1) 133c4762a1bSJed Brown [1] Number of roots=2, leaves=2, remote ranks=1 134c4762a1bSJed Brown [1] 0 <- (0,1) 135c4762a1bSJed Brown [1] 2 <- (0,2) 136c4762a1bSJed Brown [2] Number of roots=2, leaves=2, remote ranks=2 137c4762a1bSJed Brown [2] 0 <- (1,1) 138*db2b9530SVaclav Hapla [2] 2 <- (0,2) 139c4762a1bSJed Brown [3] Number of roots=2, leaves=2, remote ranks=2 140c4762a1bSJed Brown [3] 0 <- (2,1) 141*db2b9530SVaclav Hapla [3] 2 <- (0,2) 142c4762a1bSJed Brown [0] Roots referenced by my leaves, by rank 143c4762a1bSJed Brown [0] 3: 1 edges 144c4762a1bSJed Brown [0] 0 <- 1 145c4762a1bSJed Brown [1] Roots referenced by my leaves, by rank 146c4762a1bSJed Brown [1] 0: 2 edges 147c4762a1bSJed Brown [1] 0 <- 1 148c4762a1bSJed Brown [1] 2 <- 2 149c4762a1bSJed Brown [2] Roots referenced by my leaves, by rank 150c4762a1bSJed Brown [2] 0: 1 edges 151c4762a1bSJed Brown [2] 2 <- 2 152c4762a1bSJed Brown [2] 1: 1 edges 153c4762a1bSJed Brown [2] 0 <- 1 154c4762a1bSJed Brown [3] Roots referenced by my leaves, by rank 155c4762a1bSJed Brown [3] 0: 1 edges 156c4762a1bSJed Brown [3] 2 <- 2 157c4762a1bSJed Brown [3] 2: 1 edges 158c4762a1bSJed Brown [3] 0 <- 1 15962152dedSBarry Smith MultiSF sort=rank-order 160c4762a1bSJed Brown## Multi-SF 161c4762a1bSJed BrownPetscSF Object: 4 MPI processes 162c4762a1bSJed Brown type: basic 163c4762a1bSJed Brown [0] Number of roots=5, leaves=2, remote ranks=2 164c4762a1bSJed Brown [0] 0 <- (3,1) 165c4762a1bSJed Brown [0] 1 <- (1,0) 166c4762a1bSJed Brown [1] Number of roots=2, leaves=3, remote ranks=2 167c4762a1bSJed Brown [1] 0 <- (0,1) 168c4762a1bSJed Brown [1] 1 <- (2,0) 169c4762a1bSJed Brown [1] 2 <- (0,2) 170c4762a1bSJed Brown [2] Number of roots=2, leaves=3, remote ranks=3 171c4762a1bSJed Brown [2] 0 <- (1,1) 172c4762a1bSJed Brown [2] 1 <- (3,0) 173c4762a1bSJed Brown [2] 2 <- (0,3) 174c4762a1bSJed Brown [3] Number of roots=2, leaves=3, remote ranks=2 175c4762a1bSJed Brown [3] 0 <- (2,1) 176c4762a1bSJed Brown [3] 1 <- (0,0) 177c4762a1bSJed Brown [3] 2 <- (0,4) 17862152dedSBarry Smith MultiSF sort=rank-order 179c4762a1bSJed Brown## Multi-SF roots indices in original SF roots numbering 180c4762a1bSJed Brown[0] 0: 0 1 2 2 2 181c4762a1bSJed Brown[1] 0: 0 1 182c4762a1bSJed Brown[2] 0: 0 1 183c4762a1bSJed Brown[3] 0: 0 1 184c4762a1bSJed Brown## Inverse of Multi-SF 185c4762a1bSJed BrownPetscSF Object: 4 MPI processes 186c4762a1bSJed Brown type: basic 187c4762a1bSJed Brown [0] Number of roots=2, leaves=5, remote ranks=3 188c4762a1bSJed Brown [0] 0 <- (3,1) 189c4762a1bSJed Brown [0] 1 <- (1,0) 190c4762a1bSJed Brown [0] 2 <- (1,2) 191c4762a1bSJed Brown [0] 3 <- (2,2) 192c4762a1bSJed Brown [0] 4 <- (3,2) 193c4762a1bSJed Brown [1] Number of roots=3, leaves=2, remote ranks=2 194c4762a1bSJed Brown [1] 0 <- (0,1) 195c4762a1bSJed Brown [1] 1 <- (2,0) 196c4762a1bSJed Brown [2] Number of roots=3, leaves=2, remote ranks=2 197c4762a1bSJed Brown [2] 0 <- (1,1) 198c4762a1bSJed Brown [2] 1 <- (3,0) 199c4762a1bSJed Brown [3] Number of roots=3, leaves=2, remote ranks=2 200c4762a1bSJed Brown [3] 0 <- (2,1) 201c4762a1bSJed Brown [3] 1 <- (0,0) 20262152dedSBarry Smith MultiSF sort=rank-order 203c4762a1bSJed Brown## Inverse of Multi-SF, original numbering 204c4762a1bSJed Brown [0] Number of roots=2, leaves=5, remote ranks=3 205c4762a1bSJed Brown [0] 0 <- (3,1) 206c4762a1bSJed Brown [0] 1 <- (1,0) 207c4762a1bSJed Brown [0] 2 <- (1,2) 208c4762a1bSJed Brown [0] 2 <- (2,2) 209c4762a1bSJed Brown [0] 2 <- (3,2) 210c4762a1bSJed Brown [1] Number of roots=3, leaves=2, remote ranks=2 211c4762a1bSJed Brown [1] 0 <- (0,1) 212c4762a1bSJed Brown [1] 1 <- (2,0) 213c4762a1bSJed Brown [2] Number of roots=3, leaves=2, remote ranks=2 214c4762a1bSJed Brown [2] 0 <- (1,1) 215c4762a1bSJed Brown [2] 1 <- (3,0) 216c4762a1bSJed Brown [3] Number of roots=3, leaves=2, remote ranks=2 217c4762a1bSJed Brown [3] 0 <- (2,1) 218c4762a1bSJed Brown [3] 1 <- (0,0) 219