Ë
    7^(h,  ã                   ó˜   — d dl mZmZmZmZ d dl mZmZmZmZ d dl m	Z	 d dl
mZmZmZmZ d dlmZmZ d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)é    )ÚPointÚReferenceFrameÚDyadicÚ	RigidBody)ÚdynamicsymbolsÚouterÚinertiaÚInertia)Úinertia_of_point_mass)ÚexpandÚzerosÚsimplifyÚsymbols)ÚraisesÚwarns_deprecated_sympyc                  óÊ  — t        d«      } t        | j                  gt        d«      ¢­Ž }| j                  dk(  sJ ‚| j
                  t        d«      k(  sJ ‚| j                  j                  dk(  sJ ‚| j                  || j                  fk(  sJ ‚| j                  |k(  sJ ‚| j                  j                  dk(  sJ ‚| j                  «       dk(  sJ ‚| j                  «       dk(  sJ ‚y )NÚ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)))
r   r	   Úframer   ÚnameÚmassÚ
masscenterÚcentral_inertiaÚ__str__Ú__repr__)ÚbÚIs     új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/mechanics/tests/test_rigidbody.pyÚtest_rigidbody_defaultr!      sÙ   € ä�#‹€AÜ�—‘ÐIœ'Ð"GÓHÒI€AØ�6‰6�SŠ=Ðˆ=Ø�6‰6”W˜XÓ&Ò&Ð&Ð&Ø�<‰<×Ñ Ò.Ð.Ð.Ø�9‰9˜˜AŸL™LÐ)Ò)Ð)Ð)Ø×Ñ Ò!Ð!Ð!Ø�7‰7�<‰<˜9Ò$Ð$Ð$Ø�9‰9‹;˜#ÒÐÐØ�:‰:‹<ð	ò ð  ñ  ó    c                  ó”  ‡
‡‡‡— t        d«      \  Š} }}}}t        d«      Š
t        d«      }t        d«      Št        d«      }t        d«      Št        d«      }t	        d‰‰
‰‰‰f«      }|j
                  ‰k(  sJ ‚|j                  ‰
k(  sJ ‚|j                  ‰k(  sJ ‚|j                  ‰|j                  fk(  sJ ‚| |_        ||_        ||_        ||j                  f|_        t        t        ˆ
ˆˆˆfd„«       t        t        ˆˆˆfd	„«       t        t        ˆ
ˆˆfd
„«       t        t        ˆ
ˆˆˆfd„«       |j                  «       dk(  sJ ‚|j
                  | k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  ||j                  fk(  sJ ‚t        |j                  t        «      sJ ‚t        d«      }	|j                  |	||	j                  z  ||	j                   z  z   ||	j"                  z  z   «       |j%                  |	«      | ||	j                  z  ||	j                   z  z   ||	j"                  z  z   z  k(  sJ ‚y )Nzm m2 v1 v2 v3 omegaÚAÚA2ÚPÚP2r   r   c                  ó&   •— t        ‰‰‰ ‰‰‰f«      S )N©r   ©r$   r   r&   Úms   €€€€r    ú<lambda>z test_rigidbody.<locals>.<lambda>/   s   ø€ œi¨¨1¨a°°Q¸°FÓ;€ r"   c                  ó&   •— t        d‰‰‰‰ ‰f«      S ©Nr   r)   )r   r&   r+   s   €€€r    r,   z test_rigidbody.<locals>.<lambda>0   ó   ø€ œi¨¨Q°°1°q¸!°fÓ=€ r"   c                  ó&   •— t        d‰‰ ‰‰‰f«      S r.   r)   )r$   r&   r+   s   €€€r    r,   z test_rigidbody.<locals>.<lambda>1   r/   r"   c                  ó&   •— t        d‰‰ ‰‰‰f«      S r.   r)   r*   s   €€€€r    r,   z test_rigidbody.<locals>.<lambda>2   r/   r"   ÚN)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   r2   r$   r   r&   r+   s             @@@@r    Útest_rigidbodyr@      sø  û€ Ü&Ð'<Ó=Ñ€A€rˆ2ˆr�2�uÜ�sÓ€AÜ	˜Ó	€BÜˆc‹
€AÜ	ˆt‹€BÜˆq‹	€AÜ	�‹€BÜ�#�q˜!˜Q  A Ó'€AØ�6‰6�QŠ;Ðˆ;Ø�7‰7�aŠ<Ðˆ<Ø�<‰<˜1ÒÐÐØ�9‰9˜˜AŸL™LÐ)Ò)Ð)Ð)à€A„FØ€A„GØ€A„LØ�Q—\‘\Ð"€A„IÜ
Œ9Ö;Ô<Ü
Œ9Õ=Ô>Ü
Œ9Õ=Ô>Ü
Œ9Ö=Ô>Ø�9‰9‹;˜#ÒÐÐØ�6‰6�RŠ<Ðˆ<Ø�7‰7�bŠ=Ðˆ=Ø�<‰<˜2ÒÐÐØ�9‰9˜˜QŸ\™\Ð*Ò*Ð*Ð*Ü�a—i‘i¤Ô)Ð)Ð)ô 	�sÓ€AØ‡J�Jˆq�"�q—s‘s‘(˜R !§#¡#™XÑ%¨¨Q¯S©S©Ñ0Ô1Ø×Ñ˜QÓ 2¨¨a¯c©c©°B¸¿¹±HÑ)<¸rÀAÇCÁC¹xÑ)GÑ#HÒHÐHÑHr"   c                  ó>  — t        d«      \  } }}}}}t        d«      }t        d«      }|j                  |||j                  z  «       t	        d«      }t        |j                  |j                  «      }	|	|f}
t        d||| |
«      }|j                  |||j                  z  «       |j                  ||«      ||j                  z  k(  sJ ‚t	        d«      }|j                  |||j                  z  «       |j                  |||j                  z  «       |j                  ||«      ||j                  z  | |z  |z  |j                  z  z
  k(  sJ ‚| |z  |z  |_        |j                  | |z  |z  k(  sJ ‚t        d|j                  |«      z  «      |dz  | |dz  z  z   k(  sJ ‚y )NzM v r omega g hr2   r   r&   r   ÚOé   )r   r   Úset_ang_velr6   r   r   r   r5   Úangular_momentumÚset_posr7   r8   Úpotential_energyr   Úkinetic_energy)ÚMÚvÚrr>   ÚgÚhr2   r   r&   r   ÚInertia_tupler   rB   s                r    Útest_rigidbody2rO   @   s�  € Ü)Ð*;Ó<Ñ€A€qˆ!ˆU�A�qÜ�sÓ€AÜ�sÓ€AØ‡M�M�!�U˜QŸS™S‘[Ô!Üˆc‹
€AÜˆa�c‰c�1—3‘3‹€AØ˜�F€MÜ�#�q˜!˜Q Ó.€AØ‡I�Iˆa��Q—S‘S‘ÔØ×Ñ˜a Ó# u¨q¯s©s¡{Ò2Ð2Ð2Üˆc‹
€AØ‡I�Iˆa��Q—S‘S‘ÔØ‡I�Iˆa��Q—S‘S‘ÔØ×Ñ˜a Ó# u¨q¯s©s¡{°Q°q±S¸±U¸1¿3¹3±YÑ'>Ò>Ð>Ð>Ø˜Q™ ™€AÔØ×Ñ  Q¡¨¡Ò*Ð*Ð*Ü�!�a×&Ñ& qÓ)Ñ)Ó*¨e°Q©h¸¸QÀ¹T¹Ñ.AÒAÐAÑAr"   c                  ó&  — t        d«      \  } }}}t        d«      \  }}}t        d«      }t        d«      }|j                  dd| |j                  g«      }	t        d«      }
|
j                  |||j                  z  ||j                  z  z   ||j                  z  z   «       |
j                  d||	j                  z  ||	j                  z  z   ||	j                  z  z   «      }|j                  |
||	«       t        |	j                  |	j                  «      }t        d	||	|||f«      }t        d
||	||t        ||j                  |
«      |	«      z   |
f«      }|j                  |j                  k(  sJ ‚|j!                  |
|«      |j!                  |
|«      k(  sJ ‚y )Nzq1:5zp1:4r+   r$   r   ÚaxisrB   r&   Úrb1Úrb2)r   r   r   Ú	orientnewr6   r   r5   r7   r8   Ú	locatenewÚv2pt_theoryr   r   r   Úpos_fromr   rE   )Úq1Úq2Úq3Úq4Úp1Úp2Úp3r+   r$   r   rB   r&   r   rR   rS   s                  r    Útest_rigidbody3r_   T   sh  € Ü# FÓ+�N€BˆˆB�Ü˜“�J€BˆˆBÜ�‹€Aä�sÓ€AØ	�‰�C˜ " a§c¡c Ó+€AÜˆc‹
€AØ‡I�Iˆa��A—C‘C‘˜"˜QŸS™S™&‘ 2 a§c¡c¡6Ñ)Ô*Ø	�‰�C˜˜AŸC™C™ " Q§S¡S¡&™¨2¨a¯c©c©6Ñ1Ó2€AØ‡M�M�!�Q˜ÔÜˆa�c‰c�1—3‘3‹€Aä
�E˜1˜a  Q¨ FÓ
+€Cä
�E˜1˜a ØÔ.¨q°!·*±*¸Q³-ÀÓCÑCÀQÐGóI€Cð ×Ñ #×"5Ñ"5Ò5Ð5Ð5Ø×Ñ  1Ó%¨×)=Ñ)=¸aÀÓ)CÒCÐCÑCr"   c                  óô  — t        d«      \  } }t        d«      }t        d«      }|j                  dd||j                  g«      }|j                  ||j                  «       |j                  z  «       t        |d| |dz  z  dz  | |dz  z  dz  «      }t        d	«      }|j                  d
d|z  |j                  z  «      }|j                  d||j                  z  «      }t        d||| ||f«      }	|j                  |d«       |j                  |||«       |j                  |||«       d| z  |dz  z  dz  |j                  «       z  |j                  z  |	j                  ||«      j                  |«      z
  dk(  sJ ‚y)zòConsider 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ÚAxisr   rC   é   rB   r$   ÚGÚSé   N)r   r   r   rT   r8   rD   Údiffr	   r   rU   r6   r   r5   rV   rE   Úexpress)
