1 Introduction

The rigid body is a problem of classical mechanics that has been exhaustively studied (see, e.g., Goldstein 1980; Arnold 1989). Its simplicity, as well as its relation with the (nonlinear) rotation group, makes of it the ideal setting to study abstract concepts of geometric mechanics, such as Poisson structures, reduction, symmetry, stability. Additionally, many of the ideas that can be analyzed in the context of the rigid body can later be exploited in the study of nonlinear structural theories, such as rods and shells (for example in Simo et al. 1988; Antman 1995; Mielke and Holmes 1988). As a result, geometric integrators for the rigid body (Simo and Wong 1991; Romero 2008) are at the root of more complex numerical integration schemes for models that involve, in one way or another, rotations (Simo and Vu-Quoc 1986; Lewis and Simo 1994; Sansour and Bednarczyk 1995; Jelenić and Crisfield 1998; Romero and Armero 2002b; Betsch and Steinmann 2003; Romero and Arnold 2017).

More specifically, the role of the rotation group is key because it is usually chosen to be the configuration space of the rigid body, when the latter has a fixed point. The rich Lie group structure of this set is responsible for much of the geometric theory of the rigid body, but it is not the only possible way to describe it. For example, the configuration of the rigid body with a fixed point can also be described with three mutually orthogonal unit vectors. While this alternative description makes use of constraints, it has proven useful in the past for the construction of conserving numerical methods for rigid bodies, rods, and multibody systems (Romero and Armero 2002a; Betsch and Steinmann 2002; Betsch and Leyendecker 2006).

In this article we explore a third route that can be followed to describe the kinematics of rigid bodies. This avenue is based on introducing a non-twisting or Bishop frame of motion (Bishop 1975). This frame consists of three mutually orthogonal unit vectors whose rotation rate around one of the three axis remains zero at all times. Such a frame has proven useful to study the configuration of nonlinear Kirchhoff rods (Shi and Hearst 1994; McMillen and Goriely 2002; Audoly et al. 2007; Bergou et al. 2008; Giusteri and Fried 2018; Romero and Gebhardt 2020), but has not received enough attention in the context of the rigid body.

