a
    <b{                     @   s   d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZ ed\ZZZdddZdd Zdd Z dd Z!dd Z"dd Z#dS )    )IRationaloopi)S)symbols)exp)sqrt)cossin)	integrate)simplify)R_nlE_nl
E_nl_diracPsi_nlm)raiseszn r Z-q=c                 C   s^   t | } t |}t| | |k r$dS t|t| krFt| | | }nt| | |  }||kS )NT)floatabs)abZmax_relative_errorZmax_absolute_errorZrelative_error r   q/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/physics/tests/test_hydrogen.pyfeq   s    r   c                  C   s  dt  } dtd| d   tt |   tdd| d   tt d|    dtd|     tjtdd| d    tt d|    t |  tddtdd| d    tt d|    ddt d|    tddt|  d    tddtdd| d    tt d|    dtd|     t |  tddtdd| d    tt d|    t|  d  tddtd| d   tt d|    ddt d|    tdd	t|  d   tdd
t|  d    tddtdd| d    tt d|    dtd|    tddt|  d    t|   tddtdd| d    tt d|    dtd|     t|  d  tddtdd| d    tt d|    t|  d  d
}|D ]2\}}tt||tt |||f  dksJ qd S )N                  Q                  P   @      i   #   )
)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r    r   )r    r   )r    r   )r    r   r   )	Zr	   r   rr   Halfr   r   r   )r   Rnlr   r   r   test_wavefunction   s@     42.(.:*>.$.
:r1   c                  C   sT   d} t | d D ]>}t |D ]0}tt||td td  tdtfdksJ qqd S )Nr   r   r   )ranger   r   r,   r   )Zn_maxr/   r0   r   r   r   	test_norm4   s    r3   c                  C   s  t d} t d}t d}tddd| ||t|  tt ks@J tddd| ||t jt|  d  |  t|tt |  dtt   ksJ td	dd| ||dtd t| tt|  t| dtt  t d d
 td td|  d	  | d d  ksJ d S )Nr,   phithetar   r   r   r    r   r!   r%   )	r   r   r   r	   r   r-   r   r   r
   )r,   r4   r5   r   r   r   test_psi_nlm;   s0    (& 
"


r8   c                   C   s
  t tttd  dtd   ks$J t tddtd   ks@J t ddtdd  d ks`J t ddtdd  d ksJ t dtj d ksJ t dtj d ksJ t dtj d ksJ t dtj d	 ksJ t d
tj d ksJ ttdd  d S )Nr   r6   r   /   r#   r      r        d   i N  c                   S   s   t dS Nr   )r   r   r   r   r   <lambda>S       z(test_hydrogen_energies.<locals>.<lambda>)r   r/   r+   r   ZOner   
ValueErrorr   r   r   r   test_hydrogen_energiesF   s    $  rA   c                  C   s  t ddddddtd d ks$J tt ddddddtd d tdtd d  d	  dkshJ tt dddddd
td d tdtd d  d  dksJ tt dddddddtd  tddtd   d  dksJ tt dddddddtd  tddtd   d  dks6J tddD ]^} t| D ]N}tt | |t| ddsnJ |dkrLtt | |dt| ddsLJ qLq@d}tddD ]h} t| D ]X}tt | ||dt| |ddsJ |dkrtt | |d|t| |ddsJ qqd}tddD ]h} t| D ]X}tt | ||dt| |ddsZJ |dkr2tt | |d|t| |dds2J q2q&ttd d!  ttd"d!  ttd#d!  d S )$Nr   r   r   )r+   cr#   r   r%   r;   r    6   r!   l      	      iKid i  iB)i9iQI  R   iY<' i/  ixN r&   gh㈵>F)r+   g-C6?gMbP?c                   S   s
   t ddS r=   r   r   r   r   r   r>   |   r?   z.test_hydrogen_energies_relat.<locals>.<lambda>c                   S   s
   t ddS )Nr   r6   rI   r   r   r   r   r>   }   r?   c                   S   s   t dddS )Nr   r   FrI   r   r   r   r   r>   ~   r?   )r   r	   r   r2   r   r   r   r@   )r/   r0   r+   r   r   r   test_hydrogen_energies_relatV   sj    $

($
,$
,rJ   N)r   r   )$Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr	   Z(sympy.functions.elementary.trigonometricr
   r   Zsympy.integrals.integralsr   Zsympy.simplify.simplifyr   Zsympy.physics.hydrogenr   r   r   r   Zsympy.testing.pytestr   r/   r,   r+   r   r1   r3   r8   rA   rJ   r   r   r   r   <module>   s    
