Welcome to ask.woodem.org. You may post when you login through your GitHub account.

Can I use ParaView to visualize the forces on facets?

0 votes
754 views
asked Jul 10, 2015 by GeekEqualsGood42 (1,030 points)

Hello Václav,

I recall that, when using a VtkExport engine in a Yade simulation that contained a mesh, the engine would export the force values (as well as stress values) for each facet in the mesh. This does not appear to happen when I do the same thing using a VtkExport in Woo. Is there a workaround for this? Is there any way to use ParaView to view the total magnitude of force on each facet in a mesh?

On a related topic, I am currently calculating the total force on a mesh by adding up the force values for all contacts for which either id1 or id2 matches the id of a particle somewhere in the mesh. Is this an accurate method of calculation?

Cheers and appreciate the help,

Christopher Stanbridge

1 Answer

0 votes
answered Jul 13, 2015 by eudoxos (49,030 points)
selected Jul 21, 2015 by GeekEqualsGood42
 
Best answer

Hi Christopher,

force on triangulation is currently not saved. How would you like to add it? Summing up forces is the correct approach, now do we want to have nodal forces (which might be reaction from the mesh) added as well? Only forces which are normal to the facet, or all of them? And do we divide the force by facet area, so that we have (mesh-size independent) something with stress dimension? Once we clear this out, it can be added to VtkExport in no time.

Would you perhaps open a new issue at https://github.com/eudoxos/woodem/issues to track it?

When you sum forces by hand, a few points

  1. you can see all (real) contacts of a particle p by asking for p.con, p.tacts or p.contacts (see https://https://woodem.org/woo.dem.html#woo.dem.Particle), you don't have to iterate through S.dem.con or such. (In Yade, this was not possible.)
  2. When you sum forces, the Contact.phys.force has the sign as applied on the first contacting particle, so it needs to be reverted for the second one. There  is the Contact::forceSign(const shared_ptr<Particle>&) method in c++, but it was not exposed to Python, so I did that now in 938500d (plus a test which shows how to use it here)
    EDIT: as this question reminded me, phys.force is in local coordinates of the contact, so must be rotated into global space. So the force on particle p from contact C would be something like C.geom.node.ori*C.phys.force*C.forceSign(p), as seen e.g. here on the c++ side.

Cheers, Václav

commented Jul 14, 2015 by eudoxos (49,030 points)

Added the edit about coordinate rotation.

...