Asaad--
I don't pretend to know all the ways to enter, or the easiest way to enter point-based stress tensors, however, I do know two ways to do this:
(1) Using the VTK XML-based format, see file VTK-XML-Stress-Coding.txt
(2) Using the EnSight Gold binary format, see file EnSight-Stress-Coding.txt
In these code extracts, I have included the two scalar datum
items Effective_Stress and Pressure. As useful as PV's
Calculator Filter is, I find it easier to do these two scalar
stress invariant calculations in the code that generates the
simulation results output.
Hope this helps. --Sam
On 5/12/2016 6:23 AM, Sellmann, Kai
Asaad wrote:
|
<snip> !! !! Start vtk "PointData" data. !! WRITE (IO_UNIT%LVTO,'(A)') '<PointData Tensors="Stress" Scalars="Material">' !! !! Write element-based (cell) stress data to VTK Data File. !! The retrieval function STRESS_DATA( element_n, component_i ) is used !! with the following stress-component retrieval pattern to produce the !! the stress-component pattern expected by ParaView (PV): !! ( 1 4 5 ) ( xx xy xz ) ( 1 2 3 ) !! Fma-3D Indices => ( 4 2 6 ) = ( yx yy yz ) = ( 4 5 6 ) <= PV Indices !! ( 5 6 3 ) ( zx zy zz ) ( 7 8 9 ) !! WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Float32" Name="Stress" NumberOfComponents="9" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6(1PE15.7)))') & ((/ STRESS_DATA(NELUSED(L),1),STRESS_DATA(NELUSED(L),4),STRESS_DATA(NELUSED(L),5), & STRESS_DATA(NELUSED(L),4),STRESS_DATA(NELUSED(L),2),STRESS_DATA(NELUSED(L),6), & STRESS_DATA(NELUSED(L),5),STRESS_DATA(NELUSED(L),6),STRESS_DATA(NELUSED(L),3) /), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Float32" Name="Effective_Stress" NumberOfComponents="1" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6(1PE15.7)))') (EFFECTIVE_STRESS(NELUSED(L)), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Float32" Name="Pressure" NumberOfComponents="1" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6(1PE15.7)))') (PRESSURE(NELUSED(L)), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Float32" Name="Bulk_Strain" NumberOfComponents="1" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6(1PE15.7)))') (BULK_STRAIN(NELUSED(L)), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Float32" Name="Strain_Energy" NumberOfComponents="1" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6(1PE15.7)))') (STRAIN_ENERGY_DENSITY(NELUSED(L)), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' WRITE(IO_UNIT%LVTO,'(2X,A)')'<DataArray type="Int32" Name="Material" NumberOfComponents="1" format="ascii">' Lbgn = 1 Lend = LREMAIN DO i = 1,LBLOCKS+1 WRITE(IO_UNIT%LVTO,'((6X,8I10))') (MatID_DATA(NELUSED(L)), L = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO WRITE(IO_UNIT%LVTO,'(2X,A)')'</DataArray>' !! !! End vtk "PointData" data. !! WRITE (IO_UNIT%LVTO,'(A)') '</PointData>' </snip>
<snip> !! !! Initialize sequential Material part counter. !! MPart = 0 !! !! Start this-time-step block. !! CBUFFER = "BEGIN TIME STEP" WRITE (IO_UNIT%LEGO) CBUFFER CBUFFER = "Element Stress(xx,yy,zz,xy,xz,yz) Results" WRITE (IO_UNIT%LEGO) CBUFFER !! !! Loop on Material parts. !! DO M = 1,NUMMT !! !! The function ELEMENTS_AND_NODES_USED(*) gen's nodal-points-used array NPTUSED, !! elements-used array NELUSED and vtk output-index-translation array NPTNOWI for !! this material. If material M is used, the function returns 1, otherwise 0. !! IF (ELEMENTS_AND_NODES_USED(M) .GT. 0) THEN NNodes = MATERIAL(M)%NNodes NElems = MATERIAL(M)%NElems CBUFFER = "part" WRITE (IO_UNIT%LEGO) CBUFFER MPart = MPart + 1 WRITE (IO_UNIT%LEGO) MPart Nend = 0 LBCOUNT = IBCOUNT MEL_COUNT = (/MHX,MPX,MPY,MTX,MM3,MP3,MM4,MP4,MTR,MPH,MPG/) DO k = 1,10 MXX = MEL_COUNT(k) IF (MXX .GT. 0) THEN Nbgn = Nend + 1 Nend = Nend + MXX CBUFFER = ESG_ELEMENT_TYPE(k) WRITE (IO_UNIT%LEGO) CBUFFER LBLOCKS = MXX / LBCOUNT LREMAIN = MXX - LBCOUNT*LBLOCKS !! !! NOTE: The symmetric stress tensor components stored in the 1-D !! array STRESS (*,1:6) in the program exactly match the component !! order expected by the EnSight Gold results file. !! !! Program ==> (/Sxx,Syy,Szz,Sxy,Sxz,Syz/) !! EnSight ==> (/S11,S22,S33,S12,S13,S23/) !! Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),1), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),2), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),3), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),4), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),5), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO Lbgn = Nbgn Lend = Lbgn + LREMAIN - 1 DO i = 1,LBLOCKS+1 WRITE (IO_UNIT%LEGO) (STRESS_DATA(NELUSED(n),6), n = Lbgn,Lend) Lbgn = Lend + 1 Lend = Lend + LBCOUNT ENDDO ENDIF ENDDO ENDIF ENDDO !! !! Close out this-time-step block. !! CBUFFER = "END TIME STEP" WRITE (IO_UNIT%LEGO) CBUFFER CLOSE (UNIT=IO_UNIT%LEGO, STATUS='KEEP') ENDIF </snip> ###################################################################################### The EnSight Case file -- ###################################################################################### FORMAT type: ensight gold GEOMETRY model: 1 1 fmaego.results.geom change_coords_only VARIABLE vector per node: 1 1 Displacement fmaego.results.ndis vector per node: 1 1 Velocity fmaego.results.nvel vector per node: 1 1 Acceleration fmaego.results.nacc scalar per element: 1 1 Material fmaego.results.emat scalar per element: 1 1 Material-State fmaego.results.esta scalar per element: 1 1 Pressure fmaego.results.eprs scalar per element: 1 1 Bulk-Strain fmaego.results.elnv scalar per element: 1 1 Strain-Energy-Density fmaego.results.esed scalar per element: 1 1 Effective-Stress fmaego.results.edev vector per element: 1 1 Stress*Vel fmaego.results.estv tensor symm per element: 1 1 Stress fmaego.results.estr TIME time set: 1 number of steps: 101 time values: 1.000000000000E-06 2.000000000000E-05 4.100000000000E-05 6.100000000000E-05 8.100000000000E-05 1.010000000000E-04 1.210000000000E-04 1.410000000000E-04 1.610000000000E-04 1.810000000000E-04 2.010000000000E-04 2.210000000000E-04 2.410000000000E-04 2.610000000000E-04 2.800000000000E-04 3.000000000000E-04 3.200000000000E-04 3.400000000000E-04 3.600000000000E-04 3.800000000000E-04 4.000000000000E-04 4.200000000000E-04 4.400000000000E-04 4.600000000000E-04 4.800000000000E-04 5.000000000000E-04 5.200000000000E-04 5.400000000000E-04 5.600000000000E-04 5.800000000000E-04 6.000000000000E-04 6.200000000000E-04 6.400000000000E-04 6.600000000000E-04 6.800000000000E-04 7.000000000000E-04 7.200000000000E-04 7.400000000000E-04 7.600000000000E-04 7.800000000000E-04 8.000000000000E-04 8.200000000000E-04 8.400000000000E-04 8.600000000000E-04 8.800000000000E-04 9.000000000000E-04 9.200000000000E-04 9.400000000000E-04 9.600000000000E-04 9.800000000000E-04 1.000000000000E-03 1.020000000000E-03 1.040000000000E-03 1.060000000000E-03 1.080000000000E-03 1.100000000000E-03 1.120000000000E-03 1.140000000000E-03 1.161000000000E-03 1.181000000000E-03 1.201000000000E-03 1.221000000000E-03 1.241000000000E-03 1.261000000000E-03 1.281000000000E-03 1.301000000000E-03 1.321000000000E-03 1.341000000000E-03 1.361000000000E-03 1.381000000000E-03 1.401000000000E-03 1.421000000000E-03 1.441000000000E-03 1.461000000000E-03 1.481000000000E-03 1.501000000000E-03 1.521000000000E-03 1.541000000000E-03 1.561000000000E-03 1.581000000000E-03 1.601000000000E-03 1.621000000000E-03 1.641000000000E-03 1.661000000000E-03 1.681000000000E-03 1.701000000000E-03 1.721000000000E-03 1.741000000000E-03 1.761000000000E-03 1.781000000000E-03 1.801000000000E-03 1.821000000000E-03 1.841000000000E-03 1.861000000000E-03 1.881000000000E-03 1.901000000000E-03 1.921000000000E-03 1.941000000000E-03 1.961000000000E-03 1.981000000000E-03 2.001000000000E-03 FILE file set: 1 number of steps: 101 ######################################################################################
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview