From c772b42b3ad9ac3207b037ed9cfde365e52ea9fa Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Wed, 20 Oct 2021 14:48:55 +0200 Subject: [PATCH] First version of pvtu working --- Manifest.toml | 8 +++++--- Project.toml | 1 + src/GridapDistributed.jl | 1 + src/Visualization.jl | 24 ++++++++++++------------ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index b40d3fd7..ec9f4c75 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -148,8 +148,8 @@ version = "0.10.20" [[Gridap]] deps = ["AbstractTrees", "BSON", "BlockArrays", "Combinatorics", "DocStringExtensions", "FastGaussQuadrature", "FileIO", "FillArrays", "ForwardDiff", "JLD2", "JSON", "LineSearches", "LinearAlgebra", "NLsolve", "NearestNeighbors", "QuadGK", "Random", "SparseArrays", "SparseMatricesCSR", "StaticArrays", "Test", "WriteVTK"] -git-tree-sha1 = "192cb4f55c2eeefcd7e39dd208a58e46fc9840a5" -repo-rev = "gridap_distributed" +git-tree-sha1 = "1b391fd3043b6b44e8572abff12d00fa91e2e49e" +repo-rev = "pvtu_grid" repo-url = "https://github.com/gridap/Gridap.jl.git" uuid = "56d4f2e9-7ea1-5844-9cf6-b9c51ca7ce8e" version = "0.17.0" @@ -473,7 +473,9 @@ uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[WriteVTK]] deps = ["Base64", "CodecZlib", "FillArrays", "LightXML", "TranscodingStreams"] -git-tree-sha1 = "c3403143cecb391ea51fc133be82b024e4ce720b" +git-tree-sha1 = "9345fe8d0bf4f789bb1305f248595ceb7dd97d1b" +repo-rev = "master" +repo-url = "https://github.com/gridap/WriteVTK.jl" uuid = "64499a7a-5c06-52f2-abe2-ccb03c286192" version = "1.11.0" diff --git a/Project.toml b/Project.toml index f4981849..27dddced 100644 --- a/Project.toml +++ b/Project.toml @@ -10,6 +10,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192" [compat] Gridap = "0.17" diff --git a/src/GridapDistributed.jl b/src/GridapDistributed.jl index 2cf7e16f..65eff54c 100644 --- a/src/GridapDistributed.jl +++ b/src/GridapDistributed.jl @@ -15,6 +15,7 @@ using PartitionedArrays const PArrays = PartitionedArrays using SparseArrays +using WriteVTK import Gridap.TensorValues: inner, outer, double_contraction, symmetric_part import LinearAlgebra: det, tr, cross, dot, ⋅ diff --git a/src/Visualization.jl b/src/Visualization.jl index bf2b2e62..0b83c73f 100644 --- a/src/Visualization.jl +++ b/src/Visualization.jl @@ -6,7 +6,7 @@ function Base.getproperty(x::DistributedVisualizationData, sym::Symbol) if sym == :grid map_parts(i->i.grid,x.visdata) elseif sym == :filebase - map_parts(i->i.filebase,x.visdata) + get_part(x.visdata).filebase elseif sym == :celldata map_parts(i->i.celldata,x.visdata) elseif sym == :nodaldata @@ -32,8 +32,7 @@ function Visualization.visualization_data( vd = map_parts( parts,model.models,model.gids.partition,labels.labels) do part,model,gids,labels - n = lpad(part,ceil(Int,log10(nparts)),'0') - vd = visualization_data(model,"$(filebase)_$(n)";labels=labels) + vd = visualization_data(model,filebase;labels=labels) vd_cells = vd[end] push!(vd_cells.celldata, "gid" => gids.lid_to_gid) push!(vd_cells.celldata, "part" => gids.lid_to_part) @@ -63,9 +62,8 @@ function Visualization.visualization_data( vd = map_parts( parts,trians,cdat,fdat) do part,trian,celldata,cellfields - n = lpad(part,ceil(Int,log10(nparts)),'0') vd = visualization_data( - trian,"$(filebase)_$(n)"; + trian,filebase; order=order,nsubcells=nsubcells, celldata=celldata,cellfields=cellfields) @assert length(vd) == 1 @@ -131,19 +129,21 @@ end # Vtk related -# TODO use pvd format - function Visualization.write_vtk_file( grid::AbstractPData{<:Grid}, filebase; celldata, nodaldata) - map_parts(grid,filebase,celldata,nodaldata) do g,f,c,n - write_vtk_file(g,f;celldata=c,nodaldata=n) - end + pvtk = Visualization.create_vtk_file(grid,filebase;celldata=celldata,nodaldata=nodaldata) + map_parts(vtk_save,pvtk) end function Visualization.create_vtk_file( grid::AbstractPData{<:Grid}, filebase; celldata, nodaldata) - map_parts(grid,filebase,celldata,nodaldata) do g,f,c,n - create_vtk_file(g,f;celldata=c,nodaldata=n) + parts = get_part_ids(grid) + nparts = length(parts) + map_parts(parts,grid,celldata,nodaldata) do part,g,c,n + Visualization.create_pvtk_file( + g,filebase; + pvtkargs=[:part=>part,:nparts=>nparts], + celldata=c,nodaldata=n) end end