34 nmat, sdeg, prop_mat, tag_mat, &
35 nmat_nlp, tag_mat_nlp, &
36 xx_loc, yy_loc, zz_loc, mpi_id, nn, vtk_numbering_map)
40 character*70 :: file_name, prop_name, temp_char
42 integer*4 :: nel_loc, nn_loc, cs_nnz_loc, mpi_id, nmat, nmat_nlp, nn
43 integer*4 :: ie, inode, im, im_nlp, i, j, k
46 integer*4,
dimension(nmat) :: sdeg, tag_mat
47 integer*4,
dimension(nn*nn*nn) :: vtk_numbering_map, node_numbering_vtkwrite, loc_nod_indx
48 integer*4,
dimension(nmat_nlp) :: tag_mat_nlp
49 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
50 integer*4,
dimension(nn_loc) :: nlp_flag
53 real*8,
dimension(nmat,4) :: prop_mat
54 real*8,
dimension(nn_loc) :: rho, lambda, mu
55 real*8,
dimension(nn_loc) :: xx_loc, yy_loc, zz_loc
57 nel_loc = cs_loc(0) - 1
60 rho = 0.d0; lambda = 0.d0; mu = 0.d0; nlp_flag = 0;
62 if (mpi_id.eq.0)
write(*,
'(A)')
63 if (mpi_id.eq.0)
write(*,
'(A)')
'------Writing VTK file - SCALAR ----------'
65 prop_name =
'MECH_PROP_NLP'
66 write(file_name,
'(a,i5.5,a)') trim(prop_name),mpi_id,
'.vtk'
67 unit_mpi = 2500 + mpi_id
70 open(unit_mpi,file=file_name)
71 write(unit_mpi,
'(a)')
'# vtk DataFile Version 3.1'
72 write(unit_mpi,
'(a)')
'material model VTK file'
73 write(unit_mpi,
'(a)')
'ASCII'
74 write(unit_mpi,
'(a)')
'DATASET UNSTRUCTURED_GRID'
75 write(unit_mpi,
'(a,i12,a)')
'POINTS ', nn_loc,
' float'
79 write(unit_mpi,
'(3e20.12)') xx_loc(inode),yy_loc(inode),zz_loc(inode)
84 write(unit_mpi,
'(a,i12,i12)')
"CELLS ",nel_loc,nel_loc*(nn*nn*nn + 1)
86 write(temp_char,*)
'(i12,',nn*nn*nn,
'i12)'
88 im = cs_loc(cs_loc(ie -1) + 0 )
92 loc_nod_indx(i) = cs_loc(cs_loc(ie -1) + i) - 1
95 node_numbering_vtkwrite(i) = loc_nod_indx(vtk_numbering_map(i))
102 write(unit_mpi,temp_char) nn*nn*nn, (node_numbering_vtkwrite(i), i=1,(nn*nn*nn))
112 inode = cs_loc( cs_loc(ie-1) + nn*nn*(k-1) + nn*(j-1) + i )
113 rho(inode) = prop_mat(im,1); lambda(inode) = prop_mat(im,2);
114 mu(inode) = prop_mat(im,3);
127 write(unit_mpi,
'(a,i12)')
"CELL_TYPES ",nel_loc
128 write(unit_mpi,
'(6i12)') (72,ie=1,nel_loc)
132 write(unit_mpi,
'(a,i12)')
"POINT_DATA ",nn_loc
135 write(unit_mpi,
'(a)')
'SCALARS DENSITY float'
136 write(unit_mpi,
'(a)')
"LOOKUP_TABLE default"
138 write(unit_mpi,*) rho(inode)
143 write(unit_mpi,
'(a)')
'SCALARS Lambda float'
144 write(unit_mpi,
'(a)')
"LOOKUP_TABLE default"
146 write(unit_mpi,*) lambda(inode)
151 write(unit_mpi,
'(a)')
'SCALARS Mu float'
152 write(unit_mpi,
'(a)')
"LOOKUP_TABLE default"
154 write(unit_mpi,*) mu(inode)
183 if (mpi_id.eq.0)
write(*,
'(A)')
'Completed.'
197 integer*4,
intent(in) :: nn
198 integer*4,
dimension(nn*nn*nn),
intent(out) :: vtk_numbering
200 integer*4 :: i, j, k, i1, i2, i3, ncount
204 if (nn.le.1)
call exit()
207 k= 1; j=nn; i=nn; vtk_numbering(1) = nn*nn*(k-1) + nn*(j-1) + i;
208 k=nn; j=nn; i=nn; vtk_numbering(2) = nn*nn*(k-1) + nn*(j-1) + i;
209 k=nn; j=nn; i= 1; vtk_numbering(3) = nn*nn*(k-1) + nn*(j-1) + i;
210 k= 1; j=nn; i= 1; vtk_numbering(4) = nn*nn*(k-1) + nn*(j-1) + i;
212 k= 1; j= 1; i=nn; vtk_numbering(5) = nn*nn*(k-1) + nn*(j-1) + i;
213 k=nn; j= 1; i=nn; vtk_numbering(6) = nn*nn*(k-1) + nn*(j-1) + i;
214 k=nn; j= 1; i= 1; vtk_numbering(7) = nn*nn*(k-1) + nn*(j-1) + i;
215 k= 1; j= 1; i= 1; vtk_numbering(8) = nn*nn*(k-1) + nn*(j-1) + i;
223 k=i1; j=nn; i=nn; vtk_numbering(8 + i1 -1) = nn*nn*(k-1) + nn*(j-1) + i;
226 k=nn; j=nn; i=nn-i1+1; vtk_numbering(8 + (nn-2) + i1 -1) = nn*nn*(k-1) + nn*(j-1) + i;
229 k=i1; j=nn; i= 1; vtk_numbering(8 + 2*(nn-2) + i1 -1) = nn*nn*(k-1) + nn*(j-1) + i;
232 k= 1; j=nn; i=nn-i1+1; vtk_numbering(8 + 3*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
237 k=i1; j= 1; i=nn; vtk_numbering(8 + 4*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
240 k=nn; j= 1; i=nn-i1+1; vtk_numbering(8 + 5*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
243 k=i1; j= 1; i= 1; vtk_numbering(8 + 6*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
246 k= 1; j= 1; i=nn-i1+1; vtk_numbering(8 + 7*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
251 k= 1; j=nn-i1+1; i=nn; vtk_numbering(8 + 8*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
254 k=nn; j=nn-i1+1; i=nn; vtk_numbering(8 + 9*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
257 k= 1; j=nn-i1+1; i= 1; vtk_numbering(8 + 10*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
260 k=nn; j=nn-i1+1; i= 1; vtk_numbering(8 + 11*(nn-2) + i1-1) = nn*nn*(k-1) + nn*(j-1) + i;
271 k= 1; j=nn-i1+1; i=nn-i2+1; vtk_numbering(8 + 12*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
274 k=nn; j=nn-i1+1; i=nn-i2+1; vtk_numbering(8 + 12*(nn-2) + 1*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
277 k=i2; j=nn-i1+1; i=nn; vtk_numbering(8 + 12*(nn-2) + 2*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
280 k=i2; j=nn-i1+1; i= 1; vtk_numbering(8 + 12*(nn-2) + 3*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
283 k=i2; j=nn; i=nn-i1+1; vtk_numbering(8 + 12*(nn-2) + 4*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
286 k=i2; j=1; i=nn-i1+1; vtk_numbering(8 + 12*(nn-2) + 5*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
296 k=i3; j=nn-i1+1; i=nn-i2+1; vtk_numbering(8 + 12*(nn-2) + 6*(nn-2)*(nn-2) + ncount) = nn*nn*(k-1) + nn*(j-1) + i;
subroutine write_vtk_mech_prop(nn_loc, cs_nnz_loc, cs_loc, nmat, sdeg, prop_mat, tag_mat, nmat_nlp, tag_mat_nlp, xx_loc, yy_loc, zz_loc, mpi_id, nn, vtk_numbering_map)
...Writing VTK file to visualise in Paraview