
    wg)$                         d dl mZmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZ d dlmZ  ed	      \  ZZZZZd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)y)    )
DerivativeFunction)Eq)Symbolsymbols)explog)cossin)S)pde_separatepde_separate_addpde_separate_mulpdsolveclassify_pdecheckpdesol)raisesz	a b c x yc            
         t        d      \  } }}}t        t        d      \  }}}}}}	t        t	         |	| |      |       t	         |	| |      |      t         |	| |            z        }
t        |
 |	| |       ||        ||      g      }|t	         ||       |       t         ||              z  t	         ||      |      t         ||            z  gk(  sJ y )Nx,y,z,tFTXYZu)r   mapr   r   Dr   r   )xyztFTXYZueqress               a/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/solvers/tests/test_pde.pytest_pde_separate_addr&      s    #JAq!Q8X.Aq!Q1	Aa1gqM1Qq!Wa=Qq!W5	6B
2qAw1qt
5C1QqT1:c1Q4%j(!AaD!*S1Y*>????    c            
        	
 t        d      \  
} }t        t        d      \  }}}	t        t	         	
      
      t	         	
            t         	
            z        t        t        	
fd       y )Nr   r   c                  J    t                              gd      S )Ndiv)r   )r   r   r#   r   r"   r   s   r%   <lambda>z#test_pde_separate.<locals>.<lambda>   s$    |B!Q!A$!uM r'   )r   r   r   r   r   r   r   
ValueError)r   r   r   r    r!   r   r   r#   r   r"   r   s        @@@@@@r%   test_pde_separater-      so    #JAq!Q8X.Aq!Q1	Aa1gqM1Qq!Wa=Qq!W5	6B
:MMNr'   c                  	  	
 t        d      \  t        dd      } t        d      }t        t        d      \  	}}
}t        d      \  }}t	        t         	            t         	            z   t         	            z   d      t        t        	
fd	       t        t        	
fd
       t        t        	
fd       t         	                    g      t                            z  t                             z  t                            z  z
  gk(  sJ t         	       
              |      g      t         
             
      z  t         |              |      z  t                            z  z
  gk(  sJ t	        t                     | dz  t                     z        }t        |        
       |      g      }|t         
             
      z  t         |            | dz   |      z  z  gk(  sJ t	        d|z  t         |||      |      z  t         |||      |d      z   d|dz  z  t         |||      |d      z  z   t         |||      d      z   d      t         |||       |       ||      g      }|t         |             |      z  t         ||      ||        ||      z  t         ||      |      | ||      z  z  z
  t         ||      ||      |dz   ||      z  z  z
  gk(  sJ t	        |d   |       t         ||       ||       ||      g      }|t         ||      ||       ||      z  | t         ||      |      z   ||      z  |dz  t         ||      ||      z   ||      z  z
  | |dz  z  z
  gk(  sJ t         ||       ||       ||      g      }||t         ||      |      z   ||      z  |dz  t         ||      ||      z   ||      z  z   | |dz  z  z   t         ||      ||        ||      z  gk(  sJ y )Nr   CT)realPhiFRTXYZuz	r,theta,zr   c            	      L    t                              g      S Nr   )r   r   r#   r"   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>+   '    ,R1aadAaG_M r'   c                  J    t                              g      S r4   r5   )r   r   r    r#   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>-   s%    /AaAJ1qtM r'   c            	      L    t                              g      S r4   r5   )r   r   r    r#   r   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>0   r6   r'         )	r   r   r   r   r   r   r   r,   r   )cr1   Rr   r!   rthetawaver$   r   r   r    r#   r   r"   r   r   r   s            @@@@@@@@@r%   test_pde_separate_mulr@      s   #JAq!QsA