Formulating the equations of motion for the rigid body in the non-twisting frame demands a construction that is different from the standard one. In particular, the definition of Bishop’s frame requires a constraint that is nonholonomic and does not admit a variational statement. General geometric formulations for nonholonomic systems have been, in the last 2 or 3 decades, subject of a very active research. Its modern treatment can be found in seminal works such as Koiller (1992), Bates and Śniatycki (1993), de León and de Diego (1996), Bloch et al. (1996) and de León and de Diego (1997). Moreover, its extension toward a general nonholonomic field theory is investigated in Vankerschaver et al. (2005). In the nonholonomic setting, conservation laws take a different form when compared with the usual ones and their identification is not straightforward. For the rigid body model based on the non-twisting frame, the governing equations, i.e.,  the Lagrange–D’Alembert equations, are elegantly formulated by means of an splitting approach in terms of the covariant derivative on the unit sphere. Some of the conservation laws that take place under consideration of the non-twisting frame may substantially differ from other nonholonomic cases that were investigated in the literature, e.g., (Betsch 2006; Hedrih 2019). In a pure holonomic context, some attempts to reformulate the dynamics on the unit sphere by means of advanced concepts from the differential geometry are to be found in Lee et al. (2009, (2018). However, the anisotropy of the inertial properties has been completely disregarded.

There already exists a plethora of references dealing with the geometric integration of nonholonomic systems based on discrete Lagrangian mechanics (e.g., Cortés and Martínez 2001; de León et al. 2004). These works are based directly on a discrete version of the Lagrange–D’Alembert principle and result in integrators that inherit the geometric structure of the problem, for example, preserving the structure of the evolution of the symplectic form and the nonholonomic momentum along trajectories.

The rigid body equations with a nonholonomic constraint can be integrated in time with a conserving scheme that preserves energy and the newly identified momenta, the so-called nonholonomic momenta. This method, based on the idea of the average vector field (McLachlan et al. 1999; Celledoni et al. 2012) preserves remarkably these invariants of the motion, exactly, resulting in accurate pictures of the rigid body dynamics. A comprehensive description of such ideas in the context of general nonholonomic dynamics is to be found in Celledoni et al. (2019). The specialization of approaches based on more elaborated conservative/dissipative integration schemes like Gebhardt et al. (2020) is possible as well in this context, but falls outside the scope of the current work and therefore, not addressed here. Lastly, be aware that the proposed model should not be understood as an alternative formulation to the well-known standard rigid body model but as a different mechanical problem that possesses interesting properties, which can find applications in fields like multibody systems, n-body problems on manifolds, computer graphics and ballistics among others.

The rest of the article has the following structure. In Sect. 2, the fundamental concepts from the differential geometry are presented and discussed. Section 3 presents two derivations of the equations of motion for the standard rotating rigid body. The first set of equations is a split version of the well-known Euler equations that are presented within a novel geometric framework that relies on covariant derivatives. The second one, then, produces a totally equivalent set of equations and relies on three constrained directors. Such an approach possesses a favorable mathematical setting that will be exploited later on to derive an structure-preserving integration algorithm. In Sect. 4, the non-twisting condition is enforced for both fully equivalent formulations. Additionally, new conservation laws are identified in the continuous setting. Section 5 starts with the energy–momentum integration scheme for the director-based formulation and then it is modified for the nonholonomic case. The conservation properties are identified analytically for the discrete setting, replicating their continuous counterparts. In Sect. 6, numerical results that show the excellent performance of the new energy–momentum algorithm are presented and discussed. Finally, Sect. 7 closes this work with a summary.

2 Relevant Geometrical Concepts

The governing equations of the rigid body are posed on nonlinear manifolds. We briefly summarize the essential geometrical concepts required for a complete description of the model (see, e.g., Marsden and Ratiu 1994; Lee et al. 2018 for more comprehensive expositions).

2.1 The Unit Sphere

The unit sphere \(S^2\) is a nonlinear, compact, two-dimensional manifold that often appears in the configuration spaces of solid mechanics, be it the rigid body, rods or shells (Eisenberg and Guy 1979; Simo et al. 1989; Romero 2004; Romero et al. 2014; Romero and Arnold 2017). As an embedded set on Euclidean space, it is defined as

$$\begin{aligned} S^{2} := \left\{ \varvec{d}\in \mathbb {R}^{3}\mid \varvec{d}\cdot \varvec{d}=1 \right\} , \end{aligned}$$
(1)

where the dot product is the standard one in \(\mathbb {R}^3\). The tangent bundle of the unit 2-sphere is also a manifold defined as

$$\begin{aligned} TS^2 := \left\{ (\varvec{d},\varvec{v}),\ \varvec{d}\in S^2,\ \varvec{v}\in \mathbb {R}^3,\ \varvec{d}\cdot \varvec{v} = 0 \right\} . \end{aligned}$$
(2)

Alternatively, tangent vectors of \(S^2\) to a point \(\varvec{d}\) are those defined by the expressions:

$$\begin{aligned} \varvec{v} = \varvec{w}\times \varvec{d}, \quad \mathrm {with} \quad \varvec{w}\cdot \varvec{d}= 0, \end{aligned}$$
(3)

where the product “\(\times \)” is the standard cross-product in \(\mathbb {R}^3\).

In contrast with the space of rotations, to be studied in more detail later, the unit sphere does not have a group structure, but instead it has that of a Riemannian manifold. The connection of this set can be more easily explained by considering it to be an embedded manifold in \(\mathbb {R}^3\). As such, the covariant derivative of a smooth vector field \(\varvec{v}{:}\,S^2\rightarrow TS^2\) along a vector field \(\varvec{w}{:}\,S^2\rightarrow TS^2\) is the vector field \(\nabla _{\varvec{w}}\varvec{v}\in TS^2\) that evaluated at \(\varvec{d}\) is precisely the projection of the derivative \(D\varvec{v}\) in the direction of \(\varvec{w}\) onto the tangent plane to \(\varvec{d}\). Hence, denoting as \(\varvec{I}\) the unit second-order tensor and \(\otimes \) the outer product between vectors, both on \(\mathbb {R}^3\), this projection can be simply written as

$$\begin{aligned} \nabla _{\varvec{w}} \varvec{v} := (\varvec{I} - \varvec{d}\otimes \varvec{d}) \; D \varvec{v} \cdot \varvec{w}. \end{aligned}$$
(4)

When \(\varvec{d}{:}\,(a,b)\rightarrow S^2\) is a smooth one-parameter curve on the unit sphere and \(\varvec{d}'\) its derivative, the covariant derivative of a smooth vector field \(\varvec{v}{:}\,S^2\rightarrow TS^2\) in the direction of \(\varvec{d}'\) has an expression that follows from Eq. (4), that is,

$$\begin{aligned} \nabla _{\varvec{d}'} \varvec{v} = (\varvec{I} - \varvec{d}\otimes \varvec{d}) \; D \varvec{v} \cdot \varvec{d}' = (\varvec{v}\circ \varvec{d})' - \left( (\varvec{v}\circ \varvec{d})' \cdot \varvec{d} \right) \varvec{d}, \end{aligned}$$
(5)

which, as before, is nothing but the projection of \((\varvec{v}\circ \varvec{d})'\) onto the tangent space \(T_{\varvec{d}}S^2\), and the symbol “\(\circ \)” stands for composition. The covariant derivative allows to compare two tangent vectors belonging to different tangent spaces. By means of the parallel transport, one vector can be transported from its tangent space to the space of the other one. Then, all the desired comparisons can be made over objects belonging to the same space.

The exponential map \(\exp {:}\,T_{\varvec{d}_0}S^2 \rightarrow S^2\) is a surjective application with a closed-form expression given by the formula

$$\begin{aligned} \exp _{\varvec{d}_0}(\varvec{v}_0) = \cos (|\varvec{v}_0|)\varvec{d}_0+\sin (|\varvec{v}_0|)\frac{\varvec{v}_0}{|\varvec{v}_0|}, \end{aligned}$$
(6)

where \(\varvec{v}_0\) must be a tangent vector on \(T_{\varvec{d}_0}S^2\) and \(|\cdot |\) denotes the Euclidean vector norm. The inverse of the exponential function is the logarithmic map \(\log {:}\,S^2 \rightarrow T_{\varvec{d}_0}S^2\), for which also there is a closed-form expression that reads

$$\begin{aligned} \log _{\varvec{d}_0}(\varvec{d}) = \arccos (\varvec{d}_0\cdot \varvec{d})\frac{(\varvec{I} - \varvec{d}_0\otimes \varvec{d}_0)\varvec{d}}{|(\varvec{I} - \varvec{d}_0\otimes \varvec{d}_0)\varvec{d}|}, \end{aligned}$$
(7)

with \(\varvec{d}_0\ne \varvec{d}\). The geodesic \(\varvec{d}_\mathrm {G}(s)\) for \(s\in [0,1]\) with \(\varvec{d}_\mathrm {G}(0)=\varvec{d}_0\) and \(\varvec{d}'_\mathrm {G}(0)=\varvec{v}_0\) is a great arch on the sphere obtained as the solution of the equation

$$\begin{aligned} \nabla _{\varvec{d}'}{\varvec{d}'} =\varvec{0}, \end{aligned}$$
(8)

with the explicit form

$$\begin{aligned} \varvec{d}_\mathrm {G}(s) = \cos (|\varvec{v}_0| s)\varvec{d}_0+\sin (|\varvec{v}_0| s)\frac{\varvec{v}_0}{|\varvec{v}_0|}. \end{aligned}$$
(9)

The parallel transport of \(\varvec{w}_0\in T_{\varvec{d}_0}S^2 \mapsto \varvec{w} \in T_{\varvec{d}}S^2\) along the geodesic \(\varvec{d}_\mathrm {G}\) is then given by

$$\begin{aligned} \varvec{w} = \left( \varvec{I}- \frac{1}{\arccos ^2(\varvec{d}_0\cdot \varvec{d}_\mathrm {G})} \left( \log _{\varvec{d}_0}\varvec{d}_\mathrm {G} + \log _{\varvec{d}_\mathrm {G}} \varvec{d}_0 \right) \otimes \log _{\varvec{d}_0}\varvec{d}_{\mathrm {G}} \right) \varvec{w}_0, \end{aligned}$$
(10)

and verifies

$$\begin{aligned} \nabla _{\varvec{d}'}{\varvec{w}} = (\varvec{I} - \varvec{d} \otimes \varvec{d})\varvec{w}' = \varvec{0}. \end{aligned}$$
(11)

More details about expressions (6)–(10) can be found in Hosseini and Uschmajew (2017) and Bergmann et al. (2018).

Given definitions (1) and (2) of the unit sphere and its tangent bundle, we recognize that there exists an isomorphism

$$\begin{aligned} \mathbb {R}^3 \cong T_{\varvec{d}}S^2 \oplus \mathrm {span}(\varvec{d}), \end{aligned}$$
(12)

for any \(\varvec{d}\in S^2\). Given now two directors \(\varvec{d},\tilde{\varvec{d}}\), we say that a second-order tensor \(\varvec{T}{:}\,\mathbb {R}^3\rightarrow \mathbb {R}^3\) splits from \(\varvec{d}\) to \(\tilde{\varvec{d}}\) if it can be written in the form

$$\begin{aligned} \varvec{T}= {\varvec{T}}_\perp + {\varvec{T}}_\parallel , \end{aligned}$$
(13)

where \({\varvec{T}}_\perp \) is a bijection from \(T_{\varvec{d}} S^2\) to \(T_{\tilde{\varvec{d}}}S^2\) with \(\ker ({\varvec{T}}_\perp ) = \hbox {span}(\varvec{d})\), and \({\varvec{T}}_\parallel \) is a bijection from \(\hbox {span}(\varvec{d})\) to \(\hbox {span}(\tilde{\varvec{d}})\) with \(\ker ({\varvec{T}}_\parallel ) \equiv T_{\varvec{d}}S^2\). Split (13) depends on the pair \(\varvec{d},\tilde{\varvec{d}}\) but it is not indicated explicitly in order to simplify the notation.

2.2 The Special Orthogonal Group

Classical descriptions of rigid body kinematics are invariably based on the definition of their configuration space as the set of proper orthogonal second-order tensors, that is, the special orthogonal group, defined as

$$\begin{aligned} SO(3) := \left\{ \varvec{\varLambda }\in \mathbb {R}^{3\times 3}, \ \varvec{\varLambda }^\mathrm{T} \varvec{\varLambda } = \varvec{I}, \ \det {\varvec{\varLambda }} = +1 \right\} . \end{aligned}$$
(14)

This smooth manifold has a group-like structure when considered with the tensor multiplication operation; thus, it is a Lie group. Its associated Lie algebra is the linear set

$$\begin{aligned} so(3) := \left\{ \hat{\varvec{w}}\in \mathbb {R}^{3\times 3}, \quad \hat{\varvec{w}} = - \hat{\varvec{w}}^\mathrm{T} \right\} . \end{aligned}$$
(15)

Later, it will be convenient to exploit the isomorphism that exists between three-dimensional real vectors and so(3). To see this, consider the map \(\hat{(\cdot )}{:}\,\mathbb {R}^3\rightarrow so(3)\) such that for all \(\varvec{w},\varvec{a}\in \mathbb {R}^3\), the tensor \(\hat{\varvec{w}}\in so(3)\) satisfies \(\hat{\varvec{w}}\varvec{a} = \varvec{w}\times \varvec{a}\). Here, \(\varvec{w}\) is referred to as the axial vector of \(\hat{\varvec{w}}\), which is a skew-symmetric tensor, and we also write . Being a Lie group, the space of rotations has an exponential map \(\exp {:}\,so(3)\rightarrow SO(3)\) whose closed-form expression is Rodrigues’ formula

$$\begin{aligned} \exp [\hat{\varvec{\theta }}] := \varvec{I} + \frac{\sin \theta }{\theta } \hat{\varvec{\theta }} + \frac{1}{2} \frac{\sin ^2(\theta /2)}{(\theta /2)^2} \hat{\varvec{\theta }}^2\ , \end{aligned}$$
(16)

with \(\varvec{\theta }\in \mathbb {R}^3, \theta =|\varvec{\theta }|\). The linearization of the exponential map is simplified by introducing the map \(\mathrm {dexp}{:}\,so(3)\rightarrow \mathbb {R}^{3\times 3}\) that satisfies

(17)

for every \(\varvec{\theta }{:}\,\mathbb {R}\rightarrow \mathbb {R}^3\). A closed-form expression for this map, as well as more details regarding the numerical treatment of rotations, can be found elsewhere (Hairer et al. 2006; Romero 2008; Romero and Arnold 2017).

2.3 The Notion of Twist and the Non-twisting Frame

Let \(\varvec{d}_3{:}\,\left[ 0,T\right] \rightarrow S^2\) indicate a curve of directors parameterized by time \(t\in [0,T]\). Now, let us consider two other curves \(\varvec{d}_1,\varvec{d}_2{:}\,[0,T]\rightarrow S^2\) such that \(\{\varvec{d}_1(t), \varvec{d}_2(t), \varvec{d}_3(t)\}\) are mutually orthogonal for all \(t\in [0,T]\). We say that the triad \(\{\varvec{d}_1,\varvec{d}_2,\varvec{d}_3\}\) moves without twist if

$$\begin{aligned} \dot{\varvec{d}}_1\cdot \varvec{d}_2 = \dot{\varvec{d}}_2\cdot \varvec{d}_1 = 0, \end{aligned}$$
(18)

where the overdot refers to the derivative with respect to time. Given the initial value of the triad \(\{\varvec{d}_1(0), \varvec{d}_2(0), \varvec{d}_3(0) \} = \{ \varvec{D}_1,\varvec{D}_2, \varvec{D}_3\}\), there is a map \(\varvec{\chi }{:}\,[0,T]\rightarrow SO(3)\) transforming it to the frame \(\{ \varvec{d}_1, \varvec{d}_2, \varvec{d}_3 \}\) that evolves without twist, and whose closed form is

$$\begin{aligned} \varvec{\chi } = \varvec{d}_1\otimes \varvec{D}_1+\varvec{d}_2\otimes \varvec{D}_2+\varvec{d}_3\otimes \varvec{D}_3. \end{aligned}$$
(19)

The non-twisting frame has Darboux vector

$$\begin{aligned} \varvec{w}_{\varvec{\chi }} = \varvec{d}_3\times \dot{\varvec{d}}_3, \end{aligned}$$
(20)

and it is related to parallel transport in the sphere. To see this relation, consider again the same non-twisting frame as before. Then, we recall that a vector field \(\varvec{v} \in T_{\varvec{d}_3}S^2\) is said to be parallel-transported along \(\varvec{d}_3\) if and only if \(\nabla _{\dot{\varvec{d}}_3}{\varvec{v}}=\varvec{0}\). An consequence of this is that

$$\begin{aligned} \dot{\varvec{d}}_{3}\cdot \dot{\varvec{d}}_{1} = \dot{\varvec{d}}_{3}\cdot (\varvec{w}_{\varvec{\chi }}\times \varvec{d}_{1}) = 0, \end{aligned}$$
(21)

and similarly

$$\begin{aligned} \dot{\varvec{d}}_{3}\cdot \dot{\varvec{d}}_{2} = \dot{\varvec{d}}_{3}\cdot (\varvec{w}_{\varvec{\chi }}\times \varvec{d}_{2}) = 0. \end{aligned}$$
(22)

In addition, we have that

$$\begin{aligned} \begin{aligned} \dot{\varvec{d}}_{1}\cdot \dot{\varvec{d}}_{2} = (\varvec{w}_{\varvec{\chi }}\times \varvec{d}_{1})\cdot (\varvec{w}_{\varvec{\chi }}\times \varvec{d}_{2}) = (\varvec{d}_1\cdot \dot{\varvec{d}}_3)(\varvec{d}_2\cdot \dot{\varvec{d}}_3), \end{aligned} \end{aligned}$$
(23)

which is merely the product of the angular velocity components and can be interpreted as a scalar curvature.

To define precisely the concept of twist, let us consider the rotation \(\exp [\psi \,\,\hat{\varvec{d}}_3]\), with \(\psi {:}\,[0,T]\rightarrow S^1\) (the unit 1-sphere), and the rotated triad \(\{\varvec{d}_1^\psi ,\varvec{d}_2^\psi ,\varvec{d}_3\} = \exp [\psi \,\,\hat{\varvec{d}}_3] \{\varvec{d}_1,\varvec{d}_2,\varvec{d}_3\}\). Then,

$$\begin{aligned} \varvec{d}_1^{\psi } = \cos (\psi )\varvec{d}_1+\sin (\psi )\varvec{d}_2 \quad \mathrm {and}\quad \varvec{d}_2^{\psi } =-\sin (\psi )\varvec{d}_1+\cos (\psi )\varvec{d}_1, \end{aligned}$$
(24)

and the Darboux vector of the rotated triad is

$$\begin{aligned} \varvec{w}_{\exp [\psi \,\,\hat{\varvec{d}}_3]\varvec{\chi }} = \varvec{d}_3\times \dot{\varvec{d}}_3+\dot{\psi }\varvec{d}_3, \end{aligned}$$
(25)

or, equivalently,

$$\begin{aligned} \varvec{w}_{\exp [\psi \,\,\hat{\varvec{d}}_3]\varvec{\chi }} = -\left( \varvec{d}_2^{\psi }\cdot \dot{\varvec{d}}_3\right) \varvec{d}_1^{\psi } +\left( \varvec{d}_1^{\psi }\cdot \dot{\varvec{d}}_3\right) \varvec{d}_2^{\psi }+\dot{\psi }\varvec{d}_3. \end{aligned}$$
(26)

In this last expression, we identify the twist rate \(\dot{\psi }\) and the twist angle \(\psi \), respectively, as the rotation velocity component on the \(\varvec{d}_3\) direction and the rotation angle about this same vector (for further details, see Bishop 1975; Langer and Singer 1996). The previous calculations show that the frame \(\{\varvec{d}_1,\varvec{d}_2,\varvec{d}_3\}\)—known as the natural or Bishop frame in the context of one-parameter curves embedded in the ambient space—is the unique one obtained by transporting \(\{\varvec{D}_1, \varvec{D}_2,\varvec{D}_3\}\) without twist. In this context, a summary of recent advances and open problems is presented for instance in Farouki (2016).

3 Standard Rotating Rigid Body

In this section, we review the classical rotating rigid body model, which we take as the starting point for our developments. We present this model, however, in an unusual fashion. In it, the governing equations of the body appear in split form. This refers to the fact that, for a given director \(\varvec{d}_3\), the dynamics of the body that takes place in the cotangent space \(T^*_{\varvec{d}_3}S^2\) is separated from that one corresponding to the reciprocal normal space \(N^*_{\varvec{d}_3}S^2 \equiv \text {span}(\varvec{d}_3)\). In order to do this, we have employed the identifications

$$\begin{aligned} \mathbb {R}^3 \cong T_{\varvec{d}_3}S^2 \oplus \text {span}(\varvec{d}_3) \cong T^*_{\varvec{d}_3}S^2 \oplus \text {span}(\varvec{d}_3). \end{aligned}$$
(27)

3.1 Kinematic Description

As customary, a rotating rigid body is defined to be a three-dimensional non-deformable body. The state of such a body, when one of its points is fixed, can be described by a rotating frame whose orientation is given by a rotation tensor. Thus, the configuration manifold is \(Q\equiv SO(3)\).

Let us now study the motion of a rotating rigid body, that is, a time-parameterized curve in configuration space \(\varvec{\varLambda }{:}\, [0,T] \rightarrow Q\). The generalized velocity of the rotating rigid body belongs, for every \(t\in [0,T]\), to the tangent bundle

$$\begin{aligned} TQ := \left\{ (\varvec{\varLambda },\dot{\varvec{\varLambda }}), \varvec{\varLambda }\in SO(3), \varvec{\varLambda }^\mathrm{T} \dot{\varvec{\varLambda }} \in so(3) \right\} . \end{aligned}$$
(28)

The time derivative of the rotation tensor can be written as

$$\begin{aligned} \dot{\varvec{\varLambda }} = \hat{\varvec{w}} \varvec{\varLambda } = \varvec{\varLambda } \widehat{ \varvec{W}}, \end{aligned}$$
(29)

where \(\varvec{w}\) and \(\varvec{W}\) are the spatial and convected angular velocities, respectively.

Let \(\{\varvec{E}_1,\varvec{E}_2, \varvec{E}_3\}\) be a fixed basis of the ambient space. Then, if \(\varvec{d}_i=\varvec{\varLambda } \varvec{E}_i\), with \(i=1,2,3\) we can use Eq. (27) to split the rotation vectors as in

$$\begin{aligned} \varvec{w} = \varvec{w}_{\perp } + w_\parallel \varvec{d}_3, \quad \varvec{W} = \varvec{W}_\perp + W_\parallel \varvec{d}_3. \end{aligned}$$
(30)

Then, using relations (29), we identify

$$\begin{aligned} \varvec{w}_{\perp } = \varvec{d}_3\times \dot{\varvec{d}_3}, \quad \varvec{W}_{\perp } = \varvec{\varLambda }^\mathrm{T} \varvec{w}_{\perp }. \end{aligned}$$
(31)

3.2 Kinetic Energy and Angular Momentum

Let us now select a fixed Cartesian basis of \(\mathbb {R}^3\) denoted as \(\{ \varvec{D}_i \}_{i=1}^3\), where the third vector coincides with one of the principal directions of the convected inertia tensor \(\varvec{J}{:}\,\mathbb {R}^3\rightarrow \mathbb {R}^3\) of the body, a symmetric, second-order, positive definite tensor. Thus, this tensor splits from \(\varvec{D}_3\) to \(\varvec{D}_3\) and we write

$$\begin{aligned} \varvec{J} = \varvec{J}_\perp + J_\parallel \, \varvec{D}_3\otimes \varvec{D}_3, \end{aligned}$$
(32)

where \(\varvec{J}_\perp \) maps bijectively \(\mathrm {span}(\varvec{D}_1,\varvec{D}_2)\) onto itself and satisfies \(\varvec{J}_\perp \varvec{D}_3 = \varvec{0}\).

The kinetic energy of a rigid body with a fixed point is defined as the quadratic form

$$\begin{aligned} K := \frac{1}{2} \varvec{W} \cdot \varvec{J} \varvec{W} = \frac{1}{2} \varvec{w} \cdot \varvec{j} \varvec{w} \ , \end{aligned}$$
(33)

where \(\varvec{j}\) is the spatial inertia tensor, the push-forward of the convected inertia, and defined as

$$\begin{aligned} \varvec{j} := \varvec{\varLambda } \varvec{J} \varvec{\varLambda }^\mathrm{T}. \end{aligned}$$
(34)

Let \(\varvec{d}_3=\varvec{\varLambda }\varvec{D}_3\). Given the relationship between the convected and spatial inertia, it follows that the latter also splits, this time from \(\varvec{d}_3\) to \(\varvec{d}_3\), and thus

$$\begin{aligned} \varvec{j} = \varvec{j}_\perp + j_\parallel \, \varvec{d}_3\otimes \varvec{d}_3, \end{aligned}$$
(35)

where now \(\varvec{j}_\perp \) maps bijectively \(\mathrm {span}(\varvec{d}_1,\varvec{d}_2)\) onto itself and satisfies \(\varvec{j}_\perp \varvec{d}_3 = \varvec{0}\).

As a consequence of the structure of the inertia tensor, the kinetic energy of a rotating rigid body can be written in either of the following equivalent ways:

$$\begin{aligned} \frac{1}{2} \varvec{w} \cdot \varvec{j} \varvec{w} = \frac{1}{2} \varvec{W} \cdot \varvec{J} \varvec{W} = \frac{1}{2} \varvec{W}_\perp \cdot \varvec{J}_\perp \varvec{W}_\perp + \frac{1}{2} J_\parallel \, W_\parallel ^2 = \frac{1}{2} \varvec{w}_\perp \cdot \varvec{j}_\perp \varvec{w}_\perp + \frac{1}{2} j_\parallel \, w_\parallel ^2. \end{aligned}$$
(36)

The angular momentum of the rotating rigid body is conjugate to the angular velocity as in

$$\begin{aligned} \qquad \varvec{\pi } := \frac{\partial K}{\partial \varvec{w}} = \varvec{j} \varvec{w}, \end{aligned}$$
(37)

and we note that we can introduce a convected version of the momentum \(\varvec{\pi }\) by pulling it back with the rotating tensor and defining

$$\begin{aligned} \varvec{\varPi } := \varvec{\varLambda }^\mathrm{T} \varvec{\pi } = \frac{\partial K}{\partial \varvec{W}}. \end{aligned}$$
(38)

Due to the particular structure of the inertia, the momentum can also be split, as before, as in

$$\begin{aligned} \varvec{\pi } = \varvec{\pi }_\perp + \pi _\parallel \varvec{d}_3, \quad \varvec{\varPi } = \varvec{\varPi }_\perp + \varPi _\parallel \varvec{d}_3, \end{aligned}$$
(39)

with

$$\begin{aligned} \varvec{\pi }_\perp = \varvec{j}_\perp \varvec{w}_\perp , \quad \varvec{\varPi }_\perp = \varvec{J}_\perp \varvec{W}_\perp , \quad \pi _\parallel = \varPi _\parallel = j_\parallel w_\parallel = J_\parallel W_\parallel . \end{aligned}$$
(40)

3.3 Variations of the Motion Rates

The governing equations of the rigid body will be obtained using Hamilton’s principle of stationary action, using calculus of variations. We gather next some results that will prove necessary for the computation of the functional derivatives and, later, for the linearization of the model.

To introduce these concepts, let us consider a curve of configurations \(\varvec{\varLambda }_\iota (t)\) parameterized by the scalar \(\iota \) and given by

$$\begin{aligned} \varvec{\varLambda }_\iota (t) = \exp [\iota \, \widehat{\delta \varvec{\theta }}(t)] \varvec{\varLambda }(t), \end{aligned}$$
(41)

where \(\delta \varvec{\theta }{:}\,[0,T]\rightarrow \mathbb {R}^3\) represents any arbitrary variation that satisfies

$$\begin{aligned} \delta \varvec{\theta }(0) = \delta \varvec{\theta }(T) = \varvec{0}. \end{aligned}$$
(42)

The curve \(\varvec{\varLambda }_\iota \) passes through the configuration \(\varvec{\varLambda }\) when \(\iota =0\) and has tangent at this point

$$\begin{aligned} \left. \frac{\partial }{\partial \iota }\right| _{\iota =0} \varvec{\varLambda }_\iota = \widehat{\delta \varvec{\theta }} \varvec{\varLambda }. \end{aligned}$$
(43)

For future reference, let us calculate the variation of the derivative \(\dot{\varvec{\varLambda }}\). To do so, let us first define the temporal derivative of the perturbed rotation, that is,

(44)

Then, the variation of \(\dot{\varvec{\varLambda }}\) is just

$$\begin{aligned} \delta ( \dot{\varvec{\varLambda }} ) = \left. \frac{\partial }{\partial \iota }\right| _{\iota =0} \frac{\partial }{\partial t} \varvec{\varLambda }_\iota = \widehat{\delta \dot{\varvec{\theta }}} \varvec{\varLambda } + \widehat{\delta \varvec{\theta }} \dot{\varvec{\varLambda }}\ . \end{aligned}$$
(45)

With the previous results at hand, we can now proceed to calculate the variations of the convected angular velocities, as summarized in the following theorem.

Theorem 1

The variations of the convected angular velocities \((\varvec{W}_\perp , W_\parallel )\) are

$$\begin{aligned} \delta \varvec{W}_\perp&= {\varvec{{\varLambda }}}^\mathrm{T} (\varvec{I}-\varvec{d}_3 \otimes \varvec{d}_3) \delta \dot{\varvec{\theta }}, \end{aligned}$$
(46a)
$$\begin{aligned} \delta W_\parallel&= \varvec{d}_3 \cdot \delta \dot{\varvec{\theta }}. \end{aligned}$$
(46b)

Proof

The convected angular velocities of the one-parameter curve of configurations \(\varvec{\varLambda }_\iota \) are

$$\begin{aligned} \varvec{W}_{\perp ,\iota } = \varvec{D}_3 \times ( \varvec{\varLambda }^\mathrm{T}_{\iota } \dot{\varvec{d}}_{3,\iota }) \quad \text {and}\quad W_{\parallel ,_\iota } = \varvec{d}_{2,\iota } \cdot \dot{\varvec{d}}_{1,\iota }, \end{aligned}$$
(47)

where \(\varvec{d}_{i,\iota } = \varvec{\varLambda }_\iota \varvec{D}_i\). The variation of the angular velocity perpendicular to \(\varvec{D}_3\) is obtained from its definition employing some algebraic manipulations and expression (45) as follows:

$$\begin{aligned} \begin{aligned} \delta \varvec{W}_\perp&= \left. \frac{\partial }{\partial \iota } \right| _{\iota =0} \left( \varvec{D}_3\times \left( \varvec{\varLambda }^\mathrm{T}_\iota \dot{\varvec{d}}_{3,\iota }\right) \right) \\&= \varvec{D}_3 \times \left( \delta \varvec{\varLambda }^\mathrm{T} \dot{\varvec{\varLambda }} \varvec{D}_3 + \varvec{\varLambda }^\mathrm{T} \delta \dot{\varvec{\varLambda }} \varvec{D}_3 \right) \\&= \varvec{\varLambda }^\mathrm{T} \left( \varvec{d}_3 \times \left( \widehat{\delta \dot{\varvec{\theta }}}\times \varvec{d}_3 \right) \right) \\&= \varvec{\varLambda }^\mathrm{T} \left( \delta \dot{\varvec{\theta }} - \left( \delta \dot{\varvec{\theta }} \cdot \varvec{d}_3\right) \varvec{d}_3 \right) \\&= \varvec{\varLambda }^\mathrm{T} (\varvec{I}-\varvec{d}_3 \otimes \varvec{d}_3) \delta \dot{\varvec{\theta }}. \end{aligned} \end{aligned}$$
(48)

The variation of the angular velocity parallel to \(\varvec{D}_3\) follows similar steps:

$$\begin{aligned} \begin{aligned} \delta W_\parallel&= \left. \frac{\partial }{\partial \iota } \right| _{\iota =0} \left( \varvec{d}_{2,\iota }\cdot \dot{\varvec{d}}_{1,\iota } \right) \\&= \widehat{\delta \varvec{\theta }} \varvec{\varLambda } \varvec{D}_2\cdot \dot{\varvec{\varLambda }} \varvec{D}_1 + \varvec{\varLambda } \varvec{D}_2 \cdot \left( \widehat{\delta \dot{\varvec{\theta }}}\varvec{\varLambda } + \widehat{\delta \varvec{\theta }}\dot{\varvec{\varLambda }} \right) \varvec{D}_1\\&= \varvec{d}_1\times \varvec{d}_2 \cdot \delta \dot{\varvec{\theta }}\\&= \varvec{d}_3 \cdot \delta \dot{\varvec{\theta }}. \end{aligned} \end{aligned}$$
(49)

3.4 Governing Equations and Invariants

Here, we derive the governing equations of the rotating rigid body model and the concomitant conservation laws. Hamilton’s principle of stationary action states that the governing equations are the Euler–Lagrange equations of the action functional

$$\begin{aligned} S = \int ^\mathrm{T}_0 K\, \text {d}t, \end{aligned}$$
(50)

with unknown fields \((\varvec{\varLambda }, \dot{\varvec{\varLambda }})\in TQ\).

Theorem 2

The equations of motion, i.e., the Euler–Lagrange equations, for the standard rotating rigid body model in split form are:

$$\begin{aligned} \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}+\pi _{\parallel }\dot{\varvec{d}}_3&= \varvec{0}, \end{aligned}$$
(51a)
$$\begin{aligned} \dot{\pi }_{\parallel }+\varvec{\pi }_\perp \cdot \dot{\varvec{d}}_3&= 0. \end{aligned}$$
(51b)

The pertaining initial conditions are:

$$\begin{aligned} \varvec{\varLambda }(0) = \bar{\varvec{\varLambda }},\quad \varvec{w}_\perp (0) = \bar{\varvec{w}}_\perp ,\quad w_\parallel (0) = \bar{w}_\parallel . \end{aligned}$$
(52)

Proof

The theorem follows from the systematic calculation of \(\delta S\), the variation of the action, based on the variation of the convected angular velocities of Eq. (1); thus, we omit a detailed derivation. Equation (2), which is presented in its split form, is equivalent to Euler’s equations which state that the spatial angular momentum is preserved, i.e., \(\dot{\varvec{\pi }}=\varvec{0}\). This is easily proven as follows

$$\begin{aligned} \begin{aligned} \varvec{0}&= \dot{\varvec{\pi }}\\&= (\varvec{I}-\varvec{d}_3 \otimes \varvec{d}_3)\dot{\varvec{\pi }}+(\varvec{d}_3\cdot \dot{\varvec{\pi }})\varvec{d}_3\\&= (\varvec{I}-\varvec{d}_3 \otimes \varvec{d}_3)(\dot{\varvec{\pi }}_\perp +\dot{\pi }_\parallel \varvec{d}_3+\pi _\parallel \dot{\varvec{d}}_3)+\varvec{d}_3\cdot (\dot{\varvec{\pi }}_\perp +\dot{\pi }_\parallel \varvec{d}_3+\pi _\parallel \dot{\varvec{d}}_3)\varvec{d}_3\\&= \underbrace{\nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}+\pi _{\parallel }\dot{\varvec{d}}_3}_{\in \, T^{*}_{\varvec{d}_3}S^2}+\underbrace{(\dot{\pi }_\parallel +\dot{\varvec{\pi }}_\perp \cdot \varvec{d}_3)\varvec{d}_3}_{\in \,\mathrm {span}(\varvec{d}_3)}. \end{aligned} \end{aligned}$$
(53)

Theorem 3

The conservation laws of the rotating rigid body are:

$$\begin{aligned} K&= \frac{1}{2}\varvec{W}\cdot \varvec{J}\varvec{W} = \frac{1}{2}\varvec{w}\cdot \varvec{j}\varvec{w} = \text {const.}, \end{aligned}$$
(54a)
$$\begin{aligned} \varvec{\pi }&= \varvec{j}\varvec{w} = \varvec{\varLambda }\varvec{J}\varvec{W} = \text {const.}. \end{aligned}$$
(54b)

Proof

This is an standard result, and thus, we omit further details.

Remark 1

To include external moments acting on the standard rotating rigid body it is necessary to calculate the associated virtual work as follows

$$\begin{aligned} \delta \mathcal {W} = \delta \varvec{\theta }_\perp \cdot \varvec{m}^{\mathrm {ext}}_\perp +\delta \theta _\parallel m^{\mathrm {ext}}_\parallel , \end{aligned}$$
(55)

and add this contribution to the variation of the action.

3.5 Model Equations Based on Directors

Here, we present an alternative set of governing equations for the rotating rigid body model that will be used later to formulate a structure preserving algorithm. For this purpose, let us define the following configuration space

$$\begin{aligned} Q:=\{\varvec{q}=(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)\in S^2\times S^2\times S^2\mid \varvec{d}_i\cdot \varvec{d}_j=0,\quad i\ne j\}\cong SO(3), \end{aligned}$$
(56)

whose tangent space at the point \(\varvec{q}\) is given by

$$\begin{aligned} T_{\varvec{q}}Q:=\{\dot{\varvec{q}}=(\dot{\varvec{d}}_1,\dot{\varvec{d}}_2,\dot{\varvec{d}}_3)\mid \dot{\varvec{d}}_i=\varvec{\omega }\times \varvec{d}_i,\varvec{\omega }\in \mathbb {R}^3\}. \end{aligned}$$
(57)

Now, we start by defining the rigid body as the bounded set \(\mathcal{B}_0\subset \mathbb {R}^3\) of points

$$\begin{aligned} \varvec{X} = \theta ^1 \varvec{D}_1 + \theta ^2 \varvec{D}_2 + \theta ^3 \varvec{D}_3 \end{aligned}$$
(58)

where \((\theta ^1,\theta ^2,\theta ^3)\) are the material coordinates of the point and \(\{ \varvec{D}_i\}_{i=1}^3\) are three orthogonal directors, with the third one oriented in the direction of the principal axis of inertia and such that \(\varvec{D}_3=\varvec{D}_1\times \varvec{D}_2\). The position of the point \(\varvec{X}\) at time \(t\in [0,T]\) is denoted as \(\varvec{x}(t)\in \mathbb {R}^3\) and given by

$$\begin{aligned} \varvec{x}(t) = \varvec{\varphi }(\theta ^1,\theta ^2,\theta ^3;t) = \theta ^{1}\varvec{d}_1(t)+ \theta ^{2}\varvec{d}_2(t)+ \theta ^{3}\varvec{d}_3(t) \end{aligned}$$
(59)

with \((\varvec{d}_1,\varvec{d}_2,\varvec{d}_3) = \varvec{q} \in Q\), for all t. On this basis, there must be a rotation tensor \(\varvec{\varLambda }(t)= \varvec{d}_i(t)\otimes \varvec{D}_i\), where we have employed the sum convention for repeated indices, such that \(\varvec{d}_i(t) = \varvec{\varLambda }(t) \varvec{D}_i\). The material velocity of the particle \(\varvec{X}\) is the vector \(\dot{\varvec{x}}(t)\in \mathbb {R}^3\) that can be written as

$$\begin{aligned} \dot{\varvec{x}}(t) = \dot{\varvec{\varphi }}(\theta ^1,\theta ^2,\theta ^3;t) = \theta ^{1}\dot{\varvec{d}}_1(t)+ \theta ^{2}\dot{\varvec{d}}_2(t)+ \theta ^{3}\dot{\varvec{d}}_3(t) \end{aligned}$$
(60)

with \((\dot{\varvec{d}}_1,\dot{\varvec{d}}_2,\dot{\varvec{d}}_3)=\dot{\varvec{q}}\in T_{\varvec{q}}Q\) representing three director velocity vectors.

To construct the dynamic equations of the model, assume the body \(\mathcal{B}_0\) has a density \(\rho _0\) per unit of reference volume and hence its total kinetic energy, or Lagrangian, can be formulated as

$$\begin{aligned} K = \int _{\mathcal{B}_0} \frac{\rho _0}{2}|\dot{\varvec{x}}|^2 \,\mathrm {d} \mathcal{B}_0\ . \end{aligned}$$
(61)

To employ Hamilton’s principle of stationary action, but restricting the body directors to remain orthonormal at all time, we define the constrained action

$$\begin{aligned} S =\int _0^\mathrm{T} \left( K - \varvec{h}(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3) \cdot \varvec{\lambda } \right) \,\mathrm {d} t, \end{aligned}$$
(62)

where K is given by Eq. (61), \(\varvec{\lambda }\in \mathbb {R}^3\) is a vector of Lagrange multipliers, and \(\varvec{h}\) is of the form

$$\begin{aligned} \varvec{h}(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3) = \begin{pmatrix} \varvec{d}_2\cdot \varvec{d}_3\\ \varvec{d}_1\cdot \varvec{d}_3\\ \varvec{d}_1\cdot \varvec{d}_2 \end{pmatrix}, \end{aligned}$$
(63)

such that \(\varvec{h}(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)=\varvec{0}\) expresses the directors’ orthonormality.

Theorem 4

The alternative equations of motion, i.e., the Euler–Lagrange equations, for the standard rotating rigid body model are:

$$\begin{aligned} \dot{\varvec{\pi }}^1(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_1(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }&=\varvec{0}\,, \end{aligned}$$
(64a)
$$\begin{aligned} \dot{\varvec{\pi }}^2(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_2(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }&=\varvec{0}\,,\end{aligned}$$
(64b)
$$\begin{aligned} \dot{\varvec{\pi }}^3(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_3(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }&=\varvec{0}\,,\end{aligned}$$
(64c)
$$\begin{aligned} \varvec{h}(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)&= \varvec{0}. \end{aligned}$$
(64d)

The generalized momenta \((\varvec{\pi }^1, \varvec{\pi }^2, \varvec{\pi }^3) = \varvec{p}\in T_{\varvec{q}}^{*}Q\) are defined as

$$\begin{aligned} \varvec{\pi }^i = \mathscr {J}^{i1}\dot{\varvec{d}}_1+\mathscr {J}^{i2}\dot{\varvec{d}}_2+\mathscr {J}^{i3}\dot{\varvec{d}}_3, \end{aligned}$$
(65)

where Euler’s inertia coefficients are

$$\begin{aligned} \mathscr {J}^{ij} = \mathscr {J}^{ij} = \int _{\mathcal {B}_0}\varrho _0\theta ^i\theta ^j \text {d}\mathcal {B}_0, \end{aligned}$$
(66)

for i and j from 1 to 3. In addition, the splitting of the inertia tensor implies \(\mathscr {J}^{13}=\mathscr {J}^{23} = 0\) and \(\varvec{H}_i \in L(T_{\varvec{d}_i}S^2, \mathbb {R}^n)\) stands for \(\frac{\partial \varvec{h}}{\partial \varvec{d}_i}\).

The pertaining initial conditions are:

$$\begin{aligned} \varvec{d}_1(0)=\bar{\varvec{d}}_1,\quad \varvec{d}_2(0)=\bar{\varvec{d}}_2,\quad \varvec{d}_3(0)=\bar{\varvec{d}}_3,\quad \varvec{w}_\perp (0) = \bar{\varvec{d}}_3\times \dot{\bar{\varvec{d}}}_3,\quad w_\parallel (0) = \bar{w}_\parallel \end{aligned}$$
(67)

Proof

The theorem follows from the systematic calculation of \(\delta S\).

The reparameterized equations presented above are totally equivalent to the commonly used equations for the standard rotating rigid body. Consequently, the conservation laws described previously apply directly to this equivalent model. For a in-depth discussion on this subject, the reader may consult (Romero and Armero 2002a).

Remark 2

As before, to include external moments acting on the standard rotating rigid body, the following additional terms need to be added to the variation of the action

$$\begin{aligned} \delta \mathcal {W} = \delta \mathcal {W}_1+\delta \mathcal {W}_2+\delta \mathcal {W}_3 \quad \mathrm {with} \quad \delta \mathcal {W}_i = \frac{1}{2}(\varvec{d}_i\times \delta \varvec{d}_i) \cdot (\varvec{m}^{\mathrm {ext}}_\perp + m^{\mathrm {ext}}_\parallel \varvec{d}_3). \end{aligned}$$
(68)

4 Rotating Rigid Body Based on the Non-twisting Frame

In this section, we introduce the nonholonomic rotating rigid body, which incorporates the non-integrable constraint that is necessary to set the non-twisting frame according to Eq. (18). This is a non-variational model, since it cannot be derived directly from a variational principle. For this purpose, we modify Eq. (2) to account the non-integrable condition \(W_\parallel =w_\parallel =0\) according to the usual nonholonomic approach. We also introduce the concomitant conservation laws. Additionally, we present an alternative formulation that relies on constrained directors, whose particular mathematical structure enables the application of structure-preserving integration schemes.

4.1 Governing Equations and Invariants

Theorem 5

The nonholonomic equations of motion, i.e., Lagrange–D’Alembert equations, for the rotating body model based on the non-twisting frame are:

$$\begin{aligned} \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}+\pi _{\parallel }\dot{\varvec{d}}_3&= \varvec{0}, \end{aligned}$$
(69a)
$$\begin{aligned} \dot{\pi }_{\parallel }+\varvec{\pi }_\perp \cdot \dot{\varvec{d}}_3+\mu&= 0, \end{aligned}$$
(69b)
$$\begin{aligned} \varvec{w}\cdot \varvec{d}_3&=0. \end{aligned}$$
(69c)

The pertaining initial conditions are:

$$\begin{aligned} \varvec{\varLambda }(0) = \bar{\varvec{\varLambda }},\quad \varvec{w}_\perp (0) = \bar{\varvec{w}}_\perp ,\quad w_\parallel (0) = 0. \end{aligned}$$
(70)

Moreover, Eq. (5) can be rewritten as

$$\begin{aligned} \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}&= \varvec{0}, \end{aligned}$$
(71a)
$$\begin{aligned} \varvec{\pi }_\perp \cdot \dot{\varvec{d}}_3+\mu&= 0, \end{aligned}$$
(71b)
$$\begin{aligned} w_\parallel&=0, \end{aligned}$$
(71c)

where \(\varvec{\pi }_\perp \in T^{*}_{\varvec{d}_3}S^2\) must satisfy the parallel transport along the curve \(\varvec{d}_3\in S^2\).

Proof

The first part follows from the inclusion of the force associated with the presence of the nonholonomic restriction given by

$$\begin{aligned} g = \varvec{w}\cdot \varvec{d}_3 = 0 \end{aligned}$$
(72)

which ensures that the rotating frame renders no twist at all. The virtual work performed by the force associated with the presence of this nonholonomic restriction can be computed as

$$\begin{aligned} \delta \mathcal {W}_\mathrm {nh} = \mu \frac{\partial \left( \varvec{w}\cdot \varvec{d}_3\right) }{\partial \varvec{w}}\cdot \delta \varvec{\theta } = \delta \varvec{\theta }\cdot \left( \mu \varvec{d}_3\right) = \delta \varvec{\theta }_\parallel \cdot \left( \mu \varvec{d}_3\right) \end{aligned}$$
(73)

where \(\mu \in \mathbb {R}\) denotes the corresponding Lagrange multiplier. The second part follows from noticing that \(w_\parallel =\varvec{w}\cdot \varvec{d}_3=0\) implies \(\pi _\parallel =0\).

Theorem 6

The conservation laws of the rotating rigid body based on the non-twisting frame are:

$$\begin{aligned} K&= \frac{1}{2}\varvec{W}\cdot \varvec{J}\varvec{W} = \frac{1}{2}\varvec{w}\cdot \varvec{j}\varvec{w} = \text {const.}, \end{aligned}$$
(74a)
$$\begin{aligned} \varPi ^1&= \varvec{D}_1\cdot \varvec{\varPi } = \varvec{d}_1\cdot \varvec{\pi } = \text {const.},\end{aligned}$$
(74b)
$$\begin{aligned} \varPi ^2&= \varvec{D}_2\cdot \varvec{\varPi } = \varvec{d}_2\cdot \varvec{\pi } = \text {const.}. \end{aligned}$$
(74c)

Proof

To prove the conservation of kinetic energy, let us consider the following equilibrium statement

$$\begin{aligned} \delta \varvec{\theta }_\perp \cdot \left( \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}+\pi _{\parallel }\dot{\varvec{d}}_3\right) + \delta \varvec{\theta }_\parallel \cdot \left( \left( \varvec{\pi }_\perp \cdot \dot{\varvec{d}}_3+\mu \right) \varvec{d}_3\right) + \delta \mu \left( \varvec{w}\cdot \varvec{d}_3 \right) = 0, \end{aligned}$$
(75)

where \(\delta \varvec{\theta }_\perp \in T_{\varvec{d}_3}S^2, \delta \varvec{\theta }_\parallel \in N_{\varvec{d}_3}S^2\) and \(\delta \mu \) are admissible variations. Now by choosing \(\delta \varvec{\theta }_\perp = \varvec{w}_\perp , \delta \varvec{\theta }_\parallel = \varvec{w}_\parallel \) and \(\delta \mu = 0\), we have that

$$\begin{aligned} \begin{aligned} 0&= \varvec{w}_\perp \cdot \left( \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}+\pi _{\parallel }\dot{\varvec{d}}_3\right) + \varvec{w}_\parallel \cdot \left( \left( \varvec{\pi }_\perp \cdot \dot{\varvec{d}}_3+\mu \right) \varvec{d}_3\right) \\&=\varvec{w}\cdot \dot{\varvec{\pi }} \\&= \varvec{W}\cdot \dot{\varvec{\varPi }}\\&=\frac{\partial }{\partial t}\left( \frac{1}{2}\varvec{W}\cdot \varvec{J}\varvec{W}\right) \\&= \dot{K}, \end{aligned} \end{aligned}$$
(76)

which shows that the kinetic energy is preserved by the motion.

To prove the conservation of the first and second components of the material angular momentum, let us consider the fact that

$$\begin{aligned} \begin{aligned} \varvec{\pi }_\perp&= (\varvec{d}_1\cdot \varvec{\pi })\varvec{d}_1+(\varvec{d}_2\cdot \varvec{\pi })\varvec{d}_2\\&= \varPi ^1\varvec{d}_1+\varPi ^2\varvec{d}_2. \end{aligned} \end{aligned}$$
(77)

Now by introducing the former expression into the first statement of Eq. (5), we have that

$$\begin{aligned} \begin{aligned} \varvec{0}&= \nabla _{\dot{\varvec{d}}_3}{\varvec{\pi }_{\perp }}\\&= \nabla _{\dot{\varvec{d}}_3}{(\varPi ^1\varvec{d}_1+\varPi ^2\varvec{d}_2)}\\&= \nabla _{\dot{\varvec{d}}_3}{\varPi ^1\varvec{d}_1}+\nabla _{\dot{\varvec{d}}_3}{\varPi ^2\varvec{d}_2}\\&= \dot{\varPi }^1\varvec{d}_1+\dot{\varPi }^2\varvec{d}_2, \end{aligned} \end{aligned}$$
(78)

in which the parallel transport of \(\varvec{d}_1\) and \(\varvec{d}_2\), both in \(T_{\varvec{d}_3}S^2\), has been accounted for. This shows that the first and second components of the material angular momentum are preserved by the motion.

Remark 3

To include external moments acting on the rotating rigid body based on the non-twisting frame, it is necessary to compute the associated virtual work as follows

$$\begin{aligned} \delta \mathcal {W} = \delta \varvec{\theta }_\perp \cdot \varvec{m}^{\mathrm {ext}}_\perp . \end{aligned}$$
(79)

4.2 Alternative Governing Equations

Here, we present an alternative formulation for the rotating rigid body based on the non-twisting frame that relies on constrained directors. The extension of the standard rotating rigid body model to the one relying on the non-twisting frame requires the introduction of the constraint given by

$$\begin{aligned} g = (1-a)\dot{\varvec{d}}_1\cdot \varvec{d}_2-a\dot{\varvec{d}}_2\cdot \varvec{d}_1 = 0, \end{aligned}$$
(80)

in which \(a\in [0,1]\) is a parameter that can be freely chosen for convenience. This will be used later on for the proof of the conservation properties of the specialized structure preserving algorithm.

Theorem 7

The alternative nonholonomic equations of motion, i.e., the Lagrange–D’Alembert equations, for the rotating rigid body model based on the non-twisting frame are:

$$\begin{aligned} \dot{\varvec{\pi }}^1(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_1(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }+(1-a)\mu \varvec{d}_2&=\varvec{0}, \end{aligned}$$
(81a)
$$\begin{aligned} \dot{\varvec{\pi }}^2(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_2(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }-a\mu \varvec{d}_1&=\varvec{0},\end{aligned}$$
(81b)
$$\begin{aligned} \dot{\varvec{\pi }}^3(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)+\varvec{H}_3(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)^\mathrm{T}\varvec{\lambda }&=\varvec{0},\end{aligned}$$
(81c)
$$\begin{aligned} \varvec{h}(\varvec{d}_1,\varvec{d}_2,\varvec{d}_3)&= \varvec{0},\end{aligned}$$
(81d)
$$\begin{aligned} (1-a)\dot{\varvec{d}}_1\cdot \varvec{d}_2-a\dot{\varvec{d}}_2\cdot \varvec{d}_1&= 0. \end{aligned}$$
(81e)

The pertaining initial conditions are:

$$\begin{aligned} \varvec{d}_1(0)=\bar{\varvec{d}}_1,\quad \varvec{d}_2(0)=\bar{\varvec{d}}_2,\quad \varvec{d}_3(0)=\bar{\varvec{d}}_3,\quad \varvec{w}_\perp (0) = \bar{\varvec{d}}_3\times \dot{\bar{\varvec{d}}}_3,\quad w_\parallel (0) = 0 \end{aligned}$$
(82)

Proof

The theorem follows from the computation of the virtual work associated with the presence of the nonholonomic restriction, namely

$$\begin{aligned} \delta \mathcal {W}_\mathrm {nh} = \mu \frac{\partial g}{\partial \dot{\varvec{d}}_1}\cdot \delta \varvec{d}_1 + \mu \frac{\partial g}{\partial \dot{\varvec{d}}_2}\cdot \delta \varvec{d}_2 = \delta \varvec{d}_1\cdot ((1-a)\mu \varvec{d}_2)+\delta \varvec{d}_2\cdot (-a\mu \varvec{d}_1), \end{aligned}$$
(83)

where \(\mu \in \mathbb {R}\) denotes the corresponding Lagrange multiplier.

Remark 4

To include external moments acting on the rotating rigid body based on the non-twisting frame, it is necessary to compute the associated virtual work as follows

$$\begin{aligned} \delta \mathcal {W} = \delta \mathcal {W}_1+\delta \mathcal {W}_2+\delta \mathcal {W}_3 \quad \mathrm {with} \quad \delta \mathcal {W}_i = \frac{1}{2}(\varvec{d}_i\times \delta \varvec{d}_i) \cdot \varvec{m}^{\mathrm {ext}}_\perp . \end{aligned}$$
(84)

5 Structure-Preserving Time Integration

A fundamental aspect to produce acceptable numerical results in the context of nonlinear systems is the preservation of mechanical invariants whenever possible, e.g., first integrals of motion. These conservation properties ensure that beyond the approximation errors, the computed solution remains consistent with respect to the underlying physical essence. Here then, we chose the family of integration methods that is derived by direct discretization of the equations of motion.

5.1 Basic Energy–Momentum Algorithm

Next, we describe the application of the energy–momentum integration algorithm (Simo and Wong 1991; Simo and Tarnow 1992) to the “standard rotating rigid body” case. For this purpose, the following nomenclature is necessary:

$$\begin{aligned} \varvec{q}\!=\! \begin{pmatrix} \varvec{d}_1\\ \varvec{d}_2\\ \varvec{d}_3\\ \end{pmatrix},\,\, \varvec{p}\!=\! \begin{pmatrix} \varvec{\pi }^1\\ \varvec{\pi }^2\\ \varvec{\pi }^3\\ \end{pmatrix}\,\,\,\text {and}\,\,\, \varvec{Q}^\text {ext}\!=\! \begin{pmatrix} \varvec{f}^{1, \text {ext}}\\ \varvec{f}^{2, \text {ext}}\\ \varvec{f}^{3, \text {ext}}\\ \end{pmatrix}. \end{aligned}$$
(85)

While \(\varvec{q}\) is the vector of generalized coordinates, \(\varvec{p}\) collects the generalized momenta and \(\varvec{Q}^\text {ext}\) contains the generalized external loads, if present. The discrete version of Eq. (4) can be expressed at time \(n+\frac{1}{2}\) as

$$\begin{aligned} \bigl \langle \delta \varvec{q}_{n+\frac{1}{2}}, \dot{\varvec{p}}_d(\varvec{q}_n,\dot{\varvec{q}}_n,\varvec{q}_{n+1})-\varvec{Q}^\text {ext}_{n+\frac{1}{2}}+\varvec{H}_d^\mathrm{T}(\varvec{q}_n,\varvec{q}_{n+1}) \varvec{\lambda }_{n+\frac{1}{2}} \bigr \rangle + \bigl \langle \delta \varvec{\lambda }_{n+1}, \varvec{h}(\varvec{q}_{n+1}) \bigr \rangle = 0, \end{aligned}$$
(86)

where \(\left\langle \cdot ,\cdot \right\rangle \) stands for the dual pairing.

A key point to achieve the desired preservation properties, is to define the momentum terms by using the midpoint rule, i.e., 

$$\begin{aligned} \varvec{p}_d(\varvec{q}_n,\varvec{q}_{n+1})&=\frac{1}{h}\varvec{M}(\varvec{q}_{n+1}-\varvec{q}_n),\end{aligned}$$
(87a)
$$\begin{aligned} \dot{\varvec{p}}_d(\varvec{q}_n,\dot{\varvec{q}}_n,\varvec{q}_{n+1})&=\frac{2}{h^2}\varvec{M}(\varvec{q}_{n+1}-\varvec{q}_{n}-h\dot{\varvec{q}}_{n}), \end{aligned}$$
(87b)

where \(\varvec{q}_n\) and \(\dot{\varvec{q}}_n\) are known from the previous step, \(\varvec{q}_{n+1}\) are \(\dot{\varvec{q}}_{n+1}\) are unknown, and \(\dot{\varvec{q}}_{n+1}\) is computed as \(\frac{2}{h}(\varvec{q}_{n+1}-\varvec{q}_n)-\dot{\varvec{q}}_n\) once \(\varvec{q}_{n+1}\) has been determined by means of an iterative procedure, typically the Newtown–Raphson method.

The mass matrix takes the form

$$\begin{aligned} \varvec{M}= \begin{bmatrix} \mathscr {J}^{11}\varvec{I}_{3\times 3} &{} \mathscr {J}^{12}\varvec{I}_{3\times 3} &{} \varvec{0}_{3\times 3} \\ \mathscr {J}^{12}\varvec{I}_{3\times 3} &{} \mathscr {J}^{22}\varvec{I}_{3\times 3} &{} \varvec{0}_{3\times 3} \\ \varvec{0}_{3\times 3} &{} \varvec{0}_{3\times 3} &{} \mathscr {J}^{33}\varvec{I}_{3\times 3} \\ \end{bmatrix} \end{aligned}$$
(88)

and \(\mathscr {J}^{ij}\) for i and j running from 1 to 3 being defined above. This very simple construction satisfies, only for the standard rigid body case, the preservation of linear and angular momenta in combination with the kinetic energy in absence of external loads.

The discrete version of the Jacobian matrix of the constraints can be computed with the average vector field (Gebhardt et al. 2019a, b) as

$$\begin{aligned} \varvec{H}_d(\varvec{q}_n,\varvec{q}_{n+1})=\frac{1}{2}\int _{-1}^{+1} \left. \frac{\partial \varvec{h}}{\partial \varvec{q}} \right| _{\varvec{q}(\xi )} \mathrm {d}\xi , \end{aligned}$$
(89)

where \(\varvec{q}(\xi )\) is defined as \(\frac{1}{2}(1-\xi )\varvec{q}_{n}+\frac{1}{2}(1+\xi )\varvec{q}_{n+1}\) for \(\xi \in [-1,+1]\). The algorithmic Jacobian matrix defined in this way satisfies for any admissible solution the discrete version of the hidden constraints, i.e., 

$$\begin{aligned} \varvec{H}_d(\varvec{q}_{n}, \varvec{q}_{n+1})(\varvec{q}_{n+1}-\varvec{q}_{n}) =\varvec{0}. \end{aligned}$$
(90)

Theorem 8

The discrete conservation laws of the energy–momentum integration algorithm specialized to the standard rotating rigid body are:

$$\begin{aligned} K_{n+1} - K_n&= 0 ,\end{aligned}$$
(91a)
$$\begin{aligned} \varvec{\pi }_{n+1} - \varvec{\pi }_n&= 0. \end{aligned}$$
(91b)

Proof

This is an standard result, and thus, we omit further details.

5.2 Specialized Energy–Momentum Algorithm

The energy–momentum integration algorithm can be further specialized to the nonholonomic case, where the discrete governing equations are:

$$\begin{aligned} \begin{aligned}&\bigl \langle \delta \varvec{q}_{n+\frac{1}{2}}, \dot{\varvec{p}}_d(\varvec{q}_n,\dot{\varvec{q}}_n,\varvec{q}_{n+1})-\varvec{Q}^\text {ext}_{n+\frac{1}{2}}\\&\quad +\varvec{H}_d^\mathrm{T}(\varvec{q}_n,\varvec{q}_{n+1}) \varvec{\lambda }_{n+\frac{1}{2}}+\varvec{G}_d^\mathrm{T}(\varvec{q}_n,\varvec{q}_{n+1})\varvec{\mu }_{n+\frac{1}{2}} \bigr \rangle + \bigl \langle \delta \varvec{\lambda }_{n+1}, \varvec{h}(\varvec{q}_{n+1}) \bigr \rangle = 0,\\&\quad \varvec{G}_d(\varvec{q}_n,\varvec{q}_{n+1})(\varvec{q}_{n+1}-\varvec{q}_n) = \varvec{0}. \end{aligned} \end{aligned}$$
(92)

Once again, we can use the average vector field to compute

$$\begin{aligned} \varvec{G}_d(\varvec{q}_n,\varvec{q}_{n+1})=\frac{1}{2}\int _{-1}^{+1} \varvec{G}(\varvec{q}(\xi )) \mathrm {d}\xi \end{aligned}$$
(93)

that arises from the nonholonomic constraint, where \(\varvec{q}(\xi )\) is defined as before. In this way, the nonholonomic constraint is identically satisfied at the midpoint, i.e., 

$$\begin{aligned} \varvec{G}_d(\varvec{q}_{n}, \varvec{q}_{n+1})(\varvec{q}_{n+1}-\varvec{q}_{n}) =\varvec{0}. \end{aligned}$$
(94)

Theorem 9

The discrete conservation laws of the energy–momentum integration algorithm specialized to the rotating rigid body based on the non-twisting frame are:

$$\begin{aligned} K_{n+1} - K_n&= 0 , \end{aligned}$$
(95a)
$$\begin{aligned} \varPi ^1_{n+1} - \varPi ^1_n&= 0,\end{aligned}$$
(95b)
$$\begin{aligned} \varPi ^2_{n+1} - \varPi ^2_n&= 0. \end{aligned}$$
(95c)

Proof

To prove the conservation of kinetic energy, let us consider the following discrete variation

$$\begin{aligned} (\delta \varvec{q}_{n+\frac{1}{2}}, \delta \varvec{\lambda }_{n+1}) = \frac{h}{2}(\dot{\varvec{q}}_{n+1}+\dot{\varvec{q}}_n, \varvec{0}). \end{aligned}$$
(96)

By inserting the previous discrete variation in Eq. (92), we get

$$\begin{aligned} \begin{aligned} 0&= \frac{1}{2}(\dot{\varvec{q}}_{n+1}+\dot{\varvec{q}}_n)\cdot \varvec{M}(\dot{\varvec{q}}_{n+1}-\dot{\varvec{q}}_n) \\&= \frac{1}{2}\dot{\varvec{q}}_{n+1}\cdot \varvec{M}\dot{\varvec{q}}_{n+1}-\frac{1}{2}\dot{\varvec{q}}_n\cdot \varvec{M}\dot{\varvec{q}}_n \\&= K_{n+1}-K_n.\\ \end{aligned} \end{aligned}$$
(97)

For the first component of the angular momentum, i.e., \(\varPi ^1\), we need to consider the following discrete variation

$$\begin{aligned} \begin{aligned} (\delta \varvec{q}_{n+\frac{1}{2}}, \delta \varvec{\lambda }_{n+1})&= (\delta \varvec{d}_{1, n+\frac{1}{2}}, \delta \varvec{d}_{2, n+\frac{1}{2}}, \delta \varvec{d}_{3, n+\frac{1}{2}}, \delta \varvec{\lambda }_{n+1}) \\&= \frac{h}{2}( \varvec{0}, \varvec{d}_{3, n+1}+\varvec{d}_{3, n}, -\varvec{d}_{2, n+1}-\varvec{d}_{2, n}, \varvec{0}, \varvec{0}), \end{aligned} \end{aligned}$$
(98)

and let a be equal to 1. By inserting the previous discrete variation in Eq. (92), we get

$$\begin{aligned} \frac{1}{2}(\varvec{d}_{3, n+1}+\varvec{d}_{3, n}) \cdot (\varvec{\pi }^2_{n+1}-\varvec{\pi }^2_n)-\frac{1}{2}(\varvec{d}_{2, n+1}+\varvec{d}_{2, n}) \cdot (\varvec{\pi }^3_{n+1}-\varvec{\pi }^3_n) = 0, \end{aligned}$$
(99)

where

$$\begin{aligned} (\varvec{d}_{3, n+1}+\varvec{d}_{3, n}) \cdot (\varvec{\pi }^2_{n+1}-\varvec{\pi }^2_n) = \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}+\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n}. \end{aligned}$$
(100)

By using Taylor’s approximations, we have that

$$\begin{aligned} \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n} = \varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}+h(\dot{\varvec{d}}_{3, n}\cdot \varvec{\pi }^2_{n})+\mathcal {O}(h^{2})\, \end{aligned}$$
(101)

