
    g!&h~                         d dl mZ 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 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z! d	 Z"d
 Z#y)    )N)FloatIoopi)symbols)sqrt)atan2)Matrix)factor)BeamParameterCurvedMirrorCurvedRefraction
FlatMirrorFlatRefraction	FreeSpaceGeometricRayRayTransferMatrixThinLensconjugate_gauss_beamsgaussian_conjgeometric_conj_abgeometric_conj_afgeometric_conj_bfrayleigh2waistwaist2rayleighc                 0    t        |       t        |      k(  S )N)str)abs     ~/var/www/pru.catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/sympy/physics/optics/tests/test_gaussopt.pystreqr"      s    q6SV    c            
         t        dddd      } | t        ddgddgg      k(  sJ | t        t        ddgddgg            k(  sJ | j                  | j                  | j                  | j
                  gg dk(  sJ t        d      \  }}}}}}t        |      }|t        ddgd|z  dgg      k(  sJ |j                  d|z  k(  sJ t        |      t        d|gddgg      k(  sJ t        ||      t        ddgd||z  gg      k(  sJ t        |||      t        ddg||z
  ||z  z  ||z  gg      k(  sJ t               t        ddgddgg      k(  sJ t        |      t        ddgd	|z  dgg      k(  sJ t        |      t        ddgd|z  dgg      k(  sJ t        |      t        |      z  }t        ddgd	|z  dgg      t        d|gddgg      z  }	|j                  |	d
   k(  sJ |j                  |	d   k(  sJ |j                  |	d   k(  sJ |j
                  |	d   k(  sJ t        d      }
t        ||
      t        |g|
gg      k(  sJ t        |      t        ||
      z  t        |
|z  |z   g|
gg      k(  sJ t        t        |f|
ff            t        |g|
gg      k(  sJ t        |      t        ||
      z  j                  |
|z  |z   k(  sJ t        |      t        ||
      z  j                  |
k(  sJ t!        ddd      }t#        |j$                  ddt&        z  t(        z  z         sJ t#        t+        |j$                        ddt&        z  z         sJ t#        t+        |j,                        t/        d            sJ t#        t+        |j0                        t/        d            sJ t        d      }||z  }t#        t+        |j2                        t/        d            sJ t#        t+        |j2                        t/        d            sJ t        d      \  }}t5        ||      t(        |dz  z  |z  k(  sJ t        d      \  }}t7        ||      t9        ||z        t9        t(              z  k(  sJ t        d      \  }}}t;        ||      ||z  ||z   z  k(  sJ t=        ||      ||z  ||z
  z  k(  sJ t?        ||      ||z  ||z
  z  k(  sJ t;        t@        |      |k(  sJ t;        |t@              |k(  sJ t        d      \  }}}tC        |||      d   dd||dz  | |z   z  z   z  d|z  z   z  k(  sJ tC        |||      d   |d|dz  |dz  z  z
  |dz  |dz  z  z   z  k(  sJ tC        |||      d   dt9        d|dz  |dz  z  z
  |dz  |dz  z  z         z  k(  sJ t        d      \  }}}}tE        ||||      d   |t9        |dz  |dz  z  t(        dz  |dz  z  |dz  |dz  z  z  z
         dz   z  k(  sJ tG        tE        ||||      d         ||dz  z  |dz  |dz  z  t9        |dz  |dz  z  t(        dz  |dz  z  |dz  |dz  z  z  z
        z
  z  |dz  z  k(  sJ tE        ||||      d   |k(  sJ t        dd       \  }}}t!        |||      }|jH                  |t(        dz  |dz  z  |dz  |dz  z  z  dz   z  k(  sJ |j2                  |t9        |dz  |dz  z  t(        dz  |dz  z  z  dz         z  k(  sJ |j,                  |k(  sJ |jJ                  |t(        |z  z  k(  sJ |jL                  tO        |t(        |dz  z  |z        k(  sJ |jP                  d|z  t(        z  k(  sJ t!        dddd!      }t#        |j$                  dd"t&        z  t(        z  z         sJ t#        t+        |j0                        t/        d#            sJ t#        t+        |j,                        t/        d            sJ y )$N            )r%   r&   r'   r(   zd f h n1 n2 Rr   )r   r   )r   r%   )r%   r   )r%   r%   angleg 4PSȡ>gMbP?)wgsHM0?g      ?gҔJ˵@
   gP?g(1EDa?z	w wavelenzz_r wavelenza b fzs_in z_r_in fzl w_i w_o f)fzz l w_0T)positive)r,   ngsHM0@gݔJ˵'@))r   r   ABCDr   r   r   r   r   r   r   r   heightr+   r   r"   qr   r   r   w_0r   z_rr,   r   r   r	   r   r   r   r   r   r   r   radius
divergencegouyr
   waist_approximation_limit)matdr.   hn1n2Rlensmulmul_matr+   pfsp1r,   wavelenr8   r   r    s_inz_r_inlw_iw_ozr7   s                             r!   test_gauss_optrP      s   
Aq!Q
'C&1a&1a&)****#VaVaV,<%=????EE355#%%'<777 1Aq!RQA;D6q!9r!tQi0111166RT>>Q<6Q7QF"34444"b!VaVaBZ,@%AAAA	2rq!fR!B$'7B&?@AB B B<6Aq6Aq6"23333?f!Qi"Q$%;<<<<A;&a)bdAY!78888
q/)A,
&C!Qi"Q$+,Vq!Wq!f4E-FFG55GDM!!!55GDM!!!55GDM!!!55GDM!!!GE5!V!Wug,>%????	5!"%+eAgk]UG,D%EF F F1$!135!ug9OOOOaLa//7757Q;FFFaLa//66%???fa4(Aa*1,R//000133/112221555!456661555!12333	2B	AB13323444244% 34555%JAw!W%AqD888=)LC#w'4+<T"X+EEEEgGAq!Q"ac1q5k111Q"ac1q5k111Q"ac1q5k111R#q(((Q#q(((o.OD&!fa "dVQYT	-B&B"Cac"IJK K Kfa%q471a4<'7&!)AqD.'HIJ J Jfa a$'!Q$,&61a4&G!HHI I I ]+NAsC C215	c1fS!Vmb!eCFlAqDAI66	77!;:= = = ='3q9!<=36QsAvS!VCF]RU36\1a419-EEFFBHHKQBO O O O C215:::	D1IAq#ac"A88q"a%Q,1QT	2Q6777733#d1a419b!eCFl3a78888855C<<<<1bf:%%%66U1baik****&&!A#b&000fa41-Aa*1,R//0001555!123331555!45666r#   N)$sympy.core.evalfr   sympy.core.numbersr   r   r   r   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr	   (sympy.functions.elementary.trigonometricr
   sympy.matrices.denser   sympy.polys.polytoolsr   sympy.physics.opticsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   rP    r#   r!   <module>rZ      sA     1 1 % 9 : ' (" " " " "R7r#   