Some questions about the membrane example.

42 views
edited Nov 2, 2018

Now i am learning the example of membrane1.py. I have read these codes as followed,

for n in S.dem.nodes:
n.dem.inertia=(1.,1.,1.)
n.dem.blocked=''

I am confused about the definition of inertia here. I am not good at the rotation inertia. When i referred to some knowledge, i found that rotation inertia a tensor and it can be transformed to a digonal tensor with three priciple axis. Here the definition of the node's inertia is a vector. So i am wondering if the three value is the three components of principle rotational inertia tensor?

The second is that in the engine of IntraForce, there is a functor named In2_Sphere_ElasMat(). I refered to the definition of this functor, but still not understand. Since the sphere has only one node, it does not generate internal force. Why it is applied a internal force using this functor?  How does this force come? The relative code is following,

IntraForce([In2_Membrane_ElastMat(thickness=.01,bending=False,bendThickness=.2),In2_Sphere_ElastMat()])

Thanks,

Xuesong Gao

answered Nov 3, 2018 by (49,070 points)

Hi Xuesong, the explicit inertia assignment is just to have some values there so that the nodes can rotate meaningfully. All nodes have local coordinates (position, orientation) which correspond to principal axes; since inertia tensor is diagonal, we only store the diagonal as a 3-vector (Ixx, Iyy, Izz).

In2_Sphere_ElastMat transfers contact force (from the surface) to the integration point (sphere center); this normally happens automatically in ContactLoop (for uninodal particles) but in that script, applyForces=False is set, so the functor is needed to have the spheres move. As far as I see, the In2_Sphere_ElastMat could be removed and the default (ContactLoop.applyForces=True) used instead, with the same effect.

HTH,

Vaclav

commented Nov 9, 2018 by (190 points)

Hi Vaclav,

Do you mean the three axes of local coordinate of the each node is in coincidence with the principal axes of the rotation inertia? As the rotation inertia tensor is related to the reference point, what is the reference point of a sphere? The axes of the principal rotation inertia are changed or not during the particle movement?
I also learned that the orientation is denoted by a quaternion, does this quaternion have something to do with the local coordinate system? Or the quaternion is determined in the global coordinate? Because there is word as followed,

"The orientation of the local system is given by the current node orientation q∘ as a quaternion"

I am not clearly understand the relation between the quaternion and principle rotation inertia.

Thanks,

Xuesong

commented Nov 11, 2018 by (49,070 points)

Hi, correct, local axes are defined (not coincident) as principal inertia axes. Reference point is the centroid, of course, which is the sphere's center. Local reference frame moves as the node is moving (node is defined by position and orientation). The rotation quaterion is given in global coordinate system (and defines local coordinate rotation), just like position (origin) is defined in global coordinate system (and defined local origin). HTH, Vaclav