and

$$\begin{aligned} \varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n+1} = \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-h(\dot{\varvec{d}}_{3, n+1}\cdot \varvec{\pi }^2_{n+1})+\mathcal {O}(h^{2}). \end{aligned}$$
(102)

Then

$$\begin{aligned} \begin{aligned} \varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n}&= \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}+h(\dot{\varvec{d}}_{3,n}\cdot \varvec{\pi }^2_{n+1}+\dot{\varvec{d}}_{3,n+1}\cdot \varvec{\pi }^2_{n})+\mathcal {O}(h^{2})\\&= \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}+\mathcal {O}(h^{2}), \end{aligned} \end{aligned}$$
(103)

insomuch as

$$\begin{aligned} \dot{\varvec{d}}_{3,n+1}\cdot \varvec{\pi }^2_{n}+\dot{\varvec{d}}_{3,n}\cdot \varvec{\pi }^2_{n+1} = 2\dot{\varvec{d}}_{3,n+\frac{1}{2}}\cdot \varvec{\pi }^2_{n+\frac{1}{2}}+\mathcal {O}(h^{}) = \mathcal {O}(h^{}), \end{aligned}$$
(104)

which can be easily shown by considering that

$$\begin{aligned} \begin{aligned} \dot{\varvec{d}}_{3}\cdot \varvec{\pi }^2&=\dot{\varvec{d}}_{3}\cdot (\mathscr {J}^{12}\dot{\varvec{d}}_{1}+\mathscr {J}^{22}\dot{\varvec{d}}_{2})\\&=\mathscr {J}^{12}\dot{\varvec{d}}_{3}\cdot \dot{\varvec{d}}_{1}+\mathscr {J}^{22}\dot{\varvec{d}}_{3}\cdot \dot{\varvec{d}}_{2}\\&= 0, \end{aligned} \end{aligned}$$
(105)

