+
    i,                         ^ RI HtHtHtHt ^ RI HtHtHtHt ^ RI H	t	 ^ RI
HtHtHtHt ^ RIHtHt R tR tR tR	 tR
 tR tR tR tR# )    )PointReferenceFrameDyadic	RigidBody)dynamicsymbolsouterinertiaInertia)inertia_of_point_mass)expandzerossimplifysymbols)raiseswarns_deprecated_sympyc                     \        R 4      p \        V P                  .\        R4      O5!  pV P                  R 8X  g   Q hV P
                  \        R4      8X  g   Q hV P                  P                  R8X  g   Q hV P                  WP                  38X  g   Q hV P                  V8X  g   Q hV P                  P                  R8X  g   Q hV P                  4       R 8X  g   Q hV P                  4       R8X  g   Q hR# )Bz#B_ixx B_iyy B_izz B_ixy B_iyz B_izxB_massB_masscenterB_framea|  RigidBody('B', masscenter=B_masscenter, frame=B_frame, mass=B_mass, inertia=Inertia(dyadic=B_ixx*(B_frame.x|B_frame.x) + B_ixy*(B_frame.x|B_frame.y) + B_izx*(B_frame.x|B_frame.z) + B_ixy*(B_frame.y|B_frame.x) + B_iyy*(B_frame.y|B_frame.y) + B_iyz*(B_frame.y|B_frame.z) + B_izx*(B_frame.z|B_frame.x) + B_iyz*(B_frame.z|B_frame.y) + B_izz*(B_frame.z|B_frame.z), point=B_masscenter))N)
r   r	   framer   namemass
masscentercentral_inertia__str____repr__)bIs     j/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_rigidbody.pytest_rigidbody_defaultr!      s    #AI'"GHIA66S==66WX&&&&<<...99LL))))!!!77<<9$$$99;#::<	         c                    a
aaa \        R 4      w  orr#p\        R4      o
\        R4      p\        R4      o\        R4      p\        ^ 4      o\        ^ 4      p\	        RSS
SSS34      pVP
                  S8X  g   Q hVP                  S
8X  g   Q hVP                  S8X  g   Q hVP                  SVP                  38X  g   Q hWn        WXn        Whn        WxP                  3Vn        \        \        V
VVV3R l4       \        \        VVV3R l4       \        \        V
VV3R l4       \        \        V
VVV3R	 l4       VP                  4       R8X  g   Q hVP
                  V 8X  g   Q hVP                  V8X  g   Q hVP                  V8X  g   Q hVP                  WxP                  38X  g   Q h\        VP                  \        4      '       g   Q h\        R
4      p	VP                  WV	P                  ,          W)P                   ,          ,           W9P"                  ,          ,           4       VP%                  V	4      WV	P                  ,          W)P                   ,          ,           W9P"                  ,          ,           ,          8X  g   Q hR# )zm m2 v1 v2 v3 omegaAA2PP2r   c                  &   < \        SSS SSS34      # )Nr   r$   r   r&   ms   r    <lambda> test_rigidbody.<locals>.<lambda>/   s    i1aQF;r"   c                  &   < \        R SSSS S34      # r   r)   )r   r&   r+   s   r    r,   r-   0       iQ1q!f=r"   c                  &   < \        R SS SSS34      # r/   r)   )r$   r&   r+   s   r    r,   r-   1   r0   r"   c                  &   < \        R SS SSS34      # r/   r)   r*   s   r    r,   r-   2   r0   r"   NN)r   r   r   r   r   r   r   r   r	   r   	TypeErrorr   
isinstancer
   set_velxyzlinear_momentum)m2v1v2v3omegar%   r'   I2r   r3   r$   r   r&   r+   s             @@@@r    test_rigidbodyrA      s   &'<=ArrusA		Bc
A	tBq	A	B#q!QA'A66Q;;77a<<<<199ALL))))FGL\\"AI
9;<
9=>
9=>
9=>99;#66R<<77b==<<299\\****aii)))) 	sAJJqqss(R##X%SS01Q2accBH)<rCCx)G#HHHHr"   c                     \        R 4      w  rr#rE\        R4      p\        R4      pVP                  WcVP                  ,          4       \	        R4      p\        VP                  VP                  4      p	W3p
\        RWW
4      pVP                  WaVP                  ,          4       VP                  W4      W7P                  ,          8X  g   Q h\	        R4      pVP                  WaVP                  ,          4       VP                  WVP                  ,          4       VP                  W4      W7P                  ,          W,          V,          VP                  ,          ,
          8X  g   Q hW,          V,          Vn        VP                  W,          V,          8X  g   Q h\        ^VP                  V4      ,          4      V^,          W^,          ,          ,           8X  g   Q hR# )zM v r omega g hr3   r   r&   r   ON)r   r   set_ang_velr7   r   r   r   r6   angular_momentumset_posr8   r9   potential_energyr   kinetic_energy)Mvrr?   ghr3   r   r&   r   Inertia_tupler   rC   s                r    test_rigidbody2rO   @   s]   )*;<A!AsAsAMM!QSS[!c
