RIGIDBODY
RIGIDBODY movement (translation and rotation) due to acting forces of the flow
The geometry with
MOVE-flag
$MOVE_index$ moves due to the acting forces of the flow as well as
additional outer forces and momentum.
In particular, we solve the
ODE of movement of rigid rotating bodies:
\begin{align} \frac{d }{dt} \left( \mathbf{x}_{COG} \right) = \mathbf{v}_{COG}\end{align}
\begin{align} \frac{d }{dt} \left( m \cdot \mathbf{v}_{COG} \right) = F_{fluid} + F_{gravity} + F_{outer} + \left( F_{contact} + F_{friction} \right)\end{align}
\begin{align} \frac{d}{dt} \left( \mathbf{I} \cdot \mathbf{\omega}_{COG} \right) = M_{fluid} + M_{outer} + \left( M_{contact} + M_{friction} \right)\end{align}
The variables are
-
- \( t\) : time
- \( m\) : mass of the body,
- \( \mathbf{x}_{COG}\) : position of the center of gravity of the body ; this can be interrogated by the function xCOG() ,
- \( \mathbf{v}_{COG}\) : velocity of the center of gravity; this can be interrogated by the function vCOG() ,
- \( F_{fluid}\) : forces acting from the fluid onto the body (automatically measured and applied!!!), to be requested by the function FCOG() ,
- \( F_{gravity}\): the gravity forces deduced from the definition of gravity of the appropriate material ,
- \( F_{outer}\) : additional / outer forces other than fluid or gravity / body forces ,
- \( \mathbf{I}\) : tensor of rotational inertia ,
- \( \mathbf{\omega}_{COG}\) : rotational speed about the center of gravity of the body, to be requested by the function omCOG() ,
- \( M_{fluid}\) : moment about the center of gravity (automatically measured and applied!!!!), this can be inquired by the function MCOG() ,
- \( M_{outer}\) : outer moments other than the moment applied by the fluid ,
- \( F_{contact}, M_{contact}\) : if RIGIDBODY_UseCollisionModel > 0 , then MESHFREE detects the body-body- and body-boundary-intersections and automatically applies contact forces and moments \( M_{contact} = \left( \mathbf{x}_{contact} - \mathbf{x}_{COG} \right) \times F_{contact}\) .
Remark: the items above have to be initialized in the
MOVE statement (see below)
MOVE(
$MOVE_index$) = (
%MOVE_rigid%,
xCenterInit, yCenterInit, zCenterInit,
Mass,
xxInertia, xyInertia, xzInertia, yxInertia, yyInertia, yzInertia, zxInertia, zyInertia, zzInertia,
xVelocityInit, yVelocityInit, zVelocityInit,
xOmegaInit, yOmegaInit, zOmegaInit,
xForce, yForce, zForce,
xMomentum, yMomentum, zMomentum,
OPTIONAL:xxdFduInit, xydFduInit, xzdFduInit, yxdFduInit, yydFduInit, yzdFduInit, zxdFduInit, zydFduInit, zzdFduInit ,
OPTIONAL:xxdGdOmega, xydGdOmega, xzdGdOmega, yxdGdOmega, yydGdOmega, yzdGdOmega, zxdGdOmega, zydGdOmega, zzdGdOmega )
-
- (xCenterInit, yCenterInit, zCenterInit): initial center of gravity \( \mathbf{x}_{COG}\)
- Mass: mass of RIGIDBODY \( m\)
- (xxInertia, xyInertia, xzInertia, yxInertia, yyInertia, yzInertia, zxInertia, zyInertia, zzInertia): initial tensor of inertia \( \mathbf{I}\)
- (xVelocityInit, yVelocityInit, zVelocityInit): initial velocity \( \mathbf{v}_{COG}\)
- (xOmegaInit, yOmegaInit, zOmegaInit): inital rotational state \( \mathbf{\omega}_{COG}\)
- (xForce, yForce, zForce): outer forces \( F_{outer}\)
- (xMomentum, yMomentum, zMomentum): outer momentum \( M_{outer}\)
- ( xxdFduInit, xydFduInit, xzdFduInit, yxdFduInit, yydFduInit, yzdFduInit, zxdFduInit, zydFduInit, zzdFduInit ): initial guess of dF/du (tensor)
- ( xxdGdOmega, xydGdOmega, xzdGdOmega, yxdGdOmega, yydGdOmega, yzdGdOmega, zxdGdOmega, zydGdOmega, zzdGdOmega ): initial guess of dG/dOmega (tensor)