since the angular velocity \(\varvec{w}_{n+\frac{1}{2}}\) has the form \(\varvec{d}_{3,n+\frac{1}{2}}\times \dot{\varvec{d}}_{3,n+\frac{1}{2}}\) due to the satisfaction of the non-twisting condition, see Sect. 2.3.

In this way, the first term of Eq. (99) becomes

$$\begin{aligned} \frac{1}{2}(\varvec{d}_{3, n+1}+\varvec{d}_{3, n}) \cdot (\varvec{\pi }^2_{n+1}-\varvec{\pi }^2_n) = \varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}+\mathcal {O}(h^{2}), \end{aligned}$$
(106)

and with same reasoning, the second term of Eq. (99) turns to be

$$\begin{aligned} \frac{1}{2}(\varvec{d}_{2, n+1}+\varvec{d}_{2, n}) \cdot (\varvec{\pi }^3_{n+1}-\varvec{\pi }^3_n) = \varvec{d}_{2, n+1}\cdot \varvec{\pi }^3_{n+1}-\varvec{d}_{2, n}\cdot \varvec{\pi }^3_{n}+\mathcal {O}(h^{2}). \end{aligned}$$
(107)

By replacing the two previous expressions in (99), we have that

$$\begin{aligned} \begin{aligned} 0&= (\varvec{d}_{3, n+1}\cdot \varvec{\pi }^2_{n+1}-\varvec{d}_{2, n+1}\cdot \varvec{\pi }^3_{n+1})-(\varvec{d}_{3, n}\cdot \varvec{\pi }^2_{n}-\varvec{d}_{2, n}\cdot \varvec{\pi }^3_{n})+\mathcal {O}(h^{2})\\&= \varPi ^1_{n+1}-\varPi ^1_{n}+\mathcal {O}(h^{2})\\&\approx \varPi ^1_{n+1}-\varPi ^1_{n}, \end{aligned} \end{aligned}$$
(108)

