From ecac73211e9318cf001f0ff18e26829a464c756c Mon Sep 17 00:00:00 2001 From: termi-official Date: Fri, 29 Nov 2024 20:19:37 +0100 Subject: [PATCH 1/3] Recover export for non-Grid grid types. --- src/Export/VTK.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Export/VTK.jl b/src/Export/VTK.jl index 840817fd4b..9eb6e84e68 100644 --- a/src/Export/VTK.jl +++ b/src/Export/VTK.jl @@ -114,17 +114,19 @@ nodes_to_vtkorder(cell::QuadraticHexahedron) = [ cell.nodes[27], # interior ] -function create_vtk_griddata(grid::Grid{dim, C, T}) where {dim, C, T} +function create_vtk_griddata(grid::AbstractGrid{sdim}) where {sdim} cls = WriteVTK.MeshCell[] for cell in getcells(grid) celltype = cell_to_vtkcell(typeof(cell)) push!(cls, WriteVTK.MeshCell(celltype, nodes_to_vtkorder(cell))) end - coords = reshape(reinterpret(T, getnodes(grid)), (dim, getnnodes(grid))) + T = get_coordinate_eltype(grid) + nodes_flat = reinterpret(T, getnodes(grid)) + coords = reshape(nodes_flat, (sdim, getnnodes(grid))) return coords, cls end -function create_vtk_grid(filename::AbstractString, grid::Grid{dim, C, T}; kwargs...) where {dim, C, T} +function create_vtk_grid(filename::AbstractString, grid::AbstractGrid; kwargs...) coords, cls = create_vtk_griddata(grid) return WriteVTK.vtk_grid(filename, coords, cls; kwargs...) end From 88e8f76551d905cf40bd7af458d4b664f11e379f Mon Sep 17 00:00:00 2001 From: termi-official Date: Mon, 2 Dec 2024 13:04:55 +0100 Subject: [PATCH 2/3] Add regression test. --- test/test_abstractgrid.jl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test_abstractgrid.jl b/test/test_abstractgrid.jl index 16d3c8996c..5fe1b01da8 100644 --- a/test/test_abstractgrid.jl +++ b/test/test_abstractgrid.jl @@ -92,4 +92,19 @@ colors1 = Ferrite.create_coloring(subtype_grid, alg = ColoringAlgorithm.Greedy) colors2 = Ferrite.create_coloring(reference_grid, alg = ColoringAlgorithm.Greedy) @test all(colors1 .== colors2) + + @testset "IO interface" begin + # Generate files + gridfilename = "smallgrid" + refgridfilename = "refgrid" + VTKGridFile(gridfilename, subtype_grid) do vtk::VTKGridFile + end + VTKGridFile(refgridfilename, reference_grid) do vtk::VTKGridFile + end + # Check if the output is the same + @test bytes2hex(open(SHA.sha1, gridfilename * ".vtu")) == bytes2hex(open(SHA.sha1, refgridfilename * ".vtu")) + # Cleanup + rm(gridfilename * ".vtu") + rm(refgridfilename * ".vtu") + end end From f37ed608189cabdf0dea71f01d9b47af864353df Mon Sep 17 00:00:00 2001 From: termi-official Date: Mon, 2 Dec 2024 13:08:54 +0100 Subject: [PATCH 3/3] Runic --- test/test_abstractgrid.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_abstractgrid.jl b/test/test_abstractgrid.jl index 5fe1b01da8..e34536b95f 100644 --- a/test/test_abstractgrid.jl +++ b/test/test_abstractgrid.jl @@ -95,7 +95,7 @@ @testset "IO interface" begin # Generate files - gridfilename = "smallgrid" + gridfilename = "smallgrid" refgridfilename = "refgrid" VTKGridFile(gridfilename, subtype_grid) do vtk::VTKGridFile end