@@ -6,7 +6,7 @@ function Base.getproperty(x::DistributedVisualizationData, sym::Symbol)
6
6
if sym == :grid
7
7
map_parts (i-> i. grid,x. visdata)
8
8
elseif sym == :filebase
9
- map_parts (i -> i . filebase, x. visdata)
9
+ get_part ( x. visdata). filebase
10
10
elseif sym == :celldata
11
11
map_parts (i-> i. celldata,x. visdata)
12
12
elseif sym == :nodaldata
@@ -32,8 +32,7 @@ function Visualization.visualization_data(
32
32
vd = map_parts (
33
33
parts,model. models,model. gids. partition,labels. labels) do part,model,gids,labels
34
34
35
- n = lpad (part,ceil (Int,log10 (nparts)),' 0' )
36
- vd = visualization_data (model," $(filebase) _$(n) " ;labels= labels)
35
+ vd = visualization_data (model,filebase;labels= labels)
37
36
vd_cells = vd[end ]
38
37
push! (vd_cells. celldata, " gid" => gids. lid_to_gid)
39
38
push! (vd_cells. celldata, " part" => gids. lid_to_part)
@@ -63,11 +62,16 @@ function Visualization.visualization_data(
63
62
64
63
vd = map_parts (
65
64
parts,trians,cdat,fdat) do part,trian,celldata,cellfields
66
- n = lpad (part,ceil (Int,log10 (nparts)),' 0' )
65
+ _celldata = Dict {Any,Any} (celldata)
66
+ # we do not use "part" since it is likely to be used by the user
67
+ if haskey (_celldata," piece" )
68
+ @unreachable " piece is a reserved cell data name"
69
+ end
70
+ _celldata[" piece" ] = fill (part,num_cells (trian))
67
71
vd = visualization_data (
68
- trian," $( filebase) _ $(n) " ;
72
+ trian,filebase;
69
73
order= order,nsubcells= nsubcells,
70
- celldata= celldata ,cellfields= cellfields)
74
+ celldata= _celldata ,cellfields= cellfields)
71
75
@assert length (vd) == 1
72
76
vd[1 ]
73
77
end
@@ -131,19 +135,21 @@ end
131
135
132
136
# Vtk related
133
137
134
- # TODO use pvd format
135
-
136
138
function Visualization. write_vtk_file (
137
139
grid:: AbstractPData{<:Grid} , filebase; celldata, nodaldata)
138
- map_parts (grid,filebase,celldata,nodaldata) do g,f,c,n
139
- write_vtk_file (g,f;celldata= c,nodaldata= n)
140
- end
140
+ pvtk = Visualization. create_vtk_file (grid,filebase;celldata= celldata,nodaldata= nodaldata)
141
+ map_parts (vtk_save,pvtk)
141
142
end
142
143
143
144
function Visualization. create_vtk_file (
144
145
grid:: AbstractPData{<:Grid} , filebase; celldata, nodaldata)
145
- map_parts (grid,filebase,celldata,nodaldata) do g,f,c,n
146
- create_vtk_file (g,f;celldata= c,nodaldata= n)
146
+ parts = get_part_ids (grid)
147
+ nparts = length (parts)
148
+ map_parts (parts,grid,celldata,nodaldata) do part,g,c,n
149
+ Visualization. create_pvtk_file (
150
+ g,filebase;
151
+ pvtkargs= [:part => part,:nparts => nparts],
152
+ celldata= c,nodaldata= n)
147
153
end
148
154
end
149
155
0 commit comments