Aacc133AFM#qQ.AIIaQSSa#uss{222c
AIIaQSSIIaQSSa#uss{QSU133Y'>>>>A***!a&&q))*eQhT.AAAAr"   c                  f   \        R 4      w  rr#\        R4      w  rEp\        R4      p\        R4      pVP                  RRWP                  .4      p	\        R4      p
V
P                  WVP                  ,          W(P                  ,          ,           W8P                  ,          ,           4       V
P                  RWIP                  ,          WYP                  ,          ,           WiP                  ,          ,           4      pVP                  WV	4       \        V	P                  V	P                  4      p\        RWW|V34      p\        R	WVV\        W{P                  V
4      V	4      ,           V
34      pVP                  VP                  8X  g   Q hVP!                  W4      VP!                  W4      8X  g   Q hR
# )zq1:5zp1:4r+   r$   r   axisrC   r&   rb1rb2N)r   r   r   	orientnewr7   r   r6   r8   r9   	locatenewv2pt_theoryr   r   r   pos_fromr   rE   )q1q2q3q4p1p2p3r+   r$   r   rC   r&   r   rR   rS   s                  r    test_rigidbody3r_   T   sF   #F+NBBJBBAsA	C"cc+Ac
AIIaACC"SS&2cc6)*	CCC"SS&2cc612AMM!acc133A
E1F
+C
E1.q**Q-CCQGIC #"5"5555%)=)=a)CCCCr"   c                 l   \        R4      w  r\        R4      p\        R4      pVP                  RRW#P                  .4      pVP                  W2P                  4       VP                  ,          4       \        V^ W^,          ,          ^,          W^,          ,          ^,          4      p\        R4      pVP                  R^V,          VP                  ,          4      pVP                  RWP                  ,          4      p\        R	WWV34      p	VP                  V^ 4       VP                  WcV4       VP                  WcV4       ^V ,          V^,          ,          ^,          VP                  4       ,          VP                  ,          V	P                  Wc4      P                  V4      ,
          ^ 8X  g   Q hR
# )zConsider a pendulum of length OA = 2a, of mass m as a rigid body of
center of mass G (OG = a) which turn around (O,z). The angle between the
reference frame R and the rod is q.  The inertia of the body is I =
(G,0,ma^2/3,ma^2/3). zm, aqRR1AxisrC   r$   GSN)r   r   r   rT   r9   rD   diffr	   r   rU   r7   r   r6   rV   rE   express)
r+   ara   rb   rc   r   rC   r$   re   rf   s
             r    test_pendulum_angular_momentumrj   j   sG    6?DAsAsA	
T6Ass8	,BNN1ffhn%Aqa4x!|QAX\2Ac
A	C1rtt$A	CTT"A#qaQ(AIIaOMM!MM!EAqDL1qvvx'!##-q$,,Q/0456 6 6r"   c            
      V   \        R 4      p \        R4      w  rr4rV\        WW44      p\        R4      pVP	                  RWPP
                  ,          W`P                  ,          ,           4      p	\        RWWV	34      p
\        WV^,          V,          ,
          W5^,          V,          ,
          WAV^,          V^,          ,           ,          ,
          W,          V,          4      p\        V
P                  \        4      '       g   Q hV
P                  Wy38X  g   Q hV
P                  V8X  g   Q hWzn
        V
P                  Wx38X  g   Q hV
P                  V8X  g   Q hWy3V
n        V
P                  Wy38X  g   Q hV
P                  V8X  g   Q h\        Wx4      V
n        V
P                  Wx38X  g   Q hR# )r3   m, I_x, I_y, I_z, a, boprb   N)r   r   r	   r   rU   r7   r8   r   r5   r
   r   )r3   r+   IxIyIzri   r   Iorm   rn   rb   I_checks               r    test_rigidbody_inertiart      sf   sA!":;A21		Bc
A	CSS1ss7*+A#qQQ(Aaa1fqj"Avz/Qa00!%!)=Gaii))))99'''99"""AI99'''AI99r"   c            
         \        R 4      p \        R4      w  rr4rV\        WW44      p\        R4      pVP	                  RWPP
                  ,          W`P                  ,          ,           4      p	\        RWWV34      p
V
P                  V	4      p\        WW^,          ,          ,           W1V^,          ,          ,           WAV^,          V^,          ,           ,          ,           V) V,          V,          R7      pW8X  g   Q h\        R4      pVP                  W P                  ^4       \        V
P                  W4      V,
          P                  V4      4      \        ^^4      8X  g   Q hR# )r3   rl   rm   rn   rb   )ixyr$   N)r   r   r	   r   rU   r7   r8   r   parallel_axisorient_axisr9   r   	to_matrixr   )r3   r+   ro   rp   rq   ri   r   rr   rm   rn   rb   IpIp_expectedr$   s                 r    test_parallel_axisr|      s!   sA!":;A21		Bc
A	CSS1ss7*+A#qQQ(A	
	B!!d(]BQTMAqD1a4K00qb1fqjBKsAMM!SS!	
		,77:<?DQ{K K Kr"   c                     \        R 4      w  rp\        R4      p\        R4      p\        ^ 4      p\	        RWCWV34      p\        4       ;_uu_ 4        VP                  W,          V,          4       RRR4       R#   + '       g   i     R# ; i)zm g hr$   r&   r   N)r   r   r   r   r   r   set_potential_energy)r+   rL   rM   r$   r&   r   r   s          r    $test_deprecated_set_potential_energyr      sj    gGA!sAc
Aq	A#qQA'A		!	!	qs1u% 
"	!	!	!s   A::B	N)sympy.physics.mechanicsr   r   r   r   r   r   r	   r
   r   sympyr   r   r   r   sympy.testing.pytestr   r   r!   rA   rO   r_   rj   rt   r|   r    r"   r    <module>r      sJ    L L K K 9 2 2 ? * IFB(D,6< .K$&r"   