which is true since

$$\begin{aligned} \begin{aligned} \varPi ^1&= \varvec{d}_1\cdot \varvec{\pi }\\&= \varvec{d}_1\cdot \left( \varvec{d}_1\times \varvec{\pi }^1+\varvec{d}_2\times \varvec{\pi }^2+\varvec{d}_3\times \varvec{\pi }^3\right) \\&= \varvec{d}_3\cdot \varvec{\pi }^2-\varvec{d}_2\cdot \varvec{\pi }^3. \end{aligned} \end{aligned}$$
(109)

Finally, for the second component of the angular momentum, i.e., \(\varPi ^2\), we need to consider the following discrete variation

$$\begin{aligned} \begin{aligned} (\delta \varvec{q}_{n+\frac{1}{2}}, \delta \varvec{\lambda }_{n+1})&= (\delta \varvec{d}_{1, n+\frac{1}{2}}, \delta \varvec{d}_{2, n+\frac{1}{2}}, \delta \varvec{d}_{3, n+\frac{1}{2}}, \delta \varvec{\lambda }_{n+1}) \\&= \frac{h}{2}(-\varvec{d}_{3, n+1}-\varvec{d}_{3, n}, \varvec{0}, \varvec{d}_{2, n+1}+\varvec{d}_{2, n}, \varvec{0}, \varvec{0})\, \end{aligned} \end{aligned}$$
(110)

