From d6b8100a88906f7dff75c3e5f2173ce7656c38f7 Mon Sep 17 00:00:00 2001 From: Dave Whipp <dwhipp@dal.ca> Date: Thu, 10 Dec 2009 21:39:43 +0000 Subject: [PATCH] Added output of elemental pressures and smooth pressures --- src/VTK/post.f90 | 152 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 108 insertions(+), 44 deletions(-) diff --git a/src/VTK/post.f90 b/src/VTK/post.f90 index 0b6b2fd0..900f11a5 100644 --- a/src/VTK/post.f90 +++ b/src/VTK/post.f90 @@ -6,8 +6,8 @@ MODULE definitions integer noctree,nnode,nleaves integer nelemr,nlsf double precision,dimension(:),pointer::x,y,z - double precision,dimension(:),pointer::u,v,w,temp,pressure,strain - double precision,dimension(:),pointer::nodal_pressure + double precision,dimension(:),pointer::u,v,w,wpreiso,temp,pressure,strain + double precision,dimension(:),pointer::nodal_pressure,spressure double precision,dimension(:),pointer::e2d double precision,dimension(:),pointer::crit integer,dimension(:,:),pointer::icon,iconr @@ -57,10 +57,15 @@ integer :: iunit,ilsf,nne,is,k,npcl,j,np,nl integer :: output_u_field integer :: output_v_field integer :: output_w_field +integer :: output_velo_vect +integer :: output_preiso_velo_vect integer :: output_disp_field -integer :: output_press_field +integer :: output_press_fieldn +integer :: output_press_fielde +integer :: output_smooth_press_fielde integer :: output_temp_field -integer :: output_e2d_field +integer :: output_e2d_fielde +integer :: output_e2d_fieldn integer :: output_crit_field integer :: output_strain_field integer :: output_lsf_field @@ -158,11 +163,16 @@ write(*,*) '-------------------------------------------------------------------- open(unit=77,file='input_of_outputs.txt',status='old') read(77,*) output_u_field read(77,*) output_v_field -read(77,*) output_w_field +read(77,*) output_w_field +read(77,*) output_velo_vect +read(77,*) output_preiso_velo_vect read(77,*) output_disp_field -read(77,*) output_press_field +read(77,*) output_press_fieldn +read(77,*) output_press_fielde +read(77,*) output_smooth_press_fielde read(77,*) output_temp_field -read(77,*) output_e2d_field +read(77,*) output_e2d_fielde +read(77,*) output_e2d_fieldn read(77,*) output_crit_field read(77,*) output_strain_field read(77,*) output_lsf_field @@ -176,10 +186,15 @@ read(77,*) output_regular write(*,*) 'output u field ->',(output_u_field==1) write(*,*) 'output v field ->',(output_v_field==1) write(*,*) 'output w field ->',(output_w_field==1) +write(*,*) 'output velo vectors ->',(output_velo_vect==1) +write(*,*) 'output preiso velo vectors->',(output_preiso_velo_vect==1) write(*,*) 'output disp field ->',(output_disp_field==1) -write(*,*) 'output press field ->',(output_press_field==1) +write(*,*) 'output node press field ->',(output_press_fieldn==1) +write(*,*) 'output raw press field ->',(output_press_fielde==1) +write(*,*) 'output smooth press field ->',(output_smooth_press_fielde==1) write(*,*) 'output temp field ->',(output_temp_field==1) -write(*,*) 'output e2d field ->',(output_e2d_field==1) +write(*,*) 'output elemental e2d field->',(output_e2d_fielde==1) +write(*,*) 'output nodal e2d field ->',(output_e2d_fieldn==1) write(*,*) 'output crit field ->',(output_crit_field==1) write(*,*) 'output strain field ->',(output_strain_field==1) write(*,*) 'output lsf field ->',(output_lsf_field==1) @@ -198,7 +213,7 @@ read (7) ov%noctree,ov%nnode,ov%nleaves,ner,ov%nlsf,npcl,current_time nn=ov%nnode allocate(ov%on(nn)) allocate(ov%x(nn),ov%y(nn),ov%z(nn)) -allocate(ov%u(nn),ov%v(nn),ov%w(nn)) +allocate(ov%u(nn),ov%v(nn),ov%w(nn),ov%wpreiso(nn)) allocate(ov%pressure(ov%nleaves),ov%strain(nn)) allocate(ov%e2d(ov%nleaves)) allocate(ov%whole_leaf_in_fluid(ov%nleaves)) @@ -209,7 +224,7 @@ allocate(influid(nn)) allocate(invoid(nn)) allocate(rtf(nn),ftr(nn),elvoid(nn)) allocate(surface(ov%nlsf)) -allocate(ov%nodal_pressure(nn)) +allocate(ov%nodal_pressure(nn),ov%spressure(ov%nleaves)) allocate(ov%icon(8,ov%nleaves)) allocate(ov%octree(ov%noctree)) @@ -219,6 +234,7 @@ allocate(ov%octree(ov%noctree)) read(7)(ov%x(i),ov%y(i),ov%z(i), & ov%u(i),ov%v(i),ov%w(i), & + ov%wpreiso(i), & ov%lsf(i,1:ov%nlsf), & ov%temp(i), & ov%nodal_pressure(i), & @@ -230,6 +246,10 @@ read(7)(ov%x(i),ov%y(i),ov%z(i), & !====================== read(7) (ov%icon(1:8,ie), & +! Line below added by dwhipp - 12/09 + ov%pressure(ie), & +! Line below added by dwhipp - 12/09 + ov%spressure(ie), & ov%crit(ie), & ov%e2d(ie), & ov%whole_leaf_in_fluid(ie), & @@ -368,7 +388,12 @@ write(*,'(a,2f30.20)') 'z range : ',minval(ov%z(1:nn)), max write(*,'(a,2f30.20)') 'u range : ',minval(ov%u(1:nn)), maxval(ov%u(1:nn)) write(*,'(a,2f30.20)') 'v range : ',minval(ov%v(1:nn)), maxval(ov%v(1:nn)) write(*,'(a,2f30.20)') 'w range : ',minval(ov%w(1:nn)), maxval(ov%w(1:nn)) -write(*,'(a,2f30.20)') 'pressure (nodes) range : ',minval(ov%nodal_pressure), maxval(ov%nodal_pressure) +write(*,'(a,2f30.20)') 'w (preiso) range : ',minval(ov%wpreiso(1:nn)),maxval(ov%wpreiso(1:nn)) +! Line below added by dwhipp - 12/09 +write(*,'(a,2f30.20)') 'pressure range : ',minval(ov%pressure), maxval(ov%pressure) +! Line below added by dwhipp - 12/09 +write(*,'(a,2f30.20)') 'smooth pressure range : ',minval(ov%spressure), maxval(ov%spressure) +write(*,'(a,2f30.20)') 'pressure (nodes) range : ',minval(ov%nodal_pressure),maxval(ov%nodal_pressure) write(*,'(a,2f30.20)') 'e2d range : ',minval(ov%e2d), maxval(ov%e2d) write(*,'(a,2f30.20)') 'e2d (nodes) range : ',minval(ov_nodee2d), maxval(ov_nodee2d) write(*,'(a,2f30.20)') 'crit range : ',minval(ov%crit), maxval(ov%crit) @@ -752,17 +777,16 @@ if(output_disp_field==1) then enddo end if -if(output_press_field==1) then - write(iunit,'(a)')'SCALARS p float 1' +if(output_press_fieldn==1) then + write(iunit,'(a)')'SCALARS pressure_n float 1' write(iunit,'(a)')'LOOKUP_TABLE default' do i=1,nnn write(iunit,'(e11.4)') ov%nodal_pressure(rtf(i)) enddo end if - -if(output_e2d_field==1) then - write(iunit,'(a)')'SCALARS e2d float 1' +if(output_e2d_fieldn==1) then + write(iunit,'(a)')'SCALARS e2dn float 1' write(iunit,'(a)')'LOOKUP_TABLE default' do i=1,nnn write(iunit,'(e11.4)') ov_nodee2d(rtf(i)) @@ -777,7 +801,6 @@ if(output_crit_field==1) then enddo end if - if(output_strain_field==1) then write(iunit,'(a)')'SCALARS s float 1' write(iunit,'(a)')'LOOKUP_TABLE default' @@ -805,42 +828,83 @@ if(output_lsf_field==1) then enddo enddo end if -write(iunit,'(a)')'VECTORS velo float' -do i=1,nnn - write(iunit,'(3e11.4)')ov%u(rtf(i)),ov%v(rtf(i)),ov%w(rtf(i)) -enddo + +if(output_velo_vect==1) then + write(iunit,'(a)')'VECTORS velo float' + do i=1,nnn + write(iunit,'(3e11.4)')ov%u(rtf(i)),ov%v(rtf(i)),ov%w(rtf(i)) + enddo +endif + +if(output_preiso_velo_vect==1) then + write(iunit,'(a)')'VECTORS preiso-velo float' + do i=1,nnn + write(iunit,'(3e11.4)')ov%u(rtf(i)),ov%v(rtf(i)),ov%wpreiso(rtf(i)) + enddo +endif if (output_strain_tensor/=0) then -allocate (strainn(3,3,nnn),nstrain(nnn)) -strainn=0.d0 -nstrain=0 - do ie=1,nnne - if (elvoid(ie).eq.0) then - do k=1,nne - strainn(:,:,ftr(ov%icon(k,ie)))=strainn(:,:,ftr(ov%icon(k,ie)))+strain(:,:,ie) - nstrain(ftr(ov%icon(k,ie)))=nstrain(ftr(ov%icon(k,ie)))+1 - enddo - endif - enddo -do i=1,nnn -if (nstrain(i).ne.0) strainn(:,:,i)=strainn(:,:,i)/nstrain(i) -enddo -write(iunit,'(a)')'TENSORS strain float' -do i=1,nnn - write(iunit,'(3e11.4)') strainn(1,:,i) - write(iunit,'(3e11.4)') strainn(2,:,i) - write(iunit,'(3e11.4)') strainn(3,:,i) -enddo -deallocate (strainn,nstrain) + allocate (strainn(3,3,nnn),nstrain(nnn)) + strainn=0.d0 + nstrain=0 + do ie=1,nnne + if (elvoid(ie).eq.0) then + do k=1,nne + strainn(:,:,ftr(ov%icon(k,ie)))=strainn(:,:,ftr(ov%icon(k,ie)))+strain(:,:,ie) + nstrain(ftr(ov%icon(k,ie)))=nstrain(ftr(ov%icon(k,ie)))+1 + enddo + endif + enddo + do i=1,nnn + if (nstrain(i).ne.0) strainn(:,:,i)=strainn(:,:,i)/nstrain(i) + enddo + write(iunit,'(a)')'TENSORS strain float' + do i=1,nnn + write(iunit,'(3e11.4)') strainn(1,:,i) + write(iunit,'(3e11.4)') strainn(2,:,i) + write(iunit,'(3e11.4)') strainn(3,:,i) + enddo + deallocate (strainn,nstrain) endif +write(iunit,'(a10,i10)')'CELL_DATA ', nnne + +if (output_e2d_fielde==1) then + write(iunit,'(a)')'SCALARS e2de float 1' + write(iunit,'(a)')'LOOKUP_TABLE default' + do ie=1,ov%nleaves + if (elvoid(ie).eq.0) then + write(iunit,'(e11.4)') ov%e2d(ie) + endif + enddo +end if + +if(output_press_fielde==1) then + write(iunit,'(a)')'SCALARS pressure_e float 1' + write(iunit,'(a)')'LOOKUP_TABLE default' + do ie=1,ov%nleaves + if (elvoid(ie).eq.0) then + write(iunit,'(e11.4)') ov%pressure(ie) + endif + enddo +end if + +if(output_smooth_press_fielde==1) then + write(iunit,'(a)')'SCALARS smooth_pressure_e float 1' + write(iunit,'(a)')'LOOKUP_TABLE default' + do ie=1,ov%nleaves + if (elvoid(ie).eq.0) then + write(iunit,'(e11.4)') ov%smooth_pressure(ie) + endif + enddo +end if + write(iunit,'(a)')'done visu.vtk' close(iunit) write(*,*) '--------------------------------------------------------------------------' write(*,*)'opla I am done producing visu.vtk ' - !============================================================================== !======[produce norm<i>.vtk file]============================================== !============================================================================== -- GitLab