## General

#### How to rotate a rigid body about an axis that does not pass through the bodyâ€™s center of mass?

• FAQ
Participant

In LS-DYNA, parts assigned the material *MAT_RIGID are treated as rigid bodies. *BOUNDARY_PRESCRIBED_MOTION_RIGID is used for prescribing translational or rotational motion to a rigid body. By default, the motion is prescribed to the center of mass of the rigid body. DOF=8 can be used to prescribe rotational motion about an axis that is parallel to vector VID but that is still passing through the bodyâ€™s center of mass. Special care should be given so that the constraints specified with the fields CMO, CON1, and CON2 in *MAT_RIGID are not in conflict with the prescribed motion. To prescribe rotation about an axis that is away from the bodyâ€™s center of mass, one of the following two workarounds can be used. 1) *PART_INERTIA can be used instead of *PART for defining the rigid body. In *PART_INERTIA, the location of the center of mass can be specified by NODEID or by the coordinates XC, YC, ZC. By doing so *BOUNDARY_PRESCRIBED_MOTION_RIGID will apply the rotation about the location of NODEID or the location (XC, YC, ZC). The downside is that the translational mass TM and the inertia tensor terms should be also specified in *PART_INERTIA. Nonetheless, if all six degrees of freedom of the rigid body are prescribed or constrained, the mass and inertia terms can be arbitrary. Note that if a diagonal inertia tensor is specified, the terms in the diagonal should not be all equal. Otherwise, the analysis will terminate with an error. NODEID can be added as an extra node to the rigid body by using *CONSTRAINED_EXTRA_NODES while the coordinates XC, YC, ZC are ignored in NODEID is specified. 2) An alternative approach is to add a dummy rigid body whose center of mass is at the location about which the rotation needs to be prescribed. The dummy rigid body can be constrained to the original rigid body through an appropriate *CONSTRAINED_JOINT option, such as a LOCKING joint. Then, the rotation can be applied to the dummy rigid body using *BOUNDARY_PRESCRIBED_MOTION_RIGID.