
    h                        S SK Jr  S SKJr  S SKJrJr  S SKJrJ	r	J
r
Jr  S SKJrJrJrJrJrJrJr  S SKJr  \" S5      r\" S5      r\R1                  S	S
\\R2                  /5      rS rS rS rS\S    S-  -  \S   -  \S   -  r\" \\5      r\S   S-  \R@                  -  S\S    -  \RB                  -  -   S\S   -  \S   -  \R2                  -  -   r"\" \"\5      r#S r$S r%S r&S r'g)    )S)Symbol)cossin)ReferenceFrameVectorPointdynamicsymbols)
divergencegradientcurlis_conservativeis_solenoidalscalar_potentialscalar_potential_difference)raisesRqPAxisc                  ~   [        [        S5      [        5      [        S5      :X  d   e[        [        R                  [        5      [        S5      :X  d   e[        S[        S   S-  -  [        R                  -  [        5      [        S5      :X  d   e[        [        S   [        S   -  [        R
                  -  [        5      [        S   [        R                  -  [        S   [        R                  -  -
  :X  d   e[        [        S   [        S   -  [        S   -  [        R                  [        R                  -   [        R
                  -   -  [        5      [        S   * [        S   -  [        S   [        S   -  -   [        R                  -  [        S   [        S   -  [        S   [        S   -  -
  [        R                  -  -   [        S   * [        S   -  [        S   [        S   -  -   [        R
                  -  -   :X  d   e[        S[        S   S-  -  [        R                  -  [        5      S[        S   -  [        R
                  -  :X  d   e[        [        S   S-  [        R                  -  [        R                  -   [        5      S[        S   [        [        5      -  [        S   [        [        5      -  -   -  [        [        5      -  [        R
                  -  :X  d   e[        [        S   [        R                  -  [        5      [        [        5      [        R
                  -  :X  d   eg )Nr            )
r   r   r   xyzr   r   r   r        h/var/www/fran/franai/venv/lib/python3.13/site-packages/sympy/physics/vector/tests/test_fieldfunctions.py	test_curlr"      sK   q	1***Q<6!9$$$!A$'	!##q!VAY...!QqT	!##q!QqT!##X!QSS%8888!QqT	!A$!##acc'!##+.2qTE!A$J1ad"ACC'1Q4!9qtAaDy+@!##*EEqTE!A$J1ad"ACC'(( ( ( !A$'	!##q!QqtVACCZ///!aacc!1%!SVad3q6k)*3q61!##56 6 6!QSS!Aqss
***r    c                     [        [        S5      [        5      [        R                  L d   e[        [        R
                  [        5      [        R                  L d   e[        [        S   S-  [        R
                  -  [        5      S[        S   -  :X  d   e[        [        S   [        S   -  [        S   -  [        R
                  [        R                  -   [        R                  -   -  [        5      [        S   [        S   -  [        S   [        S   -  -   [        S   [        S   -  -   :X  d   e[        S[        S   [        S   -  [        S   -  -  [        R
                  [        R                  -   [        R                  -   -  [        5      S[        S   [        S   -  [        S   S-  -  -  S[        S   [        S   S-  -  [        S   -  -  -
  S[        S   S-  [        S   -  [        S   -  -  -
  :X  d   e[        S   [        R
                  -  [        S   [        R                  -  -   [        S   [        R                  -  -   n [        U [        5      S:X  d   e[        U [        5      R                  5       S:X  d   e[        [        S   [        R
                  -  [        S   [        R
                  -  -   [        5      S[        [        5      -  :X  d   eg )Nr   r   r      )r   r   r   r   Zeror   r   r   r   simplifyr   r   )vs    r!   test_divergencer)      s7   fQi#qvv---acc1'''adAgacck1%1Q4///ad1Q4i!nACC4a8Q4!9qtAaDy 1Q4!9,- - -q!A$qt)AaD.)acc!##gacck:A>qtAaDy1q !AqtAaD!G|AaD'8$99adAgadl1Q4 !! ! ! 	
!QSS1Q48ad133h&Aaq   a$$&!+++ad133h1acc)1-3q6999r    c                     [        S5      n [        S[        5      [        S5      :X  d   e[        [        S   [        5      [        R                  :X  d   e[        [        S   [        S   -  [        S   -  [        5      [        S   [        S   -  [        R                  -  [        S   [        S   -  [        R
                  -  -   [        S   [        S   -  [        R                  -  -   :X  d   e[        S[        S   S-  -  [        5      S[        S   -  [        R                  -  :X  d   e[        U [        [        S   5      -  [        S   -  [        5      U * [        [        S   5      -  [        S   S-  -  [        R                  -  U [        [        S   5      -  [        S   -  [        R
                  -  -   :X  d   e[        [        S   [        S   -  [        5      [        S   * [        [        5      -  [        S   [        [        5      -  -   [        [        5      -  [        S   [        [        5      -  [        S   [        [        5      -  -   [        [        5      -  -
  [        R                  -  [        S   * [        [        5      -  [        S   [        [        5      -  -   [        [        5      -  [        S   [        [        5      -  [        S   [        [        5      -  -   [        [        5      -  -   [        R
                  -  -   :X  d   e[        [        S   [        S   -  [        5      [        S   [        R                  -  [        S   [        R                  -  -   :X  d   eg )Nar   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r+   s    r!   test_gradientr,   -   s   sAAq>VAY&&&AaD!###AaD1IadNA&Q4!9QSS=1Q4!9QSS=(1Q4!9QSS=89 9 9AadAgIq!QqtVACCZ///Ac!A$iK!$a(3s1Q4y=1q $qQqT{1Q4'7';;< < <AaD1Iq!dU3q6\AaDQK'Q/1Q4A;1c!f3LcRSf2TTVWVYVYYdU3q6\AaDQK'Q/1Q4A;1c!f3LcRSf2TTVWVYVYYZZ Z Z AaD1Iq!QqT!##X!QSS%8888r    r   r   r%      c                     [        S5      SL d   e[        [        R                  5      SL d   e[        S[        R                  -  S[        R                  -  -   S[        R                  -  -   5      SL d   e[        [        S   [        S   -  [        R                  -  [        S   [        S   -  [        R                  -  -   [        S   [        S   -  [        R                  -  -   5      SL d   e[        [        S   [        R                  -  5      SL d   e[        [
        5      SL d   e[        [        5      SL d   e[        S[        S   -  [        S   -  [        S   -  [        R                  -  S[        S   S-  -  [        S   -  [        R                  -  -   5      SL d   e[        [        S   [        R                  -  [        S   [        R                  -  -   5      SL d   eg )Nr   Tr   r%   r   r   F)r   r   r   r   r   
grad_field
curl_fieldr   r   r    r!   test_conservativer1   B   s   1%%%1334'''1qss7QW,q133w674???1Q4!9QSS=1Q4!9QSS=81Q4!9QSS=HI  1Q4!##:&%///:&$...:&%///1QqT6!A$;qt+ACC/!AaD!G)AaD.2DDE ! ! !1Q48ad133h./4777r    c                  L   [        S5      SL d   e[        [        R                  5      SL d   e[        S[        R                  -  S[        R                  -  -   S[        R                  -  -   5      SL d   e[        [        S   [        S   -  [        R                  -  [        S   [        S   -  [        R                  -  -   [        S   [        S   -  [        R                  -  -   5      SL d   e[        [        S   [        R                  -  5      SL d   e[        [
        5      SL d   e[        [        5      SL d   e[        S[        S   -  S-   [        R                  -  5      SL d   e[        [        [        5      [        R                  -  [        [        5      [        R                  -  -   [        [        5      [        R                  -  -   5      SL d   e[        [        S   [        R                  -  [        S   [        R                  -  -   5      SL d   eg )	Nr   Tr   r%   r   r   Fr   )r   r   r   r   r   r/   r0   r   r   r   r   r   r    r!   test_solenoidalr3   P   s   t###%%%QSS1qss7*QW45===1ad1331ad13361ad133FG  1$---$---$,,,"QqT'A+qss*+t333Qc!fQSSj03q6!##:=>$FFF1accAaDH,-555r    c                     [        S[        5      S:X  d   e[        [        R                  [        5      [        S   :X  d   e[        [        R                  [        5      [        S   :X  d   e[        [        R                  [        5      [        S   :X  d   e[        [        S   [        S   -  [        R                  -  [        S   [        S   -  [        R                  -  -   [        S   [        S   -  [        R                  -  -   [        5      [        S   [        S   -  [        S   -  :X  d   e[        [
        [        5      [        :X  d   e[        [        S   [        R                  -  [        S   [        R                  -  -   [        5      [        S   [        S   -  [        [        5      -  [        S   [        S   -  [        [        5      -  -   :X  d   e[        [        S   [        R                  -  [        S   [        R                  -  -   [        5      [        S   [        S   -  :X  d   e[        [        S 5        g )Nr   r   r   c                  R    [        [        S   [        R                  -  [        5      $ )Nr   )r   r   r   r   r    r!   <lambda>'test_scalar_potential.<locals>.<lambda>i   s    /!qss
A>r    )r   r   r   r   r   r/   scalar_fieldr   r   r   r   r   
ValueErrorr   r    r!   test_scalar_potentialr:   ^   s   Aq!Q&&&ACC#qt+++ACC#qt+++ACC#qt+++AaD1IaccMAaD1IaccM9aD1IaccM*+,.121ad1Q4@ @ @J*l:::AaDHqtACCx/3Q4!9SVad1Q4iA../ / /AaDHqtACCx/3qtAaDy@@@
:>?r    c                  R   [        S5      n U R                  SS[        R                  -  S[        R                  -  -   S[        R
                  -  -   5      nU R                  SS[        R                  -  S[        R                  -  -   S	[        R
                  -  -   5      nU R                  S
[        S   [        R                  -  [        S   [        R                  -  -   [        S   [        R
                  -  -   5      nU R                  S[        S   [        R                  -  [        S   [        R                  -  -   [        S   [        R
                  -  -   5      n[        [        R                  [        XU 5      S:X  d   e[        [        [        U X05      [        :X  d   e[        [        [        U X05      [        :X  d   e[        [        [        XU 5      S:X  d   e[        [        S   [        S   -  [        R                  -  [        S   [        S   -  [        R                  -  -   [        S   [        S   -  [        R
                  -  -   [        UX05      [        S   [        S   -  [        S   -  S	-
  :X  d   eS[        S   -  [        S   [        [        5      -  [        S   [        [        5      -  -   -  [        S   [        [        5      -  [        S   [        [        5      -  -
  S-  -  n[        [        [        U UU 5      R                  5       U:X  d   eg )NOP1r   r   r%   P2r   r-      RPr   PPi  )r	   	locatenewr   r   r   r   r   r   r   r&   r8   r/   r   r   r   r'   )originpoint1point2genericpointRgenericpointPpotential_diff_Ps         r!    test_scalar_potential_differencerI   l   s   3ZFdAaccEAaccEMAaccE$9:FdAaccEAaccEMAaccE$9:F$$T1Q48ad133h+>1acc+IJM$$T1Q48ad133h+>1acc+IJM&qvvq&'-/234 4 4&|Q'4>'34 4 4 'z1f'4>'34 4 4 'z1f'-/256 6 6&qtAaDy}qtAaDy}'D'(tAaDy}(567'4> ()tAaDy1~'9: : : 1vqtCF{QqT#a&[89!SVad3q6k1A56&z1f'4'-//7xz'78 8 8r    N)(sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.elementary.trigonometricr   r   sympy.physics.vectorr   r   r	   r
   #sympy.physics.vector.fieldfunctionsr   r   r   r   r   r   r   sympy.testing.pytestr   r   r   	orientnewr   r   r"   r)   r,   r8   r/   r   r   vector_fieldr0   r1   r3   r:   rI   r   r    r!   <module>rR      s   " $ ? 3 3 3 (33KKVaX&+:9 1qy1~ad"lA&
tQwqss{QqtVACCZ'!AaD&1+acc/9,"
86@8r    