and let a be equal to zero. Then, the rest of the proof follows as before.

6 Numerical Results

In this section, we present numerical results of the motion of a rotating rigid body based on the non-twisting frame with (non-physical) inertia

$$\begin{aligned} {[}J_{ij}] = \begin{bmatrix} 3 &{} -1/7 &{} 0 \\ -1/7 &{} 4 &{} 0 \\ 0 &{} 0 &{} 5 \end{bmatrix} \,\, \mathrm {~kg\,m^2} \,\, \text {or equivalently} \,\, [\mathscr {J}_{ij}] = \begin{bmatrix} 3 &{} 1/7 &{} 0 \\ 1/7 &{} 2 &{} 0 \\ 0 &{} 0 &{} 1 \end{bmatrix} \,\, \mathrm {~kg\,m^2}. \end{aligned}$$
(111)

Next, we evaluate the qualitative properties of the proposed numerical setting in a reduced picture. For the first case, we consider the dynamic response to an initial condition different from the trivial one. For the second case, we consider the dynamic response to a vanishing load. The third and last case is a combination of both, i.e., initial condition different from the trivial one and a vanishing load. All the three cases were numerically solved in the time interval \([0, 5]\,\,\text {s}\) with a time step size of \(h = 0.005\,\,\text {s}\) and relative tolerance \(10^{-10}\). Additionally, we present a brief comparison between the results obtained with the proposed algorithm and those results obtained with a well-established nonholonomic integrator.

