33 nmat, sdeg, prop_mat, tag_mat, &
34 xx_loc, yy_loc, zz_loc, mpi_id, nmpi, &
35 nn, vtk_numbering_map, &
36 its, strain, stress, disp )
40 character*70 :: file_name_vtu, temp_char, file_name_pvtu, num_str1, num_str2
41 character*200 :: buffer
43 integer*4 :: nel_loc, nn_loc, cs_nnz_loc, mpi_id, nmat, nn, its, nmpi
44 integer*4 :: ie, inode, im, i
46 integer*4 :: unit_mpi, pvtu_unit
47 integer*4,
dimension(nmat) :: sdeg, tag_mat
48 integer*4,
dimension(nn*nn*nn) :: vtk_numbering_map, node_numbering_vtkwrite, loc_nod_indx
49 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
51 real*8,
dimension(nmat,4) :: prop_mat
52 real*8,
dimension(nn_loc) :: xx_loc, yy_loc, zz_loc
53 real*8,
dimension(6*nn_loc) :: strain, stress
54 real*8,
dimension(3*nn_loc) :: disp
58 nel_loc = cs_loc(0) - 1
62 if (strain(inode).lt. 1.0e-29) strain(inode) = 1.0e-29;
63 if (strain(inode).gt. 1.0e+29) strain(inode) = 1.0e+29;
68 write(file_name_vtu,
'(a,i8.8,a,i5.5,a)')
'./VTKOUT/SNAPSHOT_',its,
'.',mpi_id,
'.vtu'
70 write(temp_char,*)
'(i12,',nn*nn*nn,
'i12)'
72 unit_mpi = 2500 + mpi_id
73 open(unit_mpi,file=file_name_vtu)
76 buffer=
'<?xml version="1.0" encoding="utf-8"?>'
77 write(unit_mpi,
'(a)')trim(buffer)
78 buffer=
'<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">';
79 write(unit_mpi,
'(a)')trim(buffer)
80 buffer=
'<UnstructuredGrid>'
81 write(unit_mpi,
'(a)')trim(buffer)
82 write(num_str1,*)nn_loc;
write(num_str2,*)nel_loc;
83 buffer=
'<Piece NumberOfPoints="'//trim(adjustl(num_str1))//
'" NumberOfCells="'//trim(adjustl(num_str2))//
'">'
84 write(unit_mpi,
'(a)')trim(buffer)
88 write(unit_mpi,
'(a)')trim(buffer)
89 buffer=
'<DataArray type="Float32" NumberOfComponents="3" format="ascii">'
90 write(unit_mpi,
'(a)')trim(buffer)
92 write(unit_mpi,
'(3e20.12)') xx_loc(inode),yy_loc(inode),zz_loc(inode)
95 write(unit_mpi,
'(a)')trim(buffer)
97 write(unit_mpi,
'(a)')trim(buffer)
102 write(unit_mpi,
'(a)')trim(buffer)
104 buffer=
'<DataArray type="Int32" Name="connectivity" format="ascii">'
105 write(unit_mpi,
'(a)')trim(buffer)
107 im = cs_loc(cs_loc(ie -1) + 0 )
110 loc_nod_indx(i) = cs_loc(cs_loc(ie -1) + i) - 1
113 node_numbering_vtkwrite(i) = loc_nod_indx(vtk_numbering_map(i))
115 write(unit_mpi,temp_char) (node_numbering_vtkwrite(i), i=1,(nn*nn*nn))
117 buffer=
'</DataArray>'
118 write(unit_mpi,
'(a)')trim(buffer)
120 buffer=
'<DataArray type="Int32" Name="offsets" format="ascii">'
121 write(unit_mpi,
'(a)')trim(buffer)
122 write(unit_mpi,
'(6i12)') (ie*(nn*nn*nn), ie=1,nel_loc)
123 buffer=
'</DataArray>'
124 write(unit_mpi,
'(a)')trim(buffer)
126 buffer=
'<DataArray type="Int32" Name="types" format="ascii">'
127 write(unit_mpi,
'(a)')trim(buffer)
133 write(unit_mpi,
'(6i12)') (72,ie=1,nel_loc)
134 buffer=
'</DataArray>'
135 write(unit_mpi,
'(a)')trim(buffer)
138 write(unit_mpi,
'(a)')trim(buffer)
143 write(unit_mpi,
'(a)')trim(buffer)
146 buffer=
'<DataArray type="Float32" NumberOfComponents="6" Name="Strain" format="ascii">'
147 write(unit_mpi,
'(a)')trim(buffer)
150 write(unit_mpi,
'(6e20.12)') strain(im+1), strain(im+2), strain(im+3), strain(im+4), strain(im+5), strain(im+6)
152 buffer=
'</DataArray>'
153 write(unit_mpi,
'(a)')trim(buffer)
156 buffer=
'<DataArray type="Float32" NumberOfComponents="3" Name="Disp" format="ascii">'
157 write(unit_mpi,
'(a)')trim(buffer)
160 write(unit_mpi,
'(3e20.12)') disp(im+1), disp(im+2), disp(im+3)
162 buffer=
'</DataArray>'
163 write(unit_mpi,
'(a)')trim(buffer)
166 buffer=
'</PointData>'
167 write(unit_mpi,
'(a)')trim(buffer)
179 write(unit_mpi,
'(a)')trim(buffer)
180 buffer=
'</UnstructuredGrid>'
181 write(unit_mpi,
'(a)')trim(buffer)
183 write(unit_mpi,
'(a)')trim(buffer)
195 if (mpi_id.eq.0)
then
196 write(file_name_pvtu,
'(a,i8.8,a)')
'./VTKOUT/SNAPSHOT_',its,
'.pvtu'
198 open(pvtu_unit,file=file_name_pvtu)
200 buffer=
'<?xml version="1.0" encoding="utf-8"?>'
201 write(pvtu_unit,
'(a)')trim(buffer)
202 buffer=
'<VTKFile type="PUnstructuredGrid" version="0.1" byte_order="LittleEndian">';
203 write(pvtu_unit,
'(a)')trim(buffer)
204 buffer=
'<PUnstructuredGrid GhostLevel="0">'
205 write(pvtu_unit,
'(a)')trim(buffer)
209 write(pvtu_unit,
'(a)')trim(buffer)
210 buffer=
'<PDataArray type="Float32" NumberOfComponents="3" format="ascii"/>'
211 write(pvtu_unit,
'(a)')trim(buffer)
213 write(pvtu_unit,
'(a)')trim(buffer)
217 write(pvtu_unit,
'(a)')trim(buffer)
218 buffer=
'<PDataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii"/>'
219 write(pvtu_unit,
'(a)')trim(buffer)
220 buffer=
'<PDataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii"/>'
221 write(pvtu_unit,
'(a)')trim(buffer)
222 buffer=
'<PDataArray type="Int32" Name="types" NumberOfComponents="1" format="ascii"/>'
223 write(pvtu_unit,
'(a)')trim(buffer)
225 write(pvtu_unit,
'(a)')trim(buffer)
228 buffer=
'<PPointData>'
229 write(pvtu_unit,
'(a)')trim(buffer)
230 buffer=
'<PDataArray type="Float32" NumberOfComponents="6" Name="Strain" format="ascii"/>'
231 write(pvtu_unit,
'(a)')trim(buffer)
232 buffer=
'<PDataArray type="Float32" NumberOfComponents="3" Name="Disp" format="ascii"/>'
233 write(pvtu_unit,
'(a)')trim(buffer)
234 buffer=
'</PPointData>'
235 write(pvtu_unit,
'(a)')trim(buffer)
244 write(file_name_vtu,
'(a,i8.8,a,i5.5,a)')
'./SNAPSHOT_',its,
'.',i,
'.vtu'
245 buffer=
'<Piece Source="'//trim(file_name_vtu)//
'"/>'
246 write(pvtu_unit,
'(a)')trim(buffer)
249 buffer=
'</PUnstructuredGrid>'
250 write(pvtu_unit,
'(a)')trim(buffer)
252 write(pvtu_unit,
'(a)')trim(buffer)
subroutine write_vtu_timedata(nn_loc, cs_nnz_loc, cs_loc, nmat, sdeg, prop_mat, tag_mat, xx_loc, yy_loc, zz_loc, mpi_id, nmpi, nn, vtk_numbering_map, its, strain, stress, disp)
...Writing VTK file to visualise in Paraview