ó
Ä½Vc           @   su   d  d l  Td  d l m Z d  d l m Z m Z d a d Z d e d a	 d Z
 d	 d
 „ Z d „  Z d d „ Z d S(   iÿÿÿÿ(   t   *(   t   norm(   t   ellipkt   ellipegÃõ(\Âµ?gš™™™™™Ù?i   gH¯¼šò×z>i   t   Falsec      	   C   s†  t  t |  ƒ t | ƒ ƒ } | t } |  t }	 t t | | ƒ }
 t |  d ƒ } |
 t d | k r½ | t | | ƒ d d | t :} | t | | ƒ d d | t :} d t | }
 n  | rØ | d |	 d } n | | d |	 | d } | |
 d k  } t d | t |
 d d | | |
 d t | | <| | c d | | t | | ƒ | t	 t |  | | |
 ƒ 9<| |
 f S(   Ni    g      @i   i   i   (
   t   zerost   shapet   R_0t   at   hypott   sizet   pt   pit   amaxt   sin(   t   rhot   zetat   Rct   zct   It
   Shaf_shiftt   centeredt   jt   DRct   Drhot   aot   nt   r2t   plazma(    (    s~   /golem/database/operation/tasks/Training/2016/120216_1144/123655/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   CurrentProfile   s     

##6Dc         C   së  d } t  | } t d | ƒ | } t d ƒ } t d ƒ } | | d <t d ƒ }	 t d ƒ }
 t d ƒ } |  | d <| | d <t | ƒ } t | ƒ } t | ƒ } t | d f ƒ } xå t | | | ƒ D]Ñ \ } } } | | | d <| | | d <| |	 d <| |	 d <| | }
 t |	 |
 ƒ t |
 ƒ d } | | | d  d  … f <| d k s[| | k rh| | 7} qÆ | d d k r‰| d | 7} qÆ | d | 7} qÆ W| t	 d t  | | d 9} | d 9} d | d <| d } | d } | | f S(   Niè  i    i   i   i   i   (
   R   t   arangeR   R   t   cost   emptyt   zipt   crossR   t   mu_0(   t   Rt   zR   R   t   mt   dphit   phi_it   Bt   R_Qt   dR_Qt   dRt   R_Dt   St   Ct   Nt   Bvect   it   ct   st   dBt   Brt   Bz(    (    s~   /golem/database/operation/tasks/Training/2016/120216_1144/123655/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   Bloop_integ6   sD    



"





c         C   sZ  t  |  ƒ } | | } t d t | } t | | ƒ } t | | | ƒ }	 t t | | | ƒ | ƒ }
 t | d ƒ |
 } t | ƒ } t | | ƒ d } t | ƒ } t | ƒ } | d  k rÞ t	 t
 | ƒ t
 |  ƒ d ƒ } n | } | d t | ƒ |
 | | d | | | } | |	 | | | | d | | d | } | | d	 <| | d
 <| S(   Ng       @g      ð?g      @i   .i   i    (   i   (   .i   (   .i    (   t   absR#   R   t   dividet   squaret   sqrtR   R   t   NoneR    R   (   R$   R%   R   R   t   outt   rt   xt   B0t   alphat   gammat   beta_sqt   Qt   sQt   k_sqt   E_valt   K_valR)   R7   R6   (    (    s~   /golem/database/operation/tasks/Training/2016/120216_1144/123655/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   Bloop_analyticb   s&    
#0.

N(   t   numpyt   numpy.linalgR   t   scipy.specialR   R   R   R   R   R#   R   R   R8   R=   RJ   (    (    (    s~   /golem/database/operation/tasks/Training/2016/120216_1144/123655/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   <module>   s   
	,