How does the Strain Based Dynamics material transform work?
Posted: Mon Jun 27, 2016 9:59 pm
Hi,
I am working on an implementation of strain based dynamics, but am stuck understanding how one part of it operates.
In Strain Based Dynamics a constraint is derived so that Green's Strain Tensor is a function of the relative locations of the points of a tetrahedron or triangle, and this then drives the position corrections for the points. For triangles, the formulation requires that the relative points be converted into a 2D coordinate system local to the triangle.
This transform is provided as:
Q = [n1,n2]'*(x1-x0,x2-x0)
Where n1 and n2 are normal tangent vectors, to the triangle defined by points x0, x1 & x2.
The strain tensor is then computed as S = Q^-1'*P'*P*Q^-1, Where P is the edges of the triangle ([x1-x0,x2-x0])
I know that this *does* work, as I have worked through an example and can see the resulting tensor and its rotation invariance in 3D, but I can't see *how*.
I think most of the confusion arises from not understanding what 'Q' is now. What does this technique do: [n1,n2]'*(x1-x0,x2-x0) ? I am supposing its something like forming a set of basis vectors, but I've not seen anything like it.
Further, the tensor is now defined as Q^-1'*P'*P*Q^1, whereas before (for untransformed coordinates) it was (P*Q^-1)'*(P*Q^-1).
Has anyone been looking at this who can explain geometrically what is going on?
Sj
I am working on an implementation of strain based dynamics, but am stuck understanding how one part of it operates.
In Strain Based Dynamics a constraint is derived so that Green's Strain Tensor is a function of the relative locations of the points of a tetrahedron or triangle, and this then drives the position corrections for the points. For triangles, the formulation requires that the relative points be converted into a 2D coordinate system local to the triangle.
This transform is provided as:
Q = [n1,n2]'*(x1-x0,x2-x0)
Where n1 and n2 are normal tangent vectors, to the triangle defined by points x0, x1 & x2.
The strain tensor is then computed as S = Q^-1'*P'*P*Q^-1, Where P is the edges of the triangle ([x1-x0,x2-x0])
I know that this *does* work, as I have worked through an example and can see the resulting tensor and its rotation invariance in 3D, but I can't see *how*.
I think most of the confusion arises from not understanding what 'Q' is now. What does this technique do: [n1,n2]'*(x1-x0,x2-x0) ? I am supposing its something like forming a set of basis vectors, but I've not seen anything like it.
Further, the tensor is now defined as Q^-1'*P'*P*Q^1, whereas before (for untransformed coordinates) it was (P*Q^-1)'*(P*Q^-1).
Has anyone been looking at this who can explain geometrically what is going on?
Sj