r+   Úara   rb   rc   r   rB   r$   rf   rg   s
             r    Útest_pendulum_angular_momentumrl   j   s]  € ô �6‹?�D€A€qÜ�sÓ€Aä�sÓ€AØ	
�‰�T˜6 A q§s¡s 8Ó	,€BØ‡N�N�1�a—f‘f“h §¡‘nÔ%ä��A�q˜1˜a™4‘x !‘| Q¨¨A©¡X°¡\Ó2€Aäˆc‹
€Aà	�‰�C˜˜1™˜rŸt™t™Ó$€AØ	�‰�C˜˜RŸT™T™Ó"€Aä�#�q˜"˜a ! Q Ó(€Aà‡I�Iˆa�„OØ‡M�M�!�Q˜ÔØ‡M�M�!�Q˜Ôà�‰E�A�q‘D‰L˜1Ñ˜qŸv™v›xÑ'¨!¯#©#Ñ-Ø×Ñ˜q !Ó$×,Ñ,¨QÓ/ñ0Ø45ò6ð 6ñ 6r"   c            
      óÔ  — t        d«      } t        d«      \  }}}}}}t        | |||«      }t        d«      }|j	                  d|| j
                  z  || j                  z  z   «      }	t        d|| |||	f«      }
t        | ||dz  |z  z
  ||dz  |z  z
  |||dz  |dz  z   z  z
  ||z  |z  «      }t        |
