tensors.py 710 B

123456789101112131415161718192021222324252627282930
  1. """Visualize stress tensors as ellipsoids"""
  2. import vtk
  3. from vedo import *
  4. # Create a test volume with tensors
  5. pl = vtk.vtkPointLoad()
  6. pl.SetLoadValue(50)
  7. pl.SetSampleDimensions(6,6,6)
  8. pl.ComputeEffectiveStressOn()
  9. pl.SetPoissonsRatio(0.2)
  10. pl.SetModelBounds(-10,10,-10,10,-10,10)
  11. pl.Update()
  12. vol = Volume(pl.GetOutput()).mode(1)
  13. print(vol)
  14. # Extract a slice of the volume data at index 3
  15. zsl = vol.zslice(3)
  16. # Generate tensor ellipsoids
  17. tens1 = Tensors(vol, source='ellipse', scale=10).cmap("Reds")
  18. print(tens1)
  19. tens2 = Tensors(zsl, source='ellipse', scale=20).cmap("Greens")
  20. print(tens2)
  21. show([(vol, __doc__), tens1], N=2, axes=9, viewup='z').close()
  22. show(vol, tens2, zsl, axes=9, viewup='z').close()