6.1 Case 1: Response to Nonzero Initial Conditions

For this first case we consider

$$\begin{aligned} \varvec{\varLambda }(0) = \varvec{I}, \quad \varvec{\omega }_\perp (0) = 6\varvec{d}_1(0)-18\varvec{d}_2(0) \,\,\mathrm {~rad/s}\, \end{aligned}$$
(112)

and

$$\begin{aligned} \varvec{m}^{\mathrm {ext}}_\perp (t) = \varvec{0} \,\,\mathrm {~kg\,m^2/s^2}. \end{aligned}$$
(113)

Figure 1 presents the time history for the spatial and material components of the angular momentum. On the left, we can observe that the components of the spatial angular momentum (SAM) oscillate with constant amplitude and frequency, and therefore, they are not constant as in the case of the standard rotating rigid body. On the right we can observe that the components of the material angular momentum (MAM) are identically preserved. While the first and second components are constant and different from zero, the third one is zero as expected from the imposition of the nonholonomic restriction \(\omega _\parallel = 0\,\,\mathrm {rad/s}\). As shown before for the analytical setting as well as for the numerical setting, this non-intuitive behavior results from the fact that the dynamics of the system is not taking place in the environment space, but on the 2-sphere. Therefore, this behavior is truly native on the 2-sphere since the directors \(\varvec{d}_1\) and \(\varvec{d}_2\) in \(T_{\varvec{d}_3}S^2\) are being parallel transported along the time-parameterized solution curve \(\varvec{d}_3\).

Figure 2 presents the time history for the kinetic energy and the second quotient of precision as defined in “Appendix A.” On the left we can observe that the kinetic energy is identically preserved as expected. On the right we see that the second quotient of precision is approximately 4, see also Table 1, which means that the integrator is really achieving second-order accuracy.