j                  t        «      sJ ‚|
j                  ||	fk(  sJ ‚|
j                  |k(  sJ ‚||
_
        |
j                  ||fk(  sJ ‚|
j                  |k(  sJ ‚||	f|
_        |
j                  ||	fk(  sJ ‚|
j                  |k(  sJ ‚t        ||«      |
_        |
j                  ||fk(  sJ ‚y )Nr2   úm, I_x, I_y, I_z, a, bÚoÚprb   rC   )r   r   r	   r   rU   r6   r7   r   r4   r
   r   )r2   r+   ÚIxÚIyÚIzrk   r   ÚIoro   rp   rb   ÚI_checks               r    Útest_rigidbody_inertiarv   ˆ   s‹  € Ü�sÓ€AÜ!Ð":Ó;Ñ€A€rˆ2ˆr�1�aÜ	��B˜˜BÓ	€BÜˆc‹
€AØ	�‰�C˜˜QŸS™S™ 1 q§s¡s¡7Ñ*Ó+€AÜ�#�q˜!˜Q  Q Ó(€AÜ�a˜˜a 1™f q™j™¨"¨q°A©v¸©z©/Ø˜1  Q¡¨¨a©¡Ñ0Ñ0°!°a±%¸!±)ó=€Gä�a—i‘i¤Ô)Ð)Ð)Ø�9‰9˜˜Q˜ÒÐÐØ×Ñ Ò'Ð'Ð'Ø€AÔØ�9‰9˜˜Q˜ÒÐÐØ×Ñ Ò"Ð"Ð"Ø�Q�€A„IØ�9‰9˜˜Q˜ÒÐÐØ×Ñ Ò'Ð'Ð'ä˜˜A“€A„IØ�9‰9˜˜Q˜ÒÐÑr"   c            
      óX  — t        d«      } t        d«      \  }}}}}}t        | |||«      }t        d«      }|j	                  d|| j
                  z  || j                  z  z   «      }	t        d|| |||f«      }
