[Paraview] Rotational velocities

David Thompson david.thompson at kitware.com
Tue Jul 8 20:04:30 EDT 2014


>> 2)      I want to calculate the rotational velocities of a component (block of elements) in paraview using the nodal translational velocities. How do I do that?

> It would be good to have some more clear mathematical definition of (2). I am assuming it involves some sort of integration but it is not clear.

Assuming that the elements are (mostly) undergoing rigid-body motion, you could estimate the instant center of rotation and decompose the velocity into rotational and linear components. It should only take 3 points and their velocities (in 3-D, or 2 pts in 2-D) to estimate the instant center. For the 2-D case, see

  http://emweb.unl.edu/NEGAHBAN/EM373/note16/note.htm

In 3-D, you get an axis, not a point. Having more than 3 (or 2 in 2-D) points generates a distribution of instant centers. For a deformable body, the distribution might not be anything like a point/line in space. You can imagine a pancake being flipped and see that the instantaneous angular velocity at the edges (far from the "axis of flip") would oscillate above and below that of the portion nearest the "axis of flip" -- because pancakes can curl (taco?) a good deal while flipping. How should ParaView report that? As a single angular velocity for the pancake, averaged over the entire cake? What if there are multiple pancakes? One average for each connected component? One for the full stack? :-)

For each set of nodes N_i you want to use in an estimate, you could deflect nodal coordinates by their velocity N_i' = N_i + delta_t * V_i and then compute the optimal rotation matrix using the Kabsch algorithm:

  http://en.wikipedia.org/wiki/Kabsch_algorithm

From the optimal rotation matrix, you can choose the eigenvector with the largest eigenvalue and use it as an estimate of the instant center of rotation. With the instant center, you can then decompose each nodal velocity into an angular velocity magnitude and linear velocity magnitude -- and average over all the nodes in a connected component/block/full stack.

	David


More information about the ParaView mailing list