Surface (e_xx, e_yy, gam_xy) Strain from Deforming 3D Tri Mesh


Very new to Paraview, not new to FEM. Usual apologies apply, this may be trivial and if so sorry for asking… but if it is I’m unable to find anything in the manual (I have RTFM, at least some) or by searching the mailing list.

I have an AVS/UCD unstructured mesh of 3-node triangles representing a 3D solid deforming surface with 32 frames. The frames are consistent nodal points in time. Using frame 0 as a reference, I’d like to compute surface strain for the entire mesh. I’ve assumed that, should I write this myself, I’d use the constant-strain triangle method to find the strains, but figured (?) Paraview could probably just do this… am I right? Any hints on how?


That look like a job for the usual ForceTime + PythonCalculator/Programmable Filter.

  • Open, your dataset, Apply
  • Filter->ForceTime , 0, Apply
  • Keep ctrl down, and click on your dataset and the force time filter in the pipeline browser to select both
  • Add a Python Calculator or a Programmable filter, implement your computation (you may need help here)
  • Apply

I do not know how to implement the computation. I you need help with that, please provide a litle bit more info on how to compute surface strain.

Cool, thanks. I don’t know what that means yet but I’ll check it out. The actual computation is fairly straightforward but there are some 3D->2D transformations (and then back into 3D). I’ll start with this. Thank you!!!

OK, I’ve spoken with my collaborator and we agree we’d like to implement this in ParaView. I’m fluent (enough) in python and she will get there, and we both are comfortable with the mechanics. Our problem is, we don’t know the interface. So, here are a couple of questions. Feel free to respond with RTFM if that’s appropriate (maybe with page numbers too please?)…

  1. First things first, I am not sure the function name to call, or what is passed in as data. I need the mesh nodes and elements (which have come from a UCD-type mesh), over the timespan, passed into the function. I suspect this is as a structure…
  2. …I know what to do with it once it’s all there…
  3. The output will be element-specific, time-specific vectors; also could be output as magnitudes for simpler visualization.

OK this is embarrassing. I really don’t know jack about where to start. Manual page would really help. Sorry!! I’ve started reading the ParaView Guide but I’m taking baby steps here…

OK… one more thing (as if I haven’t been dumb enough! Ha!)…

I’m an old hat with FORTRAN. I’ve written custom boundary conditions for CFDRC; I’ve used (and understood) ANSYS UMATs (user materials)… but what I’m used to is a published API for FORTRAN. You write your codes knowing what variables are predefined and available, what your function calls look like (well, subroutine calls, this is FORTRAN after all…)…

I can’t seem to find a ParaView Python API… does that exist?

No problem. To understand the solution i’m proposing you will need to do the following :

  1. Experiment with ForceTime filter
  • Open your dataset containing timesteps, Show it.
  • Filter -> ForceTime, Apply
  • See how your dataset change when you click on play while the output of ForceTime does not
  • See how you can change the ForceTime output by changing it’s time force paramater
  1. Experiment with Programmable Filter
  1. Learn how to write your algorithm with vtkPython

Good luck

1 Like

Awesome. Thanks!!! It may be a week or so but I will try it all out.

There is a ParaView python API, called pvpython.
This is NOT what you will need to use in the Programmable Filter, it is used for automation and batch processing.

1 Like