##### Page tree
Go to start of banner

# 2020-09-29 Meeting notes

## Discussion items

ItemNotes
Multisphere

E-mail from Frank:

Martijn and I have been looking at the rigid body rotations in MercuryDPM and especially the difference between how it is done for multispheres and other objects (including superquadratics).

This is my current understanding: inertia_ is the initial moment of inertia matrix, rotation of a particle are encoded using a quaternion. For multispheres there is a master-slave relation between particles. The center-of-mass motion and rotation of a multisphere are stored at the master particle.

For multispheres the angularAccelerateMaster method is used, while for other particles angularAccelerate is used. Both function should do the same, but for different types of particles.

angularAccelerateMaster seems fine to me (in principle), while angularAccelerate solves

as

Here I have used the subscript ‘lab’ to denote the laboratory frame of reference. It is related to the quantities in the frame of the ‘principal axis’ by a rotation, e.g. , where  is the moment of inertial matrix actually used in the code.

I think here a term is missing in the update performed by angularAccelerate! The (correct) equation of motion is

This is actually done in angularAccelerateMaster, but in the frame of the ‘principal axes’

I have a few remarks:

1. The update of the angular velocity by angularAccelerate seems to be missing a term. I am not sure how important the missing term is in practice.
2. angularAccelerateMaster uses principal directions. This seems to contain exactly the same information as the quaternion. I have the impression this is superfluous.
3. I think, when using a fixed reference frame for the moment of inertia matrix, it is best to actually choose the coordinate system formed by the principal axis of the moment of inertia. In that reference frame the moment of inertia is diagonal: .
4. My proposal for a streamlined unified implementation would be to use  and a quaternion,  (with ) for the rotation of the principle axes (initially directed in x, y and z directions) to the current orientation. The dynamics now becomes

Here  is in the principal axes frame of reference. For the quaternion we have, applying the quaternion algebra,   and  where vectors are treated as quaternions with zero scalar part. Note that the angular velocity in the principal axes frame of reference was used. Therefore the multiplication with the angular momentum vector is on the right ().

1. In the implementation I do not get the invInertia2_ variable. Is this really needed?

With kind regards,

Frank

TriangleWalls

We need an implementation of TriangleWalls that allows only one contact per wall group

HC: Convex works, concave not

JA: Uses TriangleWalls for Sydney code, but could do without

TP: Needs it for the screw conveyor, Luca advises against it.

Coupling Branch

Three build systems. How to merge together.