ó
.éPc           @   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 | d | d  }
 t |  d  } |
 t d | k rŲ | t | d | d  d d | t :} | t | d | d  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   i    g      @i   i   (
   t   zerost   shapet   R_0t   at   sqrtt   sizet   pt   pit   amaxt   sin(   t   rhot   zetat   Rct   zct   It
   Shaf_shiftt   centeredt   jt   DRct   Drhot   aot   nt   r2t   plazma(    (    sI   ../includes/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(    (    sI   ../includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   Bloop_integ6   sD    



"





c         C   s+  t  |   } | | } t d t | } | | } | | d }	 | | }
 d | d |	 } d | | } t |  } t |  } | d  k r± t t |  t |   d  } n | } | t |  | d | d |	 | d | | | d <| |
 t |  | | d | | d | | | d <| S(	   Ni   i   i   .i    (   i   (   .i   (   .i    (	   t   absR#   R   R   R   t   NoneR    R   R	   (   R$   R%   R   R   t   outt   rt   xt   B0t   alphat   beta_sqt   gammat   Qt   k_sqt   E_valt   K_valR)   (    (    sI   ../includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   Bloop_analytica   s     


#88N(   t   numpyt   numpy.linalgR   t   scipy.specialR   R   R   R   R   R#   R   R   R8   R:   RF   (    (    (    sI   ../includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/MagFieldCalc.pyt   <module>   s   
	+