diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ce9513a..294c28f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ # [1.17.0] - 2026-04-15 - new kwargs `not_in_domain_value = nothing` and `check_if_not_in_domain = isnothing(not_in_domain_value)` for grid interpolation. This enables the user to interpolate values between grids which do not share the same domain. The value _outside_ the target domain has to be provided by the user. +- Allow to read simplexgrid data from TetGen .ele file sets + +## [1.16.0] - 2026-01-21 +- Allow to read/write WIAS-TeSCA dom files ## [1.15.0] - 2026-01-14 - add and export `explode` function that produces a grid with all adjacencies removed diff --git a/src/io.jl b/src/io.jl index 68f20f03..0cc26445 100644 --- a/src/io.jl +++ b/src/io.jl @@ -55,6 +55,7 @@ $(TYPEDSIGNATURES) - format version 2.1: shortened version only with cells, cellnodes, cellregions, bfacenodes, bfaceregions - format version 2.2: like 2.1, but additional info on cell and node partitioning. Edge partitioning is not stored in the file and may be re-established by [`induce_edge_partitioning!`](@ref). + - "*.ele": TetGen output format (requires presence of *.ele, *.node and *.face file) - "*.geo": gmsh geometry description (requires `using Gmsh`) - "*.msh": gmsh mesh (requires `using Gmsh`) - "*.dom": WIAS-TeSCA dom format @@ -265,6 +266,95 @@ function writegrid(fname::String, g::ExtendableGrid, ::Type{Val{:sg}}; version = return nothing end +######################################################## +## TetGen ele format +####################################################### +function simplexgrid(file::String, ::Type{Val{:ele}}; kwargs...) + Ti = Cint + fname, fext = splitext(file) + tks_ele = TokenStream(fname * ".ele") + tks_face = TokenStream(fname * ".face") + tks_node = TokenStream(fname * ".node") + + + npoints = parse(Ti, gettoken(tks_node)) + dim = parse(Ti, gettoken(tks_node)) + if dim != 3 + throw(ErrorException("Dimension $dim not supported so far for .ele format")) + end + npointboundarymarkers = parse(Ti, gettoken(tks_node)) + if npointboundarymarkers > 0 + @warn "ignoring point boundary markers" + end + npointattributes = parse(Ti, gettoken(tks_node)) + if npointattributes > 0 + @warn "ignoring point attributes" + end + coord = Array{Float64, 2}(undef, dim, npoints) + for ipoint in 1:npoints + idx = parse(Ti, gettoken(tks_node)) + 1 + for idim in 1:dim + coord[idim, idx] = parse(Float64, gettoken(tks_node)) + end + for i in 1:npointboundarymarkers + gettoken(tks_node) + end + for i in 1:npointattributes + gettoken(tks_node) + end + end + + + ncells = parse(Ti, gettoken(tks_ele)) + ncellnodes = parse(Ti, gettoken(tks_ele)) + ncellattributes = parse(Ti, gettoken(tks_ele)) + cells = Array{Ti, 2}(undef, ncellnodes, ncells) + regions = Array{Ti, 1}(undef, ncells) + if ncellattributes > 1 + @warn "ignoring more than one cell attribute" + end + for icell in 1:ncells + idx = parse(Ti, gettoken(tks_ele)) + 1 + for inode in 1:ncellnodes + cells[inode, idx] = parse(Ti, gettoken(tks_ele)) + 1 + end + if ncellattributes == 0 + regions[idx] = 1 + else + regions[idx] = parse(Ti, gettoken(tks_ele)) + for i in 2:ncellattributes + gettoken(tks_ele) + end + end + end + + nfaces = parse(Ti, gettoken(tks_face)) + nfaceattributes = parse(Ti, gettoken(tks_face)) + nfacenodes = 3 + if nfaceattributes > 1 + @warn "ignoring more than one face attribute" + end + faces = Array{Ti, 2}(undef, dim, nfaces) + bregions = Array{Ti, 1}(undef, nfaces) + for iface in 1:nfaces + idx = parse(Ti, gettoken(tks_face)) + 1 + for inode in 1:nfacenodes + faces[inode, idx] = parse(Ti, gettoken(tks_face)) + 1 + end + if nfaceattributes == 0 + bregions[idx] = 1 + else + bregions[idx] = parse(Ti, gettoken(tks_face)) + for i in 2:nfaceattributes + gettoken(tks_face) + end + end + end + g = simplexgrid(coord, cells, regions, faces, bregions) + return g +end + + ######################################################## ## WIAS-TeSCA dom format ####################################################### diff --git a/test/cube.1.edge b/test/cube.1.edge new file mode 100644 index 00000000..e37e629e --- /dev/null +++ b/test/cube.1.edge @@ -0,0 +1,50 @@ +48 1 + 0 22 42 -1 + 1 15 66 -1 + 2 6 41 -1 + 3 57 130 -1 + 4 5 74 -1 + 5 25 150 -1 + 6 1 83 -1 + 7 0 126 -1 + 8 38 6 -1 + 9 21 38 -1 + 10 16 112 -1 + 11 3 129 -1 + 12 3 154 -1 + 13 39 75 -1 + 14 7 82 -1 + 15 11 114 -1 + 16 4 149 -1 + 17 23 139 -1 + 18 17 87 -1 + 19 2 117 -1 + 20 19 51 -1 + 21 1 72 -1 + 22 2 98 -1 + 23 20 76 -1 + 24 41 19 -1 + 25 42 6 -1 + 26 51 7 -1 + 27 4 134 -1 + 28 66 7 -1 + 29 72 25 -1 + 30 74 22 -1 + 31 75 3 -1 + 32 76 4 -1 + 33 82 20 -1 + 34 83 57 -1 + 35 87 1 -1 + 36 98 39 -1 + 37 112 0 -1 + 38 114 0 -1 + 39 117 21 -1 + 40 126 17 -1 + 41 129 15 -1 + 42 130 2 -1 + 43 134 16 -1 + 44 139 5 -1 + 45 149 23 -1 + 46 150 5 -1 + 47 154 11 -1 +# Generated by /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../tetgen-v161/build/tetgen -pqa0.005 /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../quarry/cube.smesh diff --git a/test/cube.1.ele b/test/cube.1.ele new file mode 100644 index 00000000..da9bb536 --- /dev/null +++ b/test/cube.1.ele @@ -0,0 +1,539 @@ +537 4 0 + 0 27 37 67 127 + 1 28 31 80 105 + 2 67 68 84 136 + 3 101 54 106 123 + 4 105 18 126 145 + 5 95 4 134 89 + 6 149 95 76 71 + 7 8 101 106 123 + 8 94 10 142 144 + 9 136 107 124 99 + 10 19 46 78 104 + 11 149 95 71 89 + 12 141 52 97 37 + 13 37 9 68 97 + 14 27 55 140 143 + 15 9 40 68 108 + 16 52 141 17 145 + 17 48 32 101 132 + 18 40 68 108 151 + 19 107 67 124 127 + 20 129 33 47 15 + 21 67 37 68 136 + 22 8 116 67 102 + 23 27 55 106 119 + 24 7 24 29 66 + 25 108 109 110 130 + 26 81 75 129 47 + 27 35 24 51 104 + 28 28 45 142 155 + 29 5 86 61 150 + 30 37 9 97 141 + 31 18 0 105 126 + 32 63 127 56 86 + 33 55 88 125 46 + 34 27 56 140 133 + 35 0 26 105 114 + 36 58 34 148 46 + 37 68 8 48 106 + 38 55 146 88 46 + 39 27 67 123 127 + 40 27 37 68 106 + 41 67 63 102 86 + 42 28 40 60 81 + 43 66 113 29 33 + 44 86 150 63 102 + 45 37 27 67 106 + 46 24 7 35 51 + 47 105 90 114 115 + 48 69 48 121 132 + 49 17 90 126 145 + 50 49 131 113 33 + 51 68 8 84 110 + 52 127 123 143 86 + 53 50 56 96 143 + 54 50 54 86 143 + 55 65 33 29 113 + 56 33 29 15 44 + 57 111 105 115 90 + 58 21 69 121 132 + 59 8 68 48 109 + 60 28 119 9 40 + 61 67 86 123 127 + 62 37 119 28 43 + 63 81 11 45 36 + 64 31 95 133 144 + 65 28 119 155 43 + 66 4 95 149 89 + 67 90 105 126 145 + 68 66 33 29 15 + 69 33 36 44 15 + 70 31 28 142 43 + 71 56 86 127 143 + 72 33 65 29 44 + 73 8 68 109 110 + 74 68 27 106 119 + 75 50 22 54 85 + 76 147 144 43 27 + 77 25 99 107 136 + 78 143 55 88 54 + 79 46 113 131 147 + 80 40 39 47 93 + 81 67 37 124 127 + 82 27 37 43 119 + 83 138 121 151 118 + 84 70 138 131 14 + 85 32 48 120 132 + 86 46 78 104 146 + 87 53 29 65 64 + 88 37 67 68 106 + 89 48 40 131 138 + 90 105 111 141 90 + 91 96 149 89 23 + 92 71 91 95 76 + 93 113 49 66 24 + 94 125 54 137 152 + 95 27 43 133 144 + 96 30 85 125 152 + 97 52 141 145 37 + 98 52 97 136 87 + 99 68 67 84 106 + 100 107 136 67 25 + 101 13 50 96 143 + 102 48 46 55 125 + 103 86 150 139 63 + 104 127 31 62 133 + 105 62 145 37 52 + 106 55 48 106 119 + 107 52 124 136 37 + 108 48 54 106 101 + 109 127 31 37 62 + 110 21 32 38 120 + 111 45 28 142 80 + 112 55 27 123 143 + 113 85 13 88 143 + 114 47 60 40 81 + 115 44 155 142 153 + 116 100 96 56 23 + 117 54 48 106 55 + 118 127 63 56 100 + 119 31 18 62 128 + 120 96 89 56 23 + 121 15 33 47 49 + 122 48 32 120 125 + 123 111 105 141 28 + 124 8 48 101 132 + 125 90 0 105 114 + 126 124 62 12 127 + 127 40 9 92 108 + 128 0 18 105 112 + 129 70 138 69 48 + 130 31 95 128 133 + 131 90 17 141 145 + 132 55 27 140 147 + 133 29 35 82 103 + 134 56 23 89 100 + 135 34 46 70 125 + 136 40 9 68 119 + 137 9 68 97 108 + 138 14 58 59 131 + 139 41 125 135 148 + 140 131 33 47 81 + 141 111 105 28 115 + 142 28 11 111 115 + 143 79 10 94 144 + 144 144 147 43 142 + 145 24 46 59 58 + 146 81 45 28 155 + 147 26 105 114 115 + 148 11 28 45 115 + 149 67 63 127 107 + 150 29 53 65 113 + 151 13 50 143 85 + 152 37 105 141 145 + 153 68 8 106 84 + 154 48 69 120 132 + 155 109 117 121 132 + 156 37 124 62 52 + 157 53 77 140 146 + 158 120 70 69 48 + 159 145 62 37 105 + 160 131 48 46 55 + 161 113 53 142 147 + 162 79 95 128 31 + 163 18 31 122 128 + 164 12 56 127 133 + 165 118 40 151 93 + 166 28 9 37 141 + 167 11 36 81 154 + 168 8 73 123 116 + 169 142 153 45 10 + 170 153 81 155 45 + 171 5 86 74 61 + 172 68 40 119 151 + 173 25 63 102 107 + 174 56 89 95 133 + 175 40 48 131 119 + 176 121 138 151 48 + 177 27 56 133 127 + 178 124 37 62 127 + 179 49 66 15 33 + 180 16 18 122 128 + 181 31 79 122 128 + 182 79 16 122 128 + 183 56 50 86 143 + 184 105 90 141 145 + 185 30 85 88 125 + 186 96 86 56 50 + 187 107 136 124 67 + 188 22 54 85 152 + 189 89 56 100 133 + 190 27 43 127 133 + 191 68 57 97 108 + 192 68 48 109 151 + 193 22 50 61 74 + 194 54 22 61 73 + 195 8 106 116 123 + 196 116 8 67 106 + 197 53 20 71 77 + 198 113 46 146 147 + 199 64 94 142 144 + 200 63 67 127 86 + 201 9 28 60 111 + 202 129 81 3 75 + 203 40 75 39 60 + 204 8 67 106 84 + 205 26 28 45 80 + 206 53 65 113 142 + 207 39 40 60 92 + 208 40 9 60 92 + 209 123 127 143 27 + 210 16 95 79 91 + 211 25 67 107 102 + 212 52 141 97 17 + 213 53 76 71 20 + 214 67 102 116 123 + 215 40 75 60 47 + 216 34 46 125 148 + 217 26 0 105 112 + 218 86 100 56 63 + 219 25 99 136 72 + 220 40 28 60 9 + 221 75 81 60 47 + 222 81 129 3 36 + 223 3 81 154 75 + 224 92 118 98 39 + 225 11 81 45 28 + 226 48 8 109 132 + 227 129 81 47 33 + 228 54 50 85 143 + 229 143 146 13 88 + 230 86 54 123 143 + 231 70 120 125 48 + 232 19 46 58 148 + 233 0 90 105 126 + 234 134 95 89 128 + 235 61 50 54 86 + 236 22 50 54 61 + 237 20 53 64 103 + 238 46 55 146 147 + 239 53 20 77 103 + 240 4 95 134 91 + 241 67 63 107 102 + 242 95 16 134 91 + 243 16 95 128 79 + 244 86 100 63 139 + 245 33 153 36 81 + 246 25 136 102 72 + 247 53 94 64 144 + 248 28 37 105 141 + 249 28 31 105 43 + 250 57 108 110 130 + 251 86 5 74 139 + 252 25 136 67 102 + 253 53 20 64 91 + 254 122 31 80 79 + 255 4 95 76 149 + 256 86 100 139 56 + 257 53 91 94 95 + 258 77 13 140 146 + 259 13 96 140 143 + 260 71 91 76 53 + 261 76 53 91 20 + 262 91 53 94 64 + 263 71 91 53 95 + 264 100 96 23 139 + 265 109 108 110 151 + 266 117 109 121 151 + 267 96 89 71 56 + 268 56 89 71 95 + 269 96 149 71 89 + 270 65 33 113 142 + 271 44 33 65 142 + 272 54 22 73 137 + 273 53 64 65 142 + 274 8 73 101 123 + 275 129 33 15 36 + 276 133 37 31 43 + 277 55 48 119 131 + 278 119 147 55 131 + 279 93 14 131 138 + 280 138 70 131 48 + 281 40 93 131 138 + 282 79 31 80 144 + 283 48 68 119 151 + 284 86 150 102 61 + 285 137 54 101 73 + 286 20 29 82 103 + 287 46 19 58 104 + 288 24 46 58 104 + 289 24 19 51 104 + 290 41 34 125 148 + 291 28 37 43 105 + 292 37 27 43 127 + 293 37 31 43 105 + 294 106 67 116 123 + 295 54 85 88 143 + 296 28 31 142 80 + 297 105 80 122 31 + 298 16 95 134 128 + 299 26 28 80 105 + 300 103 53 113 146 + 301 35 103 113 146 + 302 145 62 105 18 + 303 31 37 62 105 + 304 18 31 62 105 + 305 54 61 86 123 + 306 67 86 102 123 + 307 110 97 68 57 + 308 77 53 103 146 + 309 61 54 73 123 + 310 48 8 101 106 + 311 54 55 123 143 + 312 21 32 120 132 + 313 8 67 84 102 + 314 37 27 68 119 + 315 68 57 108 110 + 316 32 42 125 137 + 317 53 29 64 103 + 318 121 138 48 69 + 319 48 68 106 119 + 320 42 30 125 152 + 321 80 105 122 26 + 322 48 131 46 70 + 323 14 58 131 70 + 324 75 81 154 60 + 325 96 56 140 143 + 326 146 143 55 88 + 327 46 24 59 113 + 328 49 113 66 33 + 329 46 104 113 146 + 330 125 85 88 54 + 331 24 46 104 113 + 332 35 24 104 113 + 333 53 29 103 113 + 334 53 140 144 147 + 335 29 35 103 113 + 336 24 35 29 113 + 337 7 35 29 24 + 338 3 81 36 154 + 339 115 26 28 45 + 340 26 115 28 105 + 341 11 26 114 115 + 342 26 11 45 115 + 343 46 135 19 78 + 344 125 85 54 152 + 345 12 56 100 127 + 346 97 52 17 87 + 347 40 75 47 39 + 348 60 11 28 81 + 349 140 27 144 147 + 350 27 56 143 140 + 351 95 89 128 133 + 352 129 81 33 36 + 353 22 42 137 152 + 354 54 22 137 152 + 355 105 26 112 122 + 356 142 33 147 155 + 357 47 40 131 81 + 358 100 96 139 56 + 359 9 37 68 119 + 360 119 37 28 9 + 361 69 21 120 132 + 362 117 21 121 132 + 363 18 105 112 122 + 364 18 31 105 122 + 365 49 113 59 24 + 366 16 18 112 122 + 367 116 86 123 102 + 368 27 67 106 123 + 369 73 54 101 123 + 370 9 28 111 141 + 371 55 27 106 123 + 372 54 55 106 123 + 373 104 35 113 146 + 374 31 43 142 144 + 375 119 28 155 40 + 376 30 41 125 135 + 377 61 73 116 123 + 378 116 86 102 61 + 379 35 7 29 82 + 380 135 46 88 78 + 381 120 70 125 34 + 382 46 48 70 125 + 383 34 32 125 120 + 384 125 101 137 54 + 385 54 48 125 101 + 386 32 48 101 125 + 387 93 138 151 118 + 388 10 44 142 153 + 389 34 6 41 125 + 390 6 30 41 125 + 391 6 32 42 125 + 392 30 6 42 125 + 393 6 34 38 125 + 394 32 6 38 125 + 395 136 52 87 99 + 396 11 60 28 111 + 397 68 37 97 136 + 398 34 32 120 38 + 399 68 84 97 110 + 400 24 19 104 58 + 401 42 125 137 152 + 402 34 32 38 125 + 403 12 63 107 127 + 404 63 12 100 127 + 405 12 107 124 127 + 406 53 113 146 147 + 407 56 27 143 127 + 408 5 86 150 139 + 409 40 47 131 93 + 410 33 131 47 49 + 411 59 46 113 131 + 412 146 143 140 55 + 413 153 33 155 81 + 414 58 46 59 131 + 415 131 49 113 59 + 416 46 58 70 131 + 417 116 86 61 123 + 418 96 86 50 139 + 419 74 86 139 50 + 420 95 4 76 91 + 421 49 14 59 131 + 422 58 34 46 70 + 423 14 47 93 131 + 424 47 14 49 131 + 425 12 56 133 100 + 426 62 31 128 133 + 427 62 12 127 133 + 428 127 31 133 37 + 429 89 12 128 133 + 430 12 89 100 133 + 431 12 62 128 133 + 432 84 68 97 136 + 433 124 52 136 99 + 434 53 94 144 95 + 435 37 67 124 136 + 436 67 84 102 136 + 437 97 52 136 37 + 438 87 83 97 136 + 439 83 72 84 136 + 440 44 155 153 33 + 441 97 84 83 110 + 442 1 87 99 136 + 443 1 83 87 136 + 444 72 1 99 136 + 445 1 72 83 136 + 446 84 72 102 136 + 447 110 83 97 57 + 448 88 55 125 54 + 449 95 56 133 140 + 450 71 56 95 140 + 451 53 71 95 140 + 452 93 92 40 39 + 453 43 31 133 144 + 454 80 31 142 144 + 455 95 79 144 31 + 456 10 80 142 144 + 457 95 53 140 144 + 458 27 133 140 144 + 459 53 64 142 144 + 460 96 86 139 56 + 461 140 53 146 147 + 462 56 71 96 140 + 463 71 53 77 140 + 464 155 131 119 40 + 465 147 119 55 27 + 466 63 25 102 150 + 467 133 95 140 144 + 468 95 79 94 144 + 469 13 35 146 77 + 470 153 33 36 44 + 471 71 13 96 140 + 472 13 71 77 140 + 473 54 48 55 125 + 474 55 140 146 147 + 475 55 46 131 147 + 476 142 53 144 147 + 477 113 33 131 147 + 478 33 113 142 147 + 479 108 68 110 151 + 480 81 154 60 11 + 481 64 10 65 142 + 482 10 44 65 142 + 483 10 64 94 142 + 484 44 155 33 142 + 485 133 37 43 127 + 486 79 95 94 91 + 487 10 79 80 144 + 488 146 143 13 140 + 489 97 84 136 83 + 490 78 46 88 146 + 491 19 41 135 148 + 492 108 109 130 151 + 493 48 121 132 151 + 494 121 109 132 151 + 495 68 109 110 151 + 496 125 46 135 148 + 497 78 35 104 146 + 498 135 46 19 148 + 499 35 77 103 146 + 500 13 35 78 146 + 501 13 78 88 146 + 502 74 86 50 61 + 503 46 135 88 125 + 504 20 29 103 64 + 505 109 48 132 151 + 506 135 88 125 30 + 507 138 93 151 40 + 508 40 48 151 138 + 509 92 40 108 151 + 510 118 40 93 92 + 511 66 113 24 29 + 512 98 2 118 151 + 513 98 108 130 151 + 514 118 117 121 151 + 515 118 40 92 151 + 516 98 92 108 151 + 517 2 117 118 151 + 518 2 109 117 151 + 519 109 2 130 151 + 520 2 98 130 151 + 521 118 92 93 39 + 522 92 118 151 98 + 523 43 142 147 155 + 524 43 28 142 155 + 525 28 40 81 155 + 526 33 81 131 155 + 527 33 131 147 155 + 528 43 119 147 27 + 529 101 125 137 32 + 530 119 43 147 155 + 531 40 48 119 151 + 532 81 40 131 155 + 533 131 155 119 147 + 534 153 142 45 155 + 535 153 81 45 36 + 536 142 45 80 10 +# Generated by /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../tetgen-v161/build/tetgen -pqa0.005 /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../quarry/cube.smesh diff --git a/test/cube.1.face b/test/cube.1.face new file mode 100644 index 00000000..31f827ac --- /dev/null +++ b/test/cube.1.face @@ -0,0 +1,238 @@ +236 1 + 0 85 30 152 2 + 1 30 42 152 2 + 2 57 83 110 4 + 3 61 22 73 4 + 4 20 29 82 6 + 5 7 29 66 6 + 6 58 34 148 5 + 7 90 111 115 1 + 8 14 47 93 5 + 9 10 79 80 6 + 10 58 14 70 5 + 11 117 21 121 5 + 12 77 20 103 2 + 13 0 90 114 1 + 14 24 19 51 5 + 15 47 15 129 5 + 16 21 38 120 5 + 17 11 114 115 1 + 18 135 88 78 2 + 19 49 14 59 5 + 20 6 34 38 5 + 21 42 22 152 2 + 22 96 149 71 2 + 23 101 137 32 4 + 24 35 7 51 2 + 25 87 17 52 3 + 26 60 39 75 1 + 27 22 85 152 2 + 28 15 47 49 5 + 29 111 11 115 1 + 30 34 6 41 5 + 31 64 10 65 6 + 32 10 44 65 6 + 33 83 72 84 4 + 34 76 4 91 6 + 35 98 92 108 1 + 36 79 10 94 6 + 37 138 121 69 5 + 38 44 29 65 6 + 39 1 83 87 1 + 40 47 14 49 5 + 41 83 84 110 4 + 42 70 120 34 5 + 43 62 124 52 3 + 44 64 91 94 6 + 45 92 9 108 1 + 46 44 10 153 6 + 47 150 139 5 3 + 48 62 145 18 3 + 49 79 16 122 6 + 50 93 39 118 5 + 51 36 11 154 6 + 52 29 15 66 6 + 53 107 99 124 3 + 54 15 36 129 6 + 55 20 71 76 2 + 56 24 49 59 5 + 57 6 32 42 4 + 58 1 72 83 4 + 59 63 25 107 3 + 60 11 60 154 1 + 61 117 109 132 4 + 62 118 117 121 5 + 63 34 58 70 5 + 64 32 6 38 4 + 65 21 32 38 4 + 66 30 85 88 2 + 67 47 39 93 5 + 68 137 101 73 4 + 69 6 30 41 2 + 70 30 6 42 2 + 71 10 45 153 6 + 72 26 11 45 6 + 73 19 78 104 2 + 74 109 2 130 4 + 75 13 71 77 2 + 76 66 49 24 5 + 77 76 149 4 2 + 78 87 83 97 1 + 79 97 9 141 1 + 80 12 63 107 3 + 81 88 135 30 2 + 82 7 24 51 5 + 83 19 24 58 5 + 84 138 70 14 5 + 85 23 89 149 3 + 86 84 8 110 4 + 87 42 32 137 4 + 88 58 24 59 5 + 89 14 58 59 5 + 90 114 90 115 1 + 91 22 61 74 4 + 92 75 154 60 1 + 93 0 26 112 6 + 94 108 57 130 1 + 95 9 111 141 1 + 96 73 8 116 4 + 97 13 35 78 2 + 98 78 35 104 2 + 99 80 122 26 6 + 100 29 64 65 6 + 101 15 29 44 6 + 102 17 97 141 1 + 103 24 7 66 5 + 104 49 66 15 5 + 105 10 64 94 6 + 106 70 138 69 5 + 107 35 13 77 2 + 108 71 20 77 2 + 109 61 5 74 4 + 110 13 50 96 2 + 111 100 139 63 3 + 112 12 89 100 3 + 113 35 77 103 2 + 114 52 17 145 3 + 115 50 22 74 2 + 116 74 139 50 2 + 117 75 129 3 5 + 118 39 47 75 5 + 119 60 9 92 1 + 120 26 45 80 6 + 121 45 10 80 6 + 122 73 22 137 4 + 123 1 87 99 3 + 124 8 73 101 4 + 125 62 18 128 3 + 126 39 60 92 1 + 127 7 35 82 2 + 128 82 35 103 2 + 129 29 20 64 6 + 130 29 7 82 6 + 131 22 50 85 2 + 132 45 36 153 6 + 133 13 78 88 2 + 134 85 13 88 2 + 135 78 19 135 2 + 136 89 23 100 3 + 137 39 92 98 1 + 138 38 34 120 5 + 139 8 101 132 4 + 140 63 12 100 3 + 141 129 75 47 5 + 142 89 12 128 3 + 143 71 13 96 2 + 144 64 20 91 6 + 145 20 76 91 6 + 146 41 30 135 2 + 147 16 79 91 6 + 148 99 87 52 3 + 149 72 1 99 3 + 150 91 79 94 6 + 151 96 139 23 2 + 152 50 13 85 2 + 153 83 57 97 1 + 154 17 87 97 1 + 155 145 62 52 3 + 156 126 18 145 3 + 157 21 69 121 5 + 158 139 150 63 3 + 159 60 11 111 1 + 160 32 21 132 4 + 161 25 72 99 3 + 162 16 91 134 6 + 163 8 84 102 4 + 164 84 72 102 4 + 165 72 25 102 4 + 166 20 82 103 2 + 167 51 19 104 2 + 168 35 51 104 2 + 169 17 90 126 1 + 170 25 99 107 3 + 171 97 57 108 1 + 172 9 97 108 1 + 173 109 8 132 4 + 174 101 32 132 4 + 175 91 4 134 6 + 176 19 41 135 2 + 177 8 109 110 4 + 178 9 60 111 1 + 179 12 107 124 3 + 180 61 73 116 4 + 181 18 0 112 3 + 182 16 18 112 3 + 183 26 0 114 6 + 184 11 26 114 6 + 185 102 61 116 4 + 186 8 102 116 4 + 187 2 109 117 4 + 188 39 98 118 5 + 189 69 21 120 5 + 190 121 138 118 5 + 191 120 70 69 5 + 192 122 80 79 6 + 193 98 2 118 5 + 194 2 117 118 5 + 195 112 26 122 6 + 196 16 112 122 6 + 197 124 62 12 3 + 198 99 52 124 3 + 199 90 0 126 1 + 200 12 62 128 3 + 201 19 58 148 5 + 202 0 18 126 3 + 203 18 16 128 3 + 204 21 117 132 4 + 205 36 15 44 6 + 206 36 3 129 6 + 207 57 110 130 4 + 208 110 109 130 4 + 209 2 98 130 1 + 210 98 108 130 1 + 211 4 89 134 3 + 212 89 128 134 3 + 213 128 16 134 3 + 214 22 42 137 4 + 215 93 118 138 5 + 216 14 93 138 5 + 217 139 100 23 3 + 218 111 90 141 1 + 219 139 74 5 2 + 220 139 96 50 2 + 221 90 17 141 1 + 222 17 126 145 3 + 223 41 19 148 5 + 224 34 41 148 5 + 225 89 4 149 3 + 226 25 63 150 3 + 227 149 96 23 2 + 228 149 76 71 2 + 229 5 61 150 4 + 230 61 102 150 4 + 231 102 25 150 4 + 232 36 44 153 6 + 233 154 75 3 1 + 234 11 36 45 6 + 235 3 36 154 6 +# Generated by /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../tetgen-v161/build/tetgen -pqa0.005 /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../quarry/cube.smesh diff --git a/test/cube.1.node b/test/cube.1.node new file mode 100644 index 00000000..b620df56 --- /dev/null +++ b/test/cube.1.node @@ -0,0 +1,158 @@ +156 3 0 0 + 0 0 0 0 + 1 1 0 0 + 2 1 1 0 + 3 0 1 0 + 4 0 0 1 + 5 1 0 1 + 6 1 1 1 + 7 0 1 1 + 8 1 0.50560086000796489 0.46860124842823492 + 9 0.49596088450160869 0.52961739632895899 0 + 10 0 0.49425787235509155 0.50069841474984322 + 11 0 0.5 0 + 12 0.49996247937858962 0 0.56697552143998997 + 13 0.48191788676221942 0.50092525779068242 1 + 14 0.46516762908798037 1 0.49258595938902133 + 15 0 1 0.5 + 16 0 0 0.5 + 17 0.5 0 0 + 18 0.1849385055794491 0 0.25518592785185362 + 19 0.5 1 1 + 20 0 0.5 1 + 21 1 1 0.5 + 22 1 0.5 1 + 23 0.5 0 1 + 24 0.26425761865289532 1 0.80029557211507207 + 25 1 0 0.5 + 26 0 0.25018310768663787 0.18864351421575395 + 27 0.54090506497350344 0.40902306088711693 0.54070002042461229 + 28 0.25522608262575419 0.46506990501998874 0.22149910602791462 + 29 0 0.76063503559909795 0.76072527828338721 + 30 0.79429157011436946 0.7727076720485303 1 + 31 0.24575430843726329 0.24632379152504 0.43925738310786944 + 32 1 0.81991383794576755 0.74526342015544478 + 33 0.15354119659858617 0.78780007482014058 0.49094748387197407 + 34 0.76905844148039015 1 0.79365532032956609 + 35 0.24568238355381031 0.75388089852553186 1 + 36 0 0.76049258656632168 0.2388965771285512 + 37 0.52157770628909239 0.27230666623469635 0.28351803839097811 + 38 1 1 0.75 + 39 0.5 1 0 + 40 0.49553653775533874 0.7639287678820772 0.22252252587106805 + 41 0.75 1 1 + 42 1 0.75 1 + 43 0.35814559541001301 0.39781856107035823 0.42757528050713423 + 44 0 0.71332224273674993 0.49998517669343573 + 45 0 0.49634490407484527 0.27992253044729198 + 46 0.52204908889105806 0.8274424156570227 0.77566509395412031 + 47 0.27759464855398153 1 0.28587810165129501 + 48 0.76373598646743635 0.75533728261876265 0.50596056471800466 + 49 0.23394243796763364 1 0.56163385557800605 + 50 0.74786679666655309 0.31787239450224347 1 + 51 0.25 1 1 + 52 0.55556159576488828 0 0.19923209419393545 + 53 0.16321952682184268 0.49107515837477711 0.77483402205078 + 54 0.80851983477064915 0.5168695433577245 0.78522101539294897 + 55 0.60188145087711653 0.59564701104658013 0.66189797513538307 + 56 0.51492773776760059 0.1925168765400406 0.7832009219960776 + 57 1 0.5 0 + 58 0.51936425122171825 1 0.73876193618836339 + 59 0.37167677853070419 1 0.63703529569152217 + 60 0.28512706313320785 0.7203218175671624 0 + 61 1 0.25952743107264736 0.80104711769334558 + 62 0.40091334174306786 0 0.35037021460193452 + 63 0.75113233361045428 0 0.69076026371804866 + 64 0 0.49898949359956074 0.71413900558454579 + 65 0 0.6197197436370292 0.6205663508574194 + 66 0 1 0.75 + 67 0.78140479437125021 0.25518468486402596 0.48032979226007988 + 68 0.75983974748826211 0.5027972470499863 0.26471435083079747 + 69 0.79505187952688849 1 0.49918587908007545 + 70 0.66693061723416569 1 0.59352223474740973 + 71 0.242086953754934 0.31213672953064264 1 + 72 1 0 0.25 + 73 1 0.48593404716220123 0.73252666139702338 + 74 1 0.25 1 + 75 0.25 1 0 + 76 0 0.25 1 + 77 0.22249365755148737 0.52923358914217689 1 + 78 0.48567910628128202 0.77003536373364834 1 + 79 0 0.26744405109655783 0.51835171411373548 + 80 0 0.3382719080390566 0.37278688710959762 + 81 0.16732454208011174 0.75109775531994893 0.22881265030300024 + 82 0 0.75 1 + 83 1 0.25 0 + 84 1 0.29527437586279037 0.2876725517554683 + 85 0.7525174887833862 0.5509636000745014 1 + 86 0.76899280269137793 0.21804890415295985 0.75640187872072162 + 87 0.75 0 0 + 88 0.62777861568748838 0.67147249759520966 1 + 89 0.28297883585014511 0 0.79742822864076723 + 90 0.22826104413363343 0.19939759517632127 0 + 91 0 0.23725120897178581 0.76221129838579904 + 92 0.54843133614208028 0.77580893815797758 0 + 93 0.52630577817945878 1 0.27063536697044427 + 94 0 0.37506996183541491 0.62341966534742665 + 95 0.18509162963767153 0.21740231899039619 0.73421815337182483 + 96 0.49668207364846662 0.19173750098908957 1 + 97 0.70632864216946289 0.31276001163199957 0 + 98 0.75 1 0 + 99 0.79434061231192188 0 0.25701065458393257 + 100 0.54575850694517092 0 0.80022706787179987 + 101 1 0.64017798261382453 0.65107419125283195 + 102 1 0.20658570052216577 0.52598458370407275 + 103 0.11987542089653654 0.62994904619334358 1 + 104 0.37411295230758557 0.87872952218624067 1 + 105 0.20664436095620498 0.20785068862815539 0.18939119818539288 + 106 0.77550123867693099 0.46772548493014154 0.49385745249192237 + 107 0.72703937154036558 0 0.47972349147058441 + 108 0.74841705470184339 0.64044482253091195 0 + 109 1 0.75699273336695561 0.23279609248708041 + 110 1 0.50999930786307257 0.17299626277307445 + 111 0.26137983108783519 0.44257427850996162 0 + 112 0 0 0.25 + 113 0.24026882421025378 0.76695340870901085 0.72148970474160623 + 114 0 0.25 0 + 115 0.1233572750190831 0.35598497057641976 0 + 116 1 0.36729108906918029 0.63111154597317176 + 117 1 1 0.25 + 118 0.75271111120941137 1 0.19042105622411584 + 119 0.53762039463828781 0.57629546781925001 0.37401905026635618 + 120 0.84448360510532339 1 0.62660642316220072 + 121 0.84202378292784719 1 0.37042958567091261 + 122 0 0.16664389556013498 0.36847985066941702 + 123 0.8096418346807599 0.3964538986752979 0.62792557192415455 + 124 0.59212577261441179 0 0.37261003721288638 + 125 0.79434330896510597 0.79435931371293989 0.82391489722201405 + 126 0.25 0 0 + 127 0.55823598930308349 0.19378906892882408 0.55414854523831791 + 128 0.22694955873623093 0 0.53252389625351082 + 129 0 1 0.25 + 130 1 0.75 0 + 131 0.44155005290686722 0.82694732472031773 0.49456860768159278 + 132 1 0.78273284585014014 0.47551404931222474 + 133 0.38287826998448887 0.2013630967309232 0.60447962517080989 + 134 0 0 0.75 + 135 0.62983230818555247 0.84700515253582831 1 + 136 0.81727325899660663 0.1759822997916877 0.25576068443813083 + 137 1 0.63458571397607555 0.83147618725814465 + 138 0.6656813780406422 1 0.40174928932423737 + 139 0.75 0 1 + 140 0.40848629269381226 0.42704377573127544 0.77947607326357493 + 141 0.44239406439767798 0.29717852890863145 0 + 142 0.14677454155573733 0.525579934389652 0.50793654827326162 + 143 0.61309421735504355 0.4092851252678622 0.79993472845854541 + 144 0.20823216669816697 0.39691698776488438 0.58190382007541075 + 145 0.37548148263991343 0 0.1605331669127123 + 146 0.38839386792947717 0.63686245698126709 0.85466561955086251 + 147 0.36591551320937993 0.5977178841657933 0.58518767837351837 + 148 0.63141356002870541 1 0.88003785578356364 + 149 0.25 0 1 + 150 1 0 0.75 + 151 0.78408572467920579 0.8074917066659878 0.21936631692947178 + 152 0.8812168869437329 0.63657656352165437 1 + 153 0 0.61944223686142186 0.37882181396335379 + 154 0 0.75 0 + 155 0.24908214871663473 0.62461930319581627 0.39213577071797046 +# Generated by /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../tetgen-v161/build/tetgen -pqa0.005 /home/fuhrmann/Wias/work/tetgen/codeberg/TestingDrafts/src/../quarry/cube.smesh diff --git a/test/runtests.jl b/test/runtests.jl index 0fbdf62c..048ba504 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -248,6 +248,13 @@ end @test testrw(simplexgrid(X, X), "dom"; compare_kwargs = (sort = true, skipkeys = [XCoordinates, YCoordinates, BRegionDomCode])) end +@testset "Read ele" begin + g = simplexgrid("cube.1.ele") + @test num_nodes(g) == 156 + @test num_cells(g) == 537 + @test first.(extrema(g)) ≈ zeros(3) + @test last.(extrema(g)) ≈ ones(3) +end @testset "rectnd" begin function rect1d()