|
j                  |	«      }t        | |||dz  z  z   |||dz  z  z   |||dz  |dz  z   z  z   | |z  |z  ¬«      }||k(  sJ ‚t        d«      }|j                  | | j                  d	«       t        |
j                  |	|«      |z
  j                  |«      «      t        d
d
«      k(  sJ ‚y )Nr2   rn   ro   rp   rb   rC   )Úixyr$   é   re   )r   r   r	   r   rU   r6   r7   r   Úparallel_axisÚorient_axisr8   r   Ú	to_matrixr   )r2   r+   rq   rr   rs   rk   r   rt   ro   rp   rb   ÚIpÚIp_expectedr$   s                 r    Útest_parallel_axisr   Ÿ   sA  € Ü�sÓ€AÜ!Ð":Ó;Ñ€A€rˆ2ˆr�1�aÜ	��B˜˜BÓ	€BÜˆc‹
€AØ	�‰�C˜˜QŸS™S™ 1 q§s¡s¡7Ñ*Ó+€AÜ�#�q˜!˜Q  Q Ó(€AØ	
�‰˜Ó	€BÜ˜!˜R ! a¨¡d¡(™]¨B°°Q¸±T±©MØ˜q A q¡D¨1¨a©4¡KÑ0Ñ0°q°b¸1±f¸q±jôB€Kà�ÒÐÐä�sÓ€AØ‡M�M�!�Q—S‘S˜!ÔÜØ	
�‰˜˜AÓ	 Ñ	,×7Ñ7¸Ó:ó<Ü?DÀQÈ»{òKð Kñ Kr"   c                  óò   — t        d«      \  } }}t        d«      }t        d«      }t        d«      }t	        d||| ||f«      }t        «       5  |j                  | |z  |z  «       d d d «       y # 1 sw Y   y xY w)Nzm g hr$   r&   r   r   )r   r   r   r   r   r   Úset_potential_energy)r+   rL   rM   r$   r&   r   r   s          r    Ú$test_deprecated_set_potential_energyr‚   ±   su   € Ü�gÓ�G€A€qˆ!Ü�sÓ€AÜˆc‹
€AÜˆq‹	€AÜ�#�q˜!˜Q  A Ó'€AÜ	Ó	!ñ &Ø	×Ñ˜q ™s 1™uÔ%÷&÷ &ñ &ús   ÁA-Á-A6N)Úsympy.physics.mechanicsr   r   r   r   r   r   r	   r
   r   Úsympyr   r   r   r   Úsympy.testing.pytestr   r   r!   r@   rO   r_   rl   rv   r   r‚   © r"   r    ú<module>r‡      sJ   ðß LÓ Lß KÓ KÝ 9ß 2Ó 2ß ?ò ò* IòFBò(Dò,6ò< ò.Kó$&r"   