Figure 3 shows the trajectory followed by \(\varvec{d}_3\), which as expected takes place on a plane that separates the sphere into two half spheres. Such trajectory minimizes locally the distance on \(S^2\), and thus, this is geodesic. Finally, and to summarize the excellent performance of the numerical setting, Table 2 presents the stationary values for the motion invariants, i.e., the first and second components of the material angular momentum and kinetic energy.

Fig. 1
figure 1

Case 1: SAM components (left) and MAM components (right)

Fig. 2
figure 2

Case 1: Kinetic energy (left) and second quotient of precision (right)

Table 1 Case 1: Second quotient of precision
Fig. 3
figure 3

Case 1: Trajectory of \(\varvec{d}_3\) on \(S^2\)

Table 2 Case 1: Motion invariants—stationary values
Fig. 4
figure 4

Case 2: SAM components (left) and MAM components (right)

6.2 Case 2: Response to a Vanishing Load

For this second case we consider

$$\begin{aligned} \varvec{\varLambda }(0) = \varvec{I}, \quad \varvec{\omega }_\perp (0) = \varvec{0}\,\,\mathrm {~rad/s} \end{aligned}$$
(114)

and

$$\begin{aligned} \varvec{m}^{\mathrm {ext}}_\perp (t) =-f(t)(2472.5\varvec{d}_1(t)+1075\varvec{d}_2(t))\,\,\mathrm {~kg\,m^2/s^2} , \end{aligned}$$
(115)

where

$$\begin{aligned} f(t)=\left\{ \begin{array}{lll} 2t &{} \mathrm {for} &{} 0\le t<0.5\\ 2-2t &{} \mathrm {for} &{} 0.5\le t<1\\ 0 &{} \mathrm {for} &{} t\ge 1 \end{array}\right. \end{aligned}$$
(116)

Figure 4 presents the time history for the spatial and material components of the angular momentum, where the applied material load \(\varvec{m}^{\mathrm {ext}}_\perp \) is active only during the first second of simulation. On the left figure, we observe that the components of the spatial angular momentum vary starting from zero since the rotating rigid body is initially at rest. After the load vanishes, the components of the spatial angular momentum oscillate with constant amplitude and frequency, and therefore, they are not constant, but indicate a steady state. On the right figure we can observe that the components of the material angular momentum also vary from zero, except the third one that remains always equal to zero. After the material load vanishes, the components of the material angular momenta are identically preserved. Once again, the first and second components are constant and different from zero.

Figure 5 presents the time history for the kinetic energy and the second quotient of precision. On the left, we can observe that the kinetic energy varies during the first second, where the applied material load is active. After this vanishes, the kinetic energy is identically preserved. On the right figure we confirm again that the second quotient of precision is approximately 4, see also Table 3, which means that the integrator is second-order accurate even during the time in which the applied material load is active.

Fig. 5
figure 5

Case 2: Kinetic energy (left) and second quotient of precision (right)

Table 3 Case 2: Second quotient of precision

Figure 6 shows the trajectory followed by \(\varvec{d}_3\), which due to the fixed relation among components of the applied material load takes place on a plane that separates the sphere in two half spheres. Such trajectory minimizes locally the distance on \(S^2\), and thus, this is geodesic as well. Table 4 presents the stationary values for the motion invariants.

Fig. 6
figure 6

Case 2: Trajectory of \(\varvec{d}_3\) on \(S^2\)

Table 4 Case 2: Motion invariants—stationary values

6.3 Case 3: Response to Nonzero Initial Conditions and a Vanishing Load

For this last case we consider

$$\begin{aligned} \varvec{\varLambda }(0) = \varvec{I}, \quad \varvec{\omega }_\perp (0) = 1.5\varvec{d}_1+4.5\varvec{d}_2\,\,\mathrm {~rad/s} \end{aligned}$$
(117)

and

$$\begin{aligned} \varvec{m}^{\mathrm {ext}}_\perp (t) =-f(t)(1236.25\varvec{d}_1(t)+537.5\varvec{d}_2(t))\,\,\mathrm {~kg\,m^2/s^2} \end{aligned}$$
(118)

with f(t) defined as in Eq. (116).

Figure 7 presents the time history for the spatial and material components of the angular momentum. On the left, we can observe that the components of the spatial angular momentum vary starting from the values corresponding to the initial condition adopted. After the material load vanishes, the components of the spatial angular momentum oscillate with constant amplitude and frequency indicating a steady state. On the right, we observe that the components of the material angular momentum also vary from the values corresponding to the initial condition adopted, except the third one that remains always equal to zero. After the material load vanishes the components of the material angular momenta are identically preserved as in the previous cases.

Figure 8 presents the time history for the kinetic energy and the second quotient of precision. On the left we can observe that the kinetic energy varies during the first second, where the applied material load is active. After this vanishes, the kinetic energy is identically preserved. To the right we see that the second quotient of precision is approximately 4, see also Table 5.

Figure 9 shows the trajectory followed by \(\varvec{d}_3\). During the first second, the trajectory does not render a distance minimizing curve on \(S^2\). This is due to the combination of initial condition adopted and the load applied that produces a change in the direction of the axis of rotation. After the material load vanishes, the trajectory describes a circle of radius 1. Table 6 provides the stationary values for the motion invariants.

Fig. 7
figure 7

Case 3: SAM components (left) and MAM components (right)

Fig. 8
figure 8

Case 3: Kinetic energy (left) and second quotient of precision (right)

Table 5 Case 3: Second quotient of precision
Fig. 9
figure 9

Case 3: Trajectory of \(\varvec{d}_3\) on \(S^2\)

Table 6 Case 3: Motion invariants—stationary values

6.4 Comparison with the Discrete Lagrange–D’Alembert Algorithm

Here we present, for the rigid body model based on the non-twisting frame, a brief comparison between the results obtained with the specialized energy–momentum method proposed and those results obtained with a well-established nonholonomic integrator (Cortés and Martínez 2001). We note that the aim of this section is not to provide a detailed comparison between numerical methods, but rather to put the proposed ideas into a suitable context. Such a detailed comparative analysis falls outside the present scope.

For the particular case of a holonomically (at most quadratically) constrained mechanical system with a constant mass matrix and without a potential function, the variational integrator of second order based on the discrete Euler–Lagrange algorithm is able to exactly preserve the Hamiltonian and energy functions at time \(t_i\) and \(t_{i+\frac{1}{2}}\), respectively. Moreover, for the unforced case, the Hamiltonian function practically matches the exact energy of the system. The Hamiltonian and the energy have similar, but different, values. This behavior is comprehensively reported in Leyendecker et al. (2008). In presence of a potential function, even the simplest linear one, this property is lost. For those cases, the Hamiltonian and energy functions oscillate about an average value that is close to the exact energy. Typically, the amplitude of such oscillations tends to zero as the time step tends to zero as well. Notwithstanding, the linear and angular momenta are always exactly preserved. The non-variational discrete Lagrange–D’Alembert algorithm can be considered as a natural extension of the discrete Euler–Lagrange algorithm to the realm of nonholonomic systems. This well-established nonholonomic integrator is able to preserve the nonholonomic momenta associated with horizontal symmetries and under the same conditions, i.e.,  a mechanical system with a constant mass matrix and without a potential function, it seems to preserve the Hamiltonian and the energy functions as well. Nonetheless, a formal proof of this particular behavior also falls outside the current scope. “Appendix B” summarizes the discrete Lagrange–D’Alembert algorithm for nonholonomic systems and provides the formulas used in this subsection to compute the responses for the three cases investigated.

In the first case, which studies the response to nonzero initial conditions, Table 7 shows the stationary values of the motion invariants. For sake of brevity, we introduce the following nomenclature: EM stands for energy–momentum and DLA stands for discrete Lagrange–D’Alembert. We can observe that the numerical values of the first and second components of the material angular momentum are indistinguishable. In addition, the value of the Hamiltonian is identical for both methods. The energy computed with the EM algorithm matches the value of the Hamiltonian, but the energy computed with the DLA algorithm differs a little as expected. Figure 10 shows the first component of the third director. The responses are similar when plotted for the time interval [0, 5] s. Nevertheless, if we take a closer look, for instance in the time interval [4, 5] s, the responses can be distinguished from each other, with the EM showing slower oscillations. A similar behavior is observed for the second and third components of the third director, see Figs. 11 and 12, respectively. The two methods converge quadratically and take in average 3–4 Newton–Raphson iterations to satisfy the relative tolerance criterion chosen. Moreover, we computed with both methods their second quotients of precision which evaluate to 4, approximately, certifying the implementation’s correctness.

Table 7 Comparison for the case 1, motion invariants—stationary values
Fig. 10
figure 10

Comparison for the case 1, 1st component of \(\varvec{d}_3\)—interval [0, 5] s (left) and interval [4, 5] s (right)

Fig. 11
figure 11

Comparison for the case 1, 2nd component of \(\varvec{d}_3\)—interval [0, 5] s (left) and interval [4, 5] s (right)

Fig. 12
figure 12

Comparison for the case 1, 3rd component of \(\varvec{d}_3\)—interval [0, 5] s (left) and interval [4, 5] s (right)

For the second case, the one analyzing the response to a vanishing load, Table 8 shows the stationary values of the motion invariants. This time, all the invariants computed with the DLA algorithm, even if the agreement is excellent, differ from the invariants computed with the EM algorithm. The comparison of the components of the third director shows a very similar behavior to the one observed in the first case, and therefore, these additional results are omitted.

Table 8 Comparison for the case 2, motion invariants—stationary values

Finally, for the third case that corresponds to the solution for nonzero initial conditions and a vanishing load, Table 9 shows the stationary values of the motion invariants. Once again, the invariants computed with the DLA algorithm, even if the agreement with those calculated with the EM is very good, differ from the latter. As before, the comparison of the components of the third director shows a very similar behavior as observed in the first and second cases. Thus, these results are omitted as well.

Table 9 Comparison for the case 3, motion invariants—stationary values

In summary, we can claim that, for the investigated cases, the results obtained with both methods are in excellent agreement with each other. Moreover, the computational costs of carrying out the numerical simulations are practically the same for both approaches. Therefore, we can state that our approach is very competitive and produces correct pictures of the underlying nonholonomic system. These observations are very encouraging and motivate further investigations along this direction.

7 Summary

This article describes the governing equations of the rotating rigid body in a nonholonomic context and discusses their relation with other, well-known, equivalent models based on rotations and orthonormal vectors. The equations obtained are non-variational and possess first invariants of motion. Some of them, i.e., the nonholonomic momenta (first and second components of the material angular momentum), are neither evident from the standard descriptions nor intuitive. To the best of our knowledge, there is no work in the literature that reports similar observations, and thus, it represents a main innovation of the current work.

Complementing the rigorous mathematical analysis done for the proposed model, an implicit, second-order accurate, energy and momentum conserving algorithm is presented, which discretizes in time the rigid body, nonholonomic equations. Such a time integration scheme preserves exactly the energy and nonholonomic momenta, and thus, this represents also a main innovation of the current work. Finally, simple examples, which make use of all elements of the approach proposed, are provided and confirm the excellent conservation properties and second-order accuracy of the new scheme.