5/Ch	2Aq!Q1a+&KAua 
Aa1aj!q1aQ//!AaAJ2BBA	FB MMO :MMN
MMO B!Q
QqT1Q7O<	
1Q4AaD1Qq!Wa=.1a01Qq!Wa=1a3HHIJ J JB!Q
QqT1Q41,>?	
1Q4AaD1QqT1:+ad*QqtQZ!_<=> > > a!QA1QqAw1%5 56D
41a1Q41,
7C1QqT1a=1%q1q!}ad1Q4i'@AAAA 
AaC!C5!$a((1SE1-=q!+DDadFQs1eQ'22356s1eQ7GA5NOPQ
SB 2s1eQ/!A$%1D
EC1QqT1a=1%q{Aq!!!E1+-	!E1+q1Qua[=)*	!E1+ue$ad1UA;&6789 9 9 9
 
CFAB
2q{QuXqt,<
=C1QuXue,QuX5Bq1qzM!A$Aa!am!3AaD!881QT6AC C C C 2q{QqT1U8,<
=C1QqtQZ<!$q!tAadAqM'9!A$'>>1a4Gqx&&qx/1 1 1 1r'   c                  v   t        d      \  } }t        dt              }t        dt              \  }} || |      }|j                  | d      |j                  |d      z
  }t        || ||        ||      g      }|t	         ||       | |        ||       z  t	         ||      ||       ||      z  gk(  sJ y )Nzx tf)clszX Tr9   )r   r   diffr   r   )r   r   rB   r   r   r"   r#   r$   s           r%   test_issue_11726rE   Q   s    5>DAq	(	#A5h'DAq	!QA	
1q!	$B
r1qtQqTl
+C1QqT1a=1%a!amAaD&89999r'   c                     t        d      } t         | t        t              z  t         | t        t              j                  t              z  z   t         | t        t              j                  t              z  z   }d | t        t              z  d | t        t              j                  t              z  z    | t        t              j                  t              z   }t         | t        t              z  t         | t        t              j                  t              z  z   d | t        t              j                  t              z  z   }t         | t        t              z   | t        t              j                  t              z   d | t        t              j                  t              z  z   }t        dz   | t        t              z  t         | t        t              j                  t              z  z   t        t        z   | t        t              j                  t              z  z   }t        t        dz  z   | t        t              z  t         | t        t              j                  t              z  z    | t        t              j                  t              z   }|||fD ]  }t        |      dk(  rJ  |||fD ]  }t        |      dk(  rJ  y )NrB      r9   %1st_linear_constant_coeff_homogeneous)1st_linear_variable_coeff)r   ar   r   brD   r;   r   )rB   eq1eq2eq3eq4eq5eq6r#   s           r%   test_pde_classifyrS   \   s   A
AaF(Qq1v{{1~%
%!Aa&++a.(8
8C
AaF(Qq1v{{1~%
%!AA
6C
AaF(Qq1v{{1~%
%!Aa&++a.(8
8C
AaF(QqV[[^
#a!AA&6
6C
Q$q1v+!Aa&++a.(
(1Q3q1v{{1~+=
=C
AqD&1Q-!AaFKKN*
*QqV[[^
;CCo NB#MMMMNCo BB#AAAABr'   c                    	
 t        t        ddg      \  } }t         | t        t              z  t
         | t        t              j                  t              z  z   t         | t        t              j                  t              z  z   }d | t        t              z  d | t        t              j                  t              z  z    | t        t              j                  t              z   }t         | t        t              z  t
         | t        t              j                  t              z  z   d | t        t              j                  t              z  z   }|||fD ]  }t        |t        |            d   rJ  t         | t        t              z   | t        t              j                  t              z   d | t        t              j                  t              z  z   	d | t        t              z  d | t        t              j                  t              z  z   d | t        t              j                  t              z  z   } | t        t              d | t        t              j                  t              z  z   d | t        t              j                  t              z  z   }t        	t        |      t        |      g      dt        dz
   |dt        z  t        z
        z  t        t         t        d      z  dt        z  t        d      z  z
        z  fdt        dz
   |dt        z  t        z
        z  t        t         t        d	      z  dt        z  t        d	      z  z
        z  fgk(  sJ 	||fD ]  }t        |t        |            d   rJ  t        	      }t        |j                  |j                  z
  d      
t        t         	
fd
       y )NrB   r   rG   r9   r   r:   F   
   c                       t         d      S )NF)solve_for_func)r   )rP   sol4s   r%   r+   z"test_checkpdesol.<locals>.<lambda>|   s    Ce4 r'   )r   r   rK   r   r   rL   rD   r;   r   r   r   r   r   lhsrhsr   NotImplementedError)rB   r   rM   rN   rO   r#   rQ   rR   solrP   rY   s            @@r%   test_checkpdesolr^   k   s   x#s$DAq
AaF(Qq1v{{1~%
%!Aa&++a.(8
8C
AaF(Qq1v{{1~%
%!AA
6C
AaF(Qq1v{{1~%
%!Aa&++a.(8
8CCo /2wr{+A.../
AaF(QqV[[^
#a!AA&6
6C
AaF(Qq1v{{1~%
%!Aa&++a.(8
8C
Aa&1QqV[[^#
#a!AA&6
6CsWS\73<89	Q!A#'
"3r!A$w1QqT'9#::;
!a%1Q37#C1R51Q3qu9(<$==	>>@ @ @ @ Co /2wr{+A.../
#,Ccgg#D
 !5 6r'   c            
          t        t        g d      \  } }}} | t        t               | t        t              j	                  t              z    | t        t              j	                  t              z   }t        |      t         | t        t               |t        t        z
        t        t         dz  t        dz  z
        z        k(  sJ t        ||      t         | t        t               |t        t        z
        t        t         dz  t        dz  z
        z        k(  sJ t        ||      t         | t        t               |t        t        z
        t        t         dz  t        dz  z
        z        k(  sJ y )N)rB   r   GHr9   )solvefun)r   r   r   r   rD   r   r   r   )rB   r   r`   ra   rM   s        r%   test_solvefunrc      s   X34JAq!Q
Aa&1Qq6;;q>
!AaFKKN
2C3<2a1gqQxQBqD1Q3J'?@@@@3#r!Aq'1QU8C1qs
O3K'LLLL3#r!Aq'1QU8C1qs
O3K'LLLLr'   c                  >   t        t        ddg      \  } } | t        t              }d|z  |j	                  t              z   |j	                  t              z   }t        |      dk(  sJ t        |      }|t        | |t        t        z
        t        t         t        z
        z        k(  sJ t        ||      d   sJ dd|j	                  t              z  |z  z   d|j	                  t              z  |z  z   }t        |      dk(  sJ t        |      }|t        | |dt        z  dt        z  z
        t        t        d       t        z  d	z  t        d
      t        z  d	z  z
        z        k(  sJ t        ||      d   sJ |d|j	                  t              z  z   d|j	                  t              z  z   }t        |      dk(  sJ t        |      }|t        | |dt        z  dt        z  z
        t        dt        z  t        d      z  dt        z  t        d      z  z
        z        k(  sJ t        ||      d   sJ t        |z  t        |j	                  t              z  z   t        |j	                  t              z  z   }t        |      }t        ||      d   sJ y )NrB   r   r9   rH   r      rG                  iU   )r   r   r   r   rD   r   r   r   r   r   r   rK   rL   r;   rB   r   r"   r#   r]   s        r%   .test_pde_1st_linear_constant_coeff_homogeneousrm      s>   x#s$DAq	!QA	
1qvvay166!9	$BIIII
"+C"Q!a%aR!V,----r3"""	
aq	k!m	!&&)A	.BIIII
"+C"Q!A#!)S!B%"qtAvby)@%AABBBBr3"""	
aq	k	aq	k	*BIIII
"+C"Q!A#!)SAaeac!B%i)?%@@AAAAr3"""	
1q{	Qqvvay[	(B
"+Cr3"""r'   c                     t        t        ddg      \  } } | t        t              }d|j	                  t              z  d|j	                  t              z  z   d|z  z   t        t        dt        z  z         z
  }t        |      }|t         | t        t               |dt        z  dt        z  z         t        t        dz        z  t        t        dt        z  z         dz  z   t        t               z        k(  sJ t        |      d	k(  sJ t        ||      d
   sJ |j	                  t              |z  |j	                  t              |z  z   dz   t        t        t        z         |z  z
  }t        |      }|t         | t        t               |t        t        z
        t        t         dz  t        dz  z
        z  t        t        t        z         dz  z         k(  sJ t        |      d	k(  sJ t        ||      d
   sJ d|z  |j	                  t               z   d|j	                  t              z  z   t        t              z   }t        |      }|t         | t        t               |dt        z  t        z         t        t        dz  dt        z  dz  z
        z  dt        t              z  dz  z
  t        t              dz  z
        k(  sJ t        |      d	k(  sJ t        ||      d
   sJ ||j	                  t              z   |j	                  t              z   t        t        z  z   }t        |      }|j                         t         | t        t              t        t        z   t        t        z
  dz  dz  z   t        t        z   dz  dz  z
   |t        t        z
        t        t         dz  t        dz  z
        z  z   dz
        j                         k(  sJ t        |      d	k(  sJ t        ||      d
   sJ ||j	                  t              z   |j	                  t              z   t        t              z   }t        |      d	k(  sJ y )NrB   r   re   rU   rG   r9      )1st_linear_constant_coeff"1st_linear_constant_coeff_Integralr   r:   )r   r   r   r   rD   r   r   r   r   r   r   r
   expandr	   rl   s        r%   "test_pde_1st_linear_constant_coeffrt      s   x#s$DAq	!AA	AFF1I!&&)	#ac	)CAaCL	8B
"+C"QqVqsQqSy\#ac(SQqS\"_,c1"g57 7 7 7  * * * *r3"""
&&)A+!&&)A+	&	*c!a%jl	;B
"+C"Qq!WaAhsA2a4!A#:6QUAEFFFF  * * * *r3"""	
1q	z	AaffQiK	'#a&	0B
"+C"Qq!W	
1Q37C!ac!e$	$qQxz	1CF1H	<> > > >  * * * *r3"""	
QVVAY	"QqS	(B
"+C::<2a1g	AQ
1Az!|+aAhsA2a4!A#:.FFJLLRFHU U U  * * * *r3"""	
QVVAY	"SV	+B  * * * *r'   c                     t        t        ddg      \  } } | t        t              }||j	                  t              z   |j	                  t              z   t        dz  t        z  z   }t        |d      }g d}t        |j                               |k(  sJ |d   dk(  sJ |d	   d
k(  sJ |d
   j                         t         | t        t              t        dz   t        z  t        dz  z   dt        z  t        z  z   dt        z  z
  dt        z  z
   |t        t        z
        t        t         dz  t        dz  z
        z  z   dz         j                         k(  sJ y )NrB   r   r9   allhint)rq   rr   defaultorderrz   r:   ry   rq   re   ri   )r   r   r   r   rD   r   sortedkeysrs   r   r   )rB   r   r"   r#   r]   r|   s         r%   test_pdsolve_allr}      s6   x#s$DAq	!AA	
QVVAY	"QT!V	+B
"U
#CBD#((*%%%w<1y>8888*+2241Q7	
Aa!Q$1Q1$qs*Qq1uXc1"Q$1*o-EEI9KKQ68T T Tr'   c                  j   t        t        ddg      \  } } | t        t              }t        |j	                  t              z  t        |j	                  t              z  z
  t        dz  |z  z   t        dz  z
  }t        |d      }|t        | |t        t        z        t        t        dz  dz        z  dz         k(  sJ t        ||      d   sJ t        dz  |z  t        |j	                  t              z  z   t        t        z  |j	                  t              z  z   }t        |d      }|t        | |t        t        t               z        t        t        dz   dz        z        k(  sJ t        ||      d   sJ t        t        dz  z  |z  t        |j	                  t              z  z   |j	                  t              z   }t        |d      }|t        | |dt        z  t        dz  z         t        t        d	z   d	z        z        k(  sJ t        ||      d   sJ t        t              dz  |j	                  t              z  t        z   }t        |d      }|t        |t        t        dt        z        z  dz   |t              z         k(  sJ t        ||      d   sJ t        dt        z        |j	                  t              z  t        |z  z   |z
  }t        |d      }|t        | |t              t        t         t        dz
  z  t        dt        z        z  dz        z        k(  sJ y )
NrB   r   r9   rJ   rw   r:   r   ro   rG   )	r   r   r   r   rD   r   r   r   r   rl   s        r%   test_pdsolve_variable_coeffr      s   x#s$DAq	!QA	
AFF1IAFF1I	&Aa	/!Q$	6B
"6
7C"Q!A#s1a46{*Q.////r3"""	
Aa!AFF1I+	!AFF1I	-B
"6
7C"Q!CG)S!Q$q\12222r3"""	
1a4AaffQiK	!&&)	+B
"6
7C"Q"Q$A+sAqD57|34444r3"""	QAFF1I		"B
"6
7C"Q#bd)A!,----r3"""	QqS166!9	!	#a	'B
"6
7C"Q!S!QUC1I!5a!7889999r'   N)*sympy.core.functionr   r   r   sympy.core.relationalr   sympy.core.symbolr   r   &sympy.functions.elementary.exponentialr   r	   (sympy.functions.elementary.trigonometricr
   r   
sympy.corer   sympy.solvers.pder   r   r   r   r   r   sympy.testing.pytestr   rK   rL   r;   r   r   r&   r-   r@   rE   rS   r^   rc   rm   rt   r}   r    r'   r%   <module>r      sx    ; $ / = ? ( ( ' $1aA@O/1d:B6*M#4#*LT:r'   