3
ëÚ_; ã               @   sz   d Z dd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zddd„Zdd„ Zdd„ ZdS ) a¿	  
***************************************************        
***   Program for the computation of the shock  ***
***     in radiative colliding wind binaries    ***
***           with Coriolis deflection          ***    
***************************************************
This code is part of the LIFELINE program.

Copyright (C) 2020-2021 University of Liege (Belgium)
Enmanuelle Mossoux (STAR Institute)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with this program.
If not, see <http://www.gnu.org/licenses/>.

Run: from rshock_coriolis import rshock
     rien=rshock(Mdot1, Mdot2, vinf1, vinf2, mass_ratio, a, per, R1, R2, beta1, beta2, Teff_1, Teff_2, nbr_points_shock_2D, nbr_points_shock_3D, nstep_width, nbr_bin_profile, direct, cut_lim, wind_prim, wind_sec, ex, omega, phase, incl, ipar, mu, T)

Use the Antokhin et al. (2004) formalism for the shock creation and the Parkin & Pittard (2008) formalism for the Coriolis deflection

# Parameters 
# ==========
Mdoti - Mass loss rate [Msun/yr]
vinfi - terminal velocity of the winds [km/s]
mass_ratio - mass ratio
a - semi-major axis [Rsun]
per  - orbital period [days]
Ri - stellar radius [Rsun]
betai - index of the beta velocity law
Teff_i - efective temperature [K]
nbr_points_shock_2D - number of points to create the 2D shape of the shock
nbr_points_shock_3D - number of points to create the 3D shape of the shock
nstep_width - number of points to discretize the inside of the shock
direct - directory where to save files
cut_lim - Limit of the tangential velocity to see the emission
wind_prim - h5 file containing the wind distribution of the primary 
wind_sec - h5 file containing the wind distribution of the secondary 
ex - eccentricity
omega - argument of the periapsis [radian]
phase - phase of the system
incl - inclination of the orbit
ipar - index on the set of stellar parameter
mu - Mean molecular weight
T - Temperatures of emissivities

# Versions
# ========
v1 - 16/03/18
v2 - 26/03/19 - Taking the radiative inhibition into account
c             C   sò  dd l }| d |d  |d k r|d}|jd||  || ggƒ\}}|d }|j|
j| d d |
j| d d  ƒ}|
j| d dkoš|
j| d dkr||d }|d }d}|
j| d }|
j| d }|d }xz|dkoæ|dkrP|dkr"|
j| d }|
j| d }|d }|}d	}qØd}|
j| d }|
j| d }|d }|}qØW |j|
j| d d |
j| d d  ƒ}||  d |d  |d k röd}|j|| || ggƒ\}}|d }|j|	j| d d |	j| d d  ƒ}|	j| d dkrö|	j| d dkrö|d }|d }d}|	j| d }|	j| d }|d }x~|dkrÊ|dkrÊ|dkrš|	j| d }|	j| d }|d }|}d	}n,d}|	j| d }|	j| d }|d }|}qNW |j|	j| d d |	j| d d  ƒ}| d |d  |d krâ||  d |d  |d krâ|j| | || ggƒ\}}|d }|j|	j| d d |	j| d d  ƒ}|	j| d dkr†|	j| d dkr†|d }|d }d}|	j| d }|	j| d }|d }x~|dkrZ|dkrZ|dkr*|	j| d }|	j| d }|d }|}d	}n,d}|	j| d }|	j| d }|d }|}qÞW |j|	j| d d |	j| d d  ƒ}|jd| |  || ggƒ\}}|d }|j|
j| d d |
j| d d  ƒ}|
j| d dkrâ|
j| d dkrâ|d }|d }d}|
j| d }|
j| d }|d }x~|dkr¶|dkr¶|dkr†|
j| d }|
j| d }|d }|}d	}n,d}|
j| d }|
j| d }|d }|}q:W |j|
j| d d |
j| d d  ƒ}|| ||  S )
Né    é   g    ÐcAg      ð?ÚuxÚuyé   ÚupÚdown)ÚnumpyÚqueryÚsqrtÚiloc)ÚxÚyÚR1ÚR2ÚMdot1ÚMdot2ÚdÚtree_prim_windÚtree_sec_windÚ
dwind_primÚ	dwind_secÚnpÚvv1ÚrienÚ	ind_closeÚvv2Ú
ind_closepÚ
ind_closemÚstadeÚdw1Údw2© r!   ú8/local/network/htdocs/Lifeline/codes3/rshock_coriolis.pyÚcomp_eta9   sÆ     *&
**(

*8*(

* *(

*r#   c             C   s:   dd l }t| d|||||||	|
|ƒ}| |d|j|ƒ   S )Nr   g        g      ð?)Úmathr#   r
   )r   r   r   r   Úv1Úv2r   r   r   r   r   r   r$   Úetar!   r!   r"   Úfind_x0§   s    r(   c       	      C   sb   dd l }dd l}y<||j|ƒ | d|j ||j|ƒ d  |j|ƒ  }W n   d}Y nX |S )Nr   g      @r   g        )r   r$   ÚsinÚpi)	r   ÚyyZddeltaZaangleZsslopeZMMdotr   r$   Úretr!   r!   r"   Ú	ddzeta_dy®   s    <
r-   c             C   sÌ  ddl m} dd l}dd l}| d| kr~|j|ƒ|j|ƒ dkr\|t||| g||||fd}|| | |j|ƒ  }d}d}nD|dkrd}||| d |||  d   }d	|jd|jd|	 ƒ ƒ |jd|	 ƒ||   || |jd|	 ƒ ||  d|jd|	 ƒ   d
|| d |jd|	 ƒ |||jd|	 ƒ   d|jd|	 ƒ    }|dk rbd}|
||  dd|||     }|d| | d dd||  |   d
|| d     }|dkr¨|
| dd||    }|d| | d dd| |   d
|d     }n˜||d || d   }||| d |||  d   }d	|jd|jd|	 ƒ ƒ |jd|	 ƒ||   || |jd|	 ƒ ||  d|jd|	 ƒ   d
|| d |jd|	 ƒ |||jd|	 ƒ   d|jd|	 ƒ    }|dk rþd}|
| dd||    }|d| | d dd||  |   d
|| d     }|dkr¨|
||  dd|||     }|d| | d dd| |   d
|d     }|| | |j|ƒ  }| }|||gS )Nr   )Úodeintgš™™™™™É?g        )Úargsg      ð?Úyesr   g      @g      @g       @g      ð¿g      ð¿)Úscipy.integrater.   r   r$   r)   r-   Úcosr
   )Úy_newZz_newÚxstagÚy_vecZ	anglesignZ	deltasignZ	slopesignZMdotZvsignZetasignZrhosignÚbetaZ	cote_chocZ	dzeta_oldÚy_oldr   r   r   ÚradiusÚcrashingr.   r   r$   ZdzetaÚsigmaÚc1Úc2Zz0Zsigma_0r!   r!   r"   Úsigmas¹   sB    
 ¨
 8
4 ¨
8
 0r=   c       !      C   sò  dd l }dd l}ddlm}	 dd l}
ddlm} dd l}d|jd< t	|d dƒ}|j
d| d	 ƒ |j
d
ƒ |jƒ  |
jj|d}|j|| d kƒd }| d t|ƒk r®dg}| d t|ƒkrÐtt|ƒƒd g}||d  d }d}d}|	|d}|j|ƒ}g }x<t|d ƒD ],}|d }|j|| |
jj|ƒ d ƒ qW t|ƒ}|j|ƒ| }|jt||  ƒƒ}|j||| kƒd }|j||ƒ}|jdƒ}|d d d… }|d }dt|| ƒd  }|d |
jjdƒ }|d |
jjdƒ }xØt|d ƒD ]È}|d }|j|d ƒd }|d d d… }||d  }|j|d ƒdkrò|t|| ƒ|  }|d |j|
jj|ƒƒ| d  t|| ƒd  }|||d  |  }|t|| ƒ||d   |  }qòW d||  }d| } d|d | d  | | d   S )Nr   )Úabund)Ú	constantez'https://hea-www.cfa.harvard.edu/AtomDB/ÚATOMDBz	/userdataÚwzfilemap=z	/filemap
z3atomdbroot=https://hea-www.cfa.harvard.edu/AtomDB/
)ÚadbrootghÉh÷Æ!w>r   gQ²@³-(;é   g        )ÚrefgêWôTáßDr   gfi´íÍð?g¾´dbÒùA?Fg-<¥Ò}#ð?g      ð?é   éÿÿÿÿrF   rF   )r   r$   Ú	sun_abundr>   ÚpyatomdbÚ
constantesr?   ÚosÚenvironÚopenÚwriteÚcloseÚutilÚload_user_prefsÚwhereÚminÚmaxÚintÚlenÚarrayÚrangeÚappendÚatomicÚ	Z_to_massÚsumÚargminÚabsÚtakeÚarangeÚisnanÚfloor)!ÚkTÚkT_tabÚcool_tabÚdirectÚkT_ionÚion_fracÚsunabundr   r$   r>   rH   r?   rJ   ÚfuserÚsettingÚindÚcool_tab_hereÚnzÚsum_vecÚnumber_fractionÚmass_fractionÚzzÚZÚfrac_totÚion_frac_hereÚZ_vecÚXhÚatomic_weightÚAzÚAznÚXzÚmuÚmubarr!   r!   r"   Úintegrand_Tä   sd    



$
2&r}   c       !      C   sî  dd l }dd l}ddlm}	 dd l}
ddlm} dd l}d|jd< t	|d dƒ}|j
d| d	 ƒ |j
d
ƒ |jƒ  |
jj|d}|j|| d kƒd }| d t|ƒk r®dg}| d t|ƒkrÐtt|ƒƒd g}||d  d }d}d}|	|d}|j|ƒ}g }x<t|d ƒD ],}|d }|j|| |
jj|ƒ d ƒ qW t|ƒ}|j|ƒ| }|jt||  ƒƒ}|j||| kƒd }|j||ƒ}|jdƒ}|d d d… }|d }dt|| ƒd  }|d |
jjdƒ }|d |
jjdƒ }xØt|d ƒD ]È}|d }|j|d ƒd }|d d d… }||d  }|j|d ƒdkrò|t|| ƒ|  }|d |j|
jj|ƒƒ| d  t|| ƒd  }|||d  |  }|t|| ƒ||d   |  }qòW d||  }d| } |d | d  | | d  S )Nr   )r>   )r?   z'https://hea-www.cfa.harvard.edu/AtomDB/r@   z	/userdatarA   zfilemap=z	/filemap
z3atomdbroot=https://hea-www.cfa.harvard.edu/AtomDB/
)rB   ghÉh÷Æ!w>r   gQ²@³-(;rC   g        )rD   gêWôTáßDr   gfi´íÍð?g¾´dbÒùA?Fg-<¥Ò}#ð?g      ð?rE   rF   rF   rF   )r   r$   rG   r>   rH   rI   r?   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   )!rb   rc   rd   re   rf   rg   rh   r   r$   r>   rH   r?   rJ   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r!   r!   r"   Úvar_rho!  sd    



$
2&r~   c             C   s&   dd l }|j|d ||  d  ƒ| S )Nr   r   )r   r
   )ZcenterxZcenteryr8   r   r   r!   r!   r"   Ú	plot_star^  s    r   c             C   s:   dd l }|}| }|j|d |d  ƒ}|j|| || ƒS )Nr   r   )r   r
   Úarctan2)r   Úzr   ÚoppÚadjÚhypor!   r!   r"   Úangleyzb  s
    r…   c             C   s   dd l }| |j|ƒ S )Nr   )r$   r2   )ÚvecÚangler$   r!   r!   r"   Úprojxi  s    rˆ   c             C   s    dd l }| |j|ƒ |j|ƒ S )Nr   )r$   r)   r2   )r†   Úangle1Úangle2r$   r!   r!   r"   Úprojyl  s    r‹   c             C   s    dd l }| |j|ƒ |j|ƒ S )Nr   )r$   r)   )r†   r‰   rŠ   r$   r!   r!   r"   Úprojzo  s    rŒ   çš™™™™™Ù?c       	      C   sx   dd l }| j}|| |j|| ddd }|| |j|| ddd }|j|j|d |d  ƒdd}| j||kƒ d S )Nr   r   )Úaxisr   )r   Ú	trianglesÚrollrS   r
   Úset_mask)	Útriangr   r   Úalphar   r   ZxtriZytriZmaxir!   r!   r"   Ú
apply_masks  s     r”   c             C   s†   dd l }| \}}}|\}}}	g }
g }xXttt|ƒƒƒD ]D}|j|j|| ||f||fƒƒ |
j|j|| ||f||	fƒƒ q6W ||
fS )Nr   )r   rW   rT   rU   rX   Úinterp)Úp1Úp2r   r   Úx1Úy1Úz1Úx2Úy2Úz2ZreszZresyÚir!   r!   r"   Úfind_xy~  s    

 $rŸ   c          9   C   sâ  ddl m} ddlm} ddlm} dd l}dd l}ddlm	} dd l
j}dd lj}ddlm}	 dd l}
dd l}dd l}dd l}ddlm} ddlm} | \ }}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/|jd	ƒ |j}0|#d
 t|.ƒ t|/ƒ d }1|j|%ƒjdd}2|j|&ƒjdd}3||j|j|2jd d … d |2jd d … d fƒd–t t!|2jd d … d ƒƒfƒj"dd}4||j|j|3jd d … d |3jd d … d fƒd—t t!|3jd d … d ƒƒfƒj"dd}5|| ||  }6d}7d}8|dƒ}9|dƒ}:|dƒ};|dƒd }<|dƒ}=||: }||: }||: }||9 d˜ }||9 d™ }d|0d  |d  |<|d d   }>|>d |  }?t#||gƒ}@|j$|"|j%d!d  }A|A|j&t%|"ƒd" ƒd   |@ |j&t%|"ƒd" ƒ }Bg }Cg }Dt'|1ƒT}ExL|ED ]D}F|Fj(ƒ d d#krä|Fj(ƒ }G|Dj)t%|Gd ƒƒ |Cj)t%|Gd ƒƒ qäW W d Q R X |j*|Dƒd$ }D|j+|D|j*|Cƒd% ƒ |j,d&ƒ |j-d&ƒ |j.d'ƒ |j/d(ƒ |j0|#d) t|.ƒ t|/ƒ d* ƒ |j1ƒ  |0d" }H|6d krp|0d d |6   }I|0d" }Hd |0d" |I |j2|0d" ƒ  }J|J|I|H  }K|H|K }HxLt3|Kƒd+krTt3|Jƒd+krTd |H|I |j2|Hƒ  }J|J|I|H  }K|H|K }Hq
W |H|0d" k rp|0d" |H }Hg }Lg }Mg }Nt'|#d, ƒ˜}Ox|OD ]ˆ}F|Fj(ƒ }P|Pd d d-kr|Lj)t%|Pd ƒƒ |Mj)t%|Pd ƒƒ g }Qx4t4t |Pd ƒd ƒD ]}R|Qj)t%|P|Rd  ƒƒ qìW |Nj)|Qƒ qW W d Q R X |j*|Lƒ}Lt#||gƒd.|,d  d$ d/ d0 dš|+d/  d2  k rnt5d3ƒ d4}Sd›|0 }T|'}U|'}V|V}W|V|W ||j6|Wƒ  d ||j7|Wƒ   }XxDt3|Xƒd+krò|W|X }W|V|W ||j6|Wƒ  d ||j7|Wƒ   }Xq°W |W||j6|Wƒ  | d"|0  }Y|j7|Wƒ| d ||j7|Wƒ   }Z|j8d ||  ƒ|j6|Wƒ d ||j7|Wƒ   }[|j9|[|Zƒ}\|\d"|0 kr~d6}\|d |d   d ||j7|\ƒ   }]|]}^|j:||] ƒ}_|j;| |^ ||^ d7ƒ}`t<d6d6||^ |`ƒ}a|j;| |] ||^ d7ƒ}bt<d6d6||^ |bƒ}c|bd  }bd8d9„ t4d:ƒD ƒ\}d}e}f}g}h}i}j}k}l}m}n}o}p}q}rd;d9„ t4d:ƒD ƒ\}s}t}u}v}w}x}y}z}{}|}}}~}}€}d<d9„ t4d=ƒD ƒ\}‚}ƒ}„}…}†}‡}ˆ}‰d>d9„ t4d?ƒD ƒ\}Š}‹}Œ}d@d9„ t4dAƒD ƒ\}Ž}}}‘}’}“|U}”|j$| ƒdB |0 dC|   }•dB|0 dC|   }–|j$d"|! ƒd6 }—|j$d"|! ƒd6 }˜|V}™|'}šdD}›d6}œCxXt4|Sd ƒD C]F}|U|T|  }V|V}W|V|W ||j6|Wƒ  d ||j7|Wƒ   }XxDt3|Xƒd+kr¼|W|X }W|V|W ||j6|Wƒ  d ||j7|Wƒ   }XqzW |W||j6|Wƒ  | d"|0  }žt3|ž|Y ƒ}Ÿ|j7|Wƒ| d ||j7|Wƒ   }Z|j8d ||  ƒ|j6|Wƒ d ||j7|Wƒ   }[|j9|[|Zƒ}\|\d"|0 k	rTd6}\|d |d   d ||j7|\ƒ   }]|j8|<|> d"|] d |   ƒ} |]|? |> }¡|t=||] | d" |]|||||||4|5|2|3fdE}¢|¢d }¢|dk
r>t'|#dF t|)ƒ dGƒ}£|£j>t|¢ƒdH ƒ |£j>t|¢| ƒdI ƒ |£j>t|¢|] ƒdJ ƒ |£j1ƒ  t#|¢|gƒ}¢|4j?|¢|] d6ggƒ\}¤}¥|¥d }¥|j8|2j|¥ dK d |2j|¥ dL d  ƒ}¦|2j|¥ dK dkrž|2j|¥ dL dkrž|¥d }§|¥d }¨dM}©|2j|§ dK }ª|2j|§ dL }«|¥d }§x~|ªdkrr|«dkrr|©dMkrB|2j|¨ dK }ª|2j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|2j|§ dK }ª|2j|§ dL }«|§d }§|§}¥
qöW |j8|2j|¥ dK d |2j|¥ dL d  ƒ}¦|5j?d |¢|]  d6ggƒ\}¤}¥|¥d }¥|j8|3j|¥ dK d |3j|¥ dL d  ƒ}¬|3j|¥ dK dkrö|3j|¥ dL dkrö|¥d }§|¥d }¨dM}©|3j|§ dK }ª|3j|§ dL }«|¥d }§x~|ªdkrÊ|«dkrÊ|©dMkrš|3j|¨ dK }ª|3j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|3j|§ dK }ª|3j|§ dL }«|§d }§|§}¥qNW |j8|3j|¥ dK d |3j|¥ dL d  ƒ}¬|j:| |¦ ƒ}­|¢|ks|¢|]| krH|dkrBdO}›t5dPƒ t5dQƒ t5dPƒ d6}­n|­|j|H kr\d6}­|j$|ƒ|H | dR|0 d"  }®|j$|dS ƒd  |0|H  |dS d  }¯|¯|j2|¯ƒ }°d d |6 |®|j2|®ƒ d    }±g }²xH|±D ]@}³|j@t3|°|³ ƒ|jAt3|°|³ ƒƒkƒd }´|²j)|¯|´d  ƒ qÖW |j*|²ƒ}²|j6|²ƒ|j6|²|® ƒ }µ|µ|j6|®ƒ |] }¶|j@|3d d/kƒd }·|¢}¸d6}¹g }ºg }»xÈ|¶D ]À}¼|j8|¸d |¹d  ƒ}½|j8|]|¸ d |¹d  ƒ}¾tB|¸|¹|||||]|4|5|2|3ƒ}¿|¿dkr|¸|]|½d  |j8|¿ƒ |½d |j8|¿ƒ |¾d    |¼ }À|À|¼|¹  |¸ }¸|¼}¹|ºj)|¸|] ƒ |»j)|¿ƒ qzW |j*|»ƒ}»|j*|ºƒ}º|j8|ºd |¶|] d  ƒ}Á|¶|] |Á }Â|º|Á }Ã|jC|Â|Ãƒ}®|ºdd … |ºd dœ…  }Ä|¶dd … |] |¶d d… |]  }Å|j8|Åd |Äd  ƒ}Æ|jC|Å|Æ |Ä|Æ ƒ}Ç|j*|Çd gƒ}È|¢|kr|j*|0d" gƒ}È|j|È|Çfƒ}Ç|Ç|® }É|0d" |Éd< |j@d d||]  |j8|ºd |¶|] d  ƒ  | |j7|Éƒ |$k ƒd }Êd d6d6g}Ë|º|] }º|dk-r2x’t4|Êdž d ƒD ]|}Ìt5t|ÌƒdT t|ÊdŸ ƒ ƒ |º|Ì d6k r4|j:|¶|Ì |]|º|Ì   ƒ|_k r4|j2|_ƒ|]|º|Ì   }Ít3|Íƒt%|jD|¶|Ì ƒƒ |¶|Ì< |jE|jF|º|Ì |¶|Ì d6g|Ëƒ|jGjH|º|Ì |¶|Ì d6gddU|jGjH|ËddU  ƒ}Î|0|jE|jF|º|Ì |] |¶|Ì d6g|Ëƒ|jGjH|º|Ì |] |¶|Ì d6gddU|jGjH|ËddU  ƒ }Ï|j8|º|Ì d |¶|Ì d  ƒ}Ð|j8|]|º|Ì  d |¶|Ì d  ƒ}Ñd6}Òd6}Ó|0d" }Ô|Ìdkr||jE|jF|º|Ìd  |¶|Ìd  d6g|Ëƒ|jGjH|º|Ìd  |¶|Ìd  d6gddU|jGjH|ËddU  ƒ}Ò|0|jE|jF|º|Ìd  |] |¶|Ìd  d6g|Ëƒ|jGjH|º|Ìd  |] |¶|Ìd  d6gddU|jGjH|ËddU  ƒ }Ó|jE|jF|º|Ì |º|Ìd   |¶|Ì |¶|Ìd   d6g|Ëƒ|jGjH|º|Ì |º|Ìd   |¶|Ì |¶|Ìd   d6gddU|jGjH|ËddU  ƒ}Ôt3|Î|Ò ƒ}Õt3|Ï|Ó ƒ}Öd6}×|j$|!ƒd6 }Ø|Ð|krd|j;d6|Ð|] ||]  d dVƒ}Ùg }×|j@|2d d |2d d  d/ |Ðk ƒd }·|2j|· }Ú|j@|Úd d |Úd d  d/ ||] kƒd }·|Új|· }Ú|j@|Úd |¶|Ì k ƒd }·|Új|· }Úx’t4dVƒD ]„}ÛtI|Ð|Ù|Û |]  |Îƒ}ÜtJ|Ð|Ù|Û |]  |Îd6ƒ}Ý|4j?|Ü|] |Ý|] ggƒ\}¤}¥|¥d }¥t#||j8|2j|¥ dK d |2j|¥ dL d  ƒƒ}Þ|2j|¥ dK dkr|2j|¥ dL dkr|¥d }§|¥d }¨dM}©|2j|§ dK }ª|2j|§ dL }«|¥d }§x~|ªdkrÔ|«dkrÔ|©dMkr¤|2j|¨ dK }ª|2j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|2j|§ dK }ª|2j|§ dL }«|§d }§|§}¥qXW t#||j8|2j|¥ dK d |2j|¥ dL d  ƒƒ}Þd1|+d.  |Þ|j6|Ô|Î ƒ d0 d  }ß|j@|D|ßkƒd }´|ßtK|Dƒk rRdg}´|ßt#|Dƒkrrt t!|Dƒƒd g}´|C|´d   }àd| |Þd |0 |Ð|Ù|Û |]  d   }á|×j)dW|8d  |;d d  t3|Þ|j6|Ô|Î ƒ ƒd  |]dX |7 |á |à  ƒ qnW |j@t3|×|Ù ƒtKt3|×|Ù ƒƒkƒd }´|×|´d  |] }×|j$|!ƒd"|! d |× d"|!   |!d  |×d"|!   }Ød6}â|j$|!ƒd6 }ãt3|j6|0|Ô |Ï ƒƒd+kr`|j;d6|Ñ|] ||]  d dVƒ}Ùg }â|j@|3d d |3d d  d/ |Ñk ƒd }·|3j|· }ä|j@|äd d |äd d  d/ ||] kƒd }·|äj|· }ä|j@|äd |¶|Ì k ƒd }·|äj|· }äx¬t4dVƒD ]ž}ÛtI|Ñ|Ù|Û |]  |0|Ï ƒ|] }ÜtJ|Ñ|Ù|Û |]  |0|Ï d6ƒ}Ý|5j?|]|Ü |] |Ý|] ggƒ\}¤}¥|¥d }¥|j8|äj|¥ dK d |äj|¥ dL d  ƒ}Þ|3j|¥ dK dkrì|3j|¥ dL dkrì|¥d }§|¥d }¨dM}©|3j|§ dK }ª|3j|§ dL }«|¥d }§x~|ªdkrÀ|«dkrÀ|©dMkr|3j|¨ dK }ª|3j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|3j|§ dK }ª|3j|§ dL }«|§d }§|§}¥qDW |j8|3j|¥ dK d |3j|¥ dL d  ƒ}Þ|Þ|krú|}Þd1|+d.  |Þ|j6|0|Ô |Ï ƒ d0 d  }ß|j@|D|ßkƒd }´|ßtK|Dƒk rJdg}´|ßt#|Dƒkrjt t!|Dƒƒd g}´|C|´d¡  }àd| |Þd |0 |Ñ|Ù|Û |]  d   }á|âj)dW|8d  |;d d  t3|Þ|j6|0|Ô |Ï ƒ ƒd  |]dX |7 |á |à  ƒ qPW |j@t3|â|Ù ƒtKt3|â|Ù ƒƒkƒd }´|â|´d  |] }â|j$|!ƒd"|! d |â d"|!   |!d  |âd"|!   }ã|ÌdkrŽ|Ð|× |åk r||æ}×|Ñ|â |çk rŽ|è}ât#|œ|×|âƒ}œtI|Ð|Ù|Û  |Îƒ}ÜtJ|Ð|Ù|Û  |Îd6ƒ}Ý|4j?|Ü|] |Ý|] ggƒ\}¤}¥|¥d }¥tK||j8|2j|¥ dK d |2j|¥ dL d  ƒƒ}é|2j|¥ dK dkr$|2j|¥ dL dkr$|¥d }§|¥d }¨dM}©|2j|§ dK }ª|2j|§ dL }«|¥d }§x~|ªdkrò|«dkrò|©dMkrÂ|2j|¨ dK }ª|2j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|2j|§ dK }ª|2j|§ dL }«|§d }§|§}¥qvW tK||j8|2j|¥ dK d |2j|¥ dL d  ƒƒ}ét#dY|éƒ}étI|Ñ|Ù|Û  |0|Ï ƒ|] }ÜtJ|Ñ|Ù|Û  |0|Ï d6ƒ}Ý|5j?|]|Ü |] |Ý|] ggƒ\}¤}¥|¥d }¥tK||j8|3j|¥ dK d |3j|¥ dL d  ƒƒ}ê|3j|¥ dK dkrÈ|3j|¥ dL dkrÈ|¥d }§|¥d }¨dM}©|3j|§ dK }ª|3j|§ dL }«|¥d }§x~|ªdkr–|«dkr–|©dMkrf|3j|¨ dK }ª|3j|¨ dL }«|¨d }¨|¨}¥dN}©n,dM}©|3j|§ dK }ª|3j|§ dL }«|§d }§|§}¥qW tK||j8|3j|¥ dK d |3j|¥ dL d  ƒƒ}êt#dY|êƒ}ê|j$|!ƒ}ë|j|Ž|×|Ð|×|ë |!  d  |j6|0d" |Î ƒ |Õ |– t3|j6|Ô|Î ƒƒ|!  fƒ}Ž|j|Ž|â|Ð|â|ë |!  d  |j6|0d" |Ï ƒ |Ö |– t3|j6|Ô|Ï ƒƒ|!  fƒ}ŽtI|Ð|× |Îƒ}ìtJ|Ð|× |Îd6ƒ}ítI|Ñ|â |0|Ï ƒ|] }îtJ|Ñ|â |0|Ï d6ƒ}ïtI|Ð|Ø |Îƒ}ðtJ|Ð|Ø |Îd6ƒ}ñtI|Ñ|ã |0|Ï ƒ|] }òtJ|Ñ|ã |0|Ï d6ƒ}ó|0d" }Ôd6}ôd6}õ|Ìdk!r|jE|jF|ì|ö |í|÷ d6g|Ëƒ|jGjH|ì|ö |í|÷ d6gddU|jGjH|ËddU  ƒ}Ô|é|j7|Ô|Î ƒ }ô|Ì|Êd¢ k rœ|Ô}ø|jE|jF|î|ù |ï|ú d6g|Ëƒ|jGjH|î|ù |ï|ú d6gddU|jGjH|ËddU  ƒ}Ô|ê|j7|0|Ô |Ï ƒ }õ|Ì|Êd£ k!r|Ô}û|ì}ö|í}÷|î}ù|ï}ú|Ð|× }å|Ñ|â }ç|×}æ|â}è|j8|éd |ôd  ƒ}ü|j8|êd |õd  ƒ}ý|j|‘|ôgfƒ}‘|j|’|õgfƒ}’d6}þ|j$|!ƒd6 }ÿ|j$|!ƒd6 } d| |éd |0 |Ðd   |j$|!ƒd6  }|×d6k$râd1|+d.  |üd0 d  }þ|j;|×d"|!  |×|!ƒ}ÿd| |éd |0 |Ð|× d   }|j;d |þd$ |!ƒ}d d¤|; d |éd  | d[|=d    }g }x8|D ].}|j)d\tL||D|C|#|Ld$ |N|*ƒ ƒ "q|W ||jM|ƒ|jN|dd … |d d¥…  ƒ  |] }||× t#|ƒ }|||d$ d]dd^}E|ÿd6 |ÿ }|j@||] tK|ƒk ƒd }´t!|´ƒdk#rjtK|ƒgt!|´ƒ ||´< |j@||] t#|ƒkƒd }´t!|´ƒdk#r°t#|ƒgt!|´ƒ ||´< |E|ƒ} g }|g}x„t4t t!| ƒƒƒD ]n}|dk#ràd\tO| | d$ |D|C|#|Ld$ |N|*ƒ }	|j)|	t3|Ø|d  |Ø|  ƒ | ƒ #qàW |j*|ƒt#|ƒd_  }xrt4t t!| ƒƒƒD ]\}|dk$r‚||d  |d¦  d ||d    }
|j)|d§ |
 ƒ $q‚W d6}|j$|!ƒd6 }|j$|!ƒd6 }d| |êd |0 |Ñd   |j$|!ƒd6  }|âd6k(rDd1|+d.  |ýd0 d  }|j;|âd"|!  |â|!ƒ}d| |êd |0 |Ñ|â d   }|j;d |d$ |!ƒ}d d¨|; d |êd  | d[|=d    }g }x8|D ].}|j)d\tL||D|C|#|Ld$ |N|*ƒ ƒ %qâW ||jM|ƒ|jN|dd … |d d©…  ƒ  |] }||â t#|ƒ }|||d$ d]dd^}E|d6 | }|j@|tK|ƒk ƒd }´t!|´ƒdk&rÐtK|ƒgt!|´ƒ ||´< |j@|t#|ƒkƒd }´t!|´ƒdk'rt#|ƒgt!|´ƒ ||´< |E|ƒ}g }|g}x„t4t t!|ƒƒƒD ]n}|dk'rBd\tO|| d$ |D|C|#|Ld$ |N|*ƒ }	|j)|	t3|ã|d  |ã|  ƒ | ƒ 'qBW |j*|ƒt#|ƒd_  }xrt4t t!|ƒƒƒD ]\}|dk'rä||d  |dª  d ||d    }
|j)|d« |
 ƒ 'qäW t#|»|Ì d |»|Ì  gƒ|»|Ì< |þdk)r†x¦t4t t!|ØƒƒƒD ] }tPtJ|Ð|Ø|  |Îd6ƒd6|¢|¶|Î|Ô|Î |Ô||é|»|Ì || |d|—| |˜| |||]||›ƒ}|d d¬k)rJt!|ƒdk)r&|d |—|< |d |˜|< n$|d d |—|< |d |˜|< x tQ|t%ƒ)sj|d })qLW |j|“|gfƒ}“(q~W nŽd| |éd |0 |Ð|× d   }xjt4t t!|ØƒƒƒD ]V}|j|“|gfƒ}“|tJ||Îd6ƒ |é |j7|Ô|Î ƒ |—|< tJ||Îd6ƒ|˜|< )qºW |dk+rhxÞt4t t!|ãƒƒƒD ],}tPtJ|Ñ|ã|  |Ïd6ƒd6|¢|¶|Ï|0|Ô |Ï |Ô||ê|»|Ì || |d|—|t t!|Øƒƒ  |˜|t t!|Øƒƒ  |||]||›ƒ}|d d­k+r,t!|ƒdk+r |d |—||! < |d |˜||! < n,|d d |—||! < |d |˜||! < x tQ|t%ƒ+sL|d }+q.W |j|“|gfƒ}“*q4W nšd| |êd |0 |Ñ|â d   }xvt4t t!|ãƒƒƒD ]b}|j|“|gfƒ}“|tJ||Ïd6ƒ |ê |j7|0|Ô |Ï ƒ |—||! < tJ||Ïd6ƒ|˜||! < +qœW |Ì|Êd® k,rt| }|}|}|}|é}|ê}|×}|â}||j$|!ƒd6  }||j$|!ƒd6  }|j|Š|ìgfƒ}Š|j|†|ígfƒ}†|j|‹|îgfƒ}‹|j|‡|ïgfƒ}‡|j|Œ|ðfƒ}Œ|j|ˆ|ñfƒ}ˆ|j||òfƒ}|j|‰|ófƒ}‰|j|| fƒ}|j||fƒ}|j||fƒ}|j||fƒ}q°W |¡|k -rBd6}­nr|­t3|j:|¶|Êd¯  |º|Êd°  |¡  ƒƒ|jR||¡ ƒ k-r´t3|j:|¶|Êd±  |º|Êd²  |¡  ƒƒ|jR||¡ ƒ d` }­xÈt4| ƒD ]º}t%|d ||   ƒda d6k.r&dbt|d ||   ƒ dc t| |Sd  ƒ dd }t5|ƒ |º}|¶|j7|•| ƒ }|¶|j6|•| ƒ }|†|j7|•| ƒ }í|†|j6|•| ƒ } |‡|j7|•| ƒ }ï|‡|j6|•| ƒ }!|ˆ|j7|•| ƒ }ñ|ˆ|j6|•| ƒ }"|‰|j7|•| ƒ }ó|‰|j6|•| ƒ }#|dk:r0xt4|Êd³ d ƒD 
]ð}Ì|j|z|j*||Ì ƒ|¡ |j7|­ƒ |j*||Ì ƒ|j6|­ƒ  |¡ gfƒ}z|j|{||Ì gfƒ}{|j|||j*||Ì ƒ|¡ |j6|­ƒ |j*||Ì ƒ|j7|­ƒ  gfƒ}||jj)|Š|Ì |¡ |j7|­ƒ | |Ì |j6|­ƒ  |¡ ƒ |kj)|í|Ì ƒ |lj)|Š|Ì |¡ |j6|­ƒ | |Ì |j7|­ƒ  ƒ |mj)|‹|Ì |¡ |j7|­ƒ |!|Ì |j6|­ƒ  |¡ ƒ |nj)|ï|Ì ƒ |oj)|‹|Ì |¡ |j6|­ƒ |!|Ì |j7|­ƒ  ƒ |md´ d |ndµ d  |od¶ d  |d k 1rœ|jE|jF|md· |nd¸ |od¹ g|Ëƒ|jGjH|mdº |nd» |od¼ gddU|jGjH|ËddU  ƒ}ÎtS|nd½ |od¾ ƒ}$t3|md¿ ƒ|k 1rxt3tI||Îƒƒt%|jD|mdÀ ƒƒ |mdÁ< tJ||Î|$ƒ|ndÂ< tT||Î|$ƒ|odÃ< |j|}|Œt |Ì|! ƒt |Ìd |! ƒ… |¡ |j7|­ƒ |"t |Ì|! ƒt |Ìd |! ƒ… |j6|­ƒ  |¡ fƒ}}|j|~|ñt |Ì|! ƒt |Ìd |! ƒ… fƒ}~|j||Œt |Ì|! ƒt |Ìd |! ƒ… |¡ |j6|­ƒ |"t |Ì|! ƒt |Ìd |! ƒ… |j7|­ƒ  fƒ}|zdÄ d |{dÅ d  ||dÆ d  |d k 3rò|jE|jF|zdÇ |{dÈ ||dÉ g|Ëƒ|jGjH|zdÊ |{dË ||dÌ gddU|jGjH|ËddU  ƒ}ÎtS|{dÍ ||dÎ ƒ}$|›dDk3rLt5dPƒ t5dQƒ t5dPƒ dO}›t3|zdÏ ƒ|k 3r†t3tI||Îƒƒt%|jD|zdÐ ƒƒ |zdÑ< tJ||Î|$ƒ|{dÒ< tT||Î|$ƒ||dÓ< |zdÔ |jdÕ< |{dÖ |kd×< ||dØ |ldÙ< |zdÚ |}dÛ< |{dÜ |~dÝ< ||dÞ |dß< |j|}|t |Ì|! ƒt |Ìd |! ƒ… |¡ |j7|­ƒ |#t |Ì|! ƒt |Ìd |! ƒ… |j6|­ƒ  |¡ fƒ}}|j|~|ót |Ì|! ƒt |Ìd |! ƒ… fƒ}~|j||t |Ì|! ƒt |Ìd |! ƒ… |¡ |j6|­ƒ |#t |Ì|! ƒt |Ìd |! ƒ… |j7|­ƒ  fƒ}|}dà d |~dá d  |dâ d  |d k 5rÚ|jE|jF|}dã |~dä |då g|Ëƒ|jGjH|}dæ |~dç |dè gddU|jGjH|ËddU  ƒ}ÎtS|~dé |dê ƒ}$t3|}dë ƒ|k 5r¶t3tI||Îƒƒt%|jD|}dì ƒƒ |}dí< tJ||Î|$ƒ|~dî< tT||Î|$ƒ|dï< |jE|jF|zdð |{dñ ||dò g|Ëƒ|jGjH|zdó |{dô ||dõ gddU|jGjH|ËddU  ƒ}Î|0|jE|jF|zdö |] |{d÷ ||dø g|Ëƒ|jGjH|zdù |] |{dú ||dû gddU|jGjH|ËddU  ƒ }Ï|0d" }Ô|Ìdk7r:|jE|jF|jdü |jdý  |kdþ |kdÿ  |ld  |ld  g|Ëƒ|jGjH|jd |jd  |kd |kd  |ld |ld  gddU|jGjH|ËddU  ƒ}ÔtS|kd |ld	 ƒ}$|j|wtI|j$|!ƒd6 |‘|Ì  |Ôƒfƒ}w|j|wtJ|j$|!ƒd6 |‘|Ì  |Ô|$ƒfƒ}x|j|wtT|j$|!ƒd6 |‘|Ì  |Ô|$ƒfƒ}y|0d" }Ô|Ìdk8r||jE|jF|md
 |md  |nd |nd  |od |od  g|Ëƒ|jGjH|md |md  |nd |nd  |od |od  gddU|jGjH|ËddU  ƒ}ÔtS|nd |od ƒ}$|j|wtI|j$|!ƒd6 |’|Ì  |Ôƒfƒ}w|j|xtJ|j$|!ƒd6 |’|Ì  |Ô|$ƒfƒ}x|j|ytT|j$|!ƒd6 |’|Ì  |Ô|$ƒfƒ}y|j|€dd6|j$|!ƒ  fƒ}€|j|€dd6|j$|!ƒ  fƒ}€|j|p|t |Ìd" |! ƒt |Ìd d" |! ƒ… fƒ}p|j|q|t |Ìd" |! ƒt |Ìd d" |! ƒ… fƒ}q|j|v|Žt |Ìd" |! ƒt |Ìd d" |! ƒ… fƒ}v|j|r|“t |Ìd" |! ƒt |Ìd d" |! ƒ… fƒ}r/qW |‚j)|‘|Ì ƒ |„j)|’|Ì ƒ ||Êd d  }%||Êd d  }&||Êd d  }'||Êd  }||Êd  }||Êd  }|dk-rÀ|d6k ;rv|j:|j8|d |d  ƒ|]|  ƒ|_k ;rv|j2|_ƒ|]|  }Í|jU||j8|d |d  ƒ ƒ}(t3|Í|j7|(ƒ ƒt%|jD|ƒƒ }t3|Í|j6|(ƒ ƒt%|jD|ƒƒ }|jE|jF|||g|Ëƒ|jGjH|||gddU|jGjH|ËddU  ƒ}ÎtS|&|'ƒ}$|d |d  |d  |d k <r\t3|ƒ|k <r(t3tI||Îƒƒt%|jD|ƒƒ }tJ||Î|$ƒ}t3tT||Î|$ƒƒt%|jD|ƒƒ }|%d |&d  |'d  |d k <rèt3|%ƒ|k <r´t3tI||Îƒƒt%|jD|%ƒƒ }%tJ||Î|$ƒ}&t3tT||Î|$ƒƒt%|jD|'ƒƒ }'|jE|jF||% ||& ||' g|Ëƒ|jGjH||% ||& ||' gddU|jGjH|ËddU  ƒ}Ô|0|jE|jF||] ||g|Ëƒ|jGjH||] ||gddU|jGjH|ËddU  ƒ }Ï|jE|jF|%|&|'g|Ëƒ|jGjH|%|&|'gddU|jGjH|ËddU  ƒ}Ò|0|jE|jF|%|] |&|'g|Ëƒ|jGjH|%|] |&|'gddU|jGjH|ËddU  ƒ }Ót3|Î|Ò ƒ}Õt3|Ï|Ó ƒ}Ö|j8|d |d  |d  ƒ}Ð|j8|]| d |d  |d  ƒ}ÑtK|û|Ôgƒ}û|}é|}ê|×dk>rè|ê|j7|Ô|Î ƒ })nP|âdk?r|é|j7|Ô|Î ƒ })n0|é|× |ê|â  d |× d |â   |j7|Ô|Î ƒ })|j||j$|!ƒd6 |‚|  fƒ}|j||j$|!ƒd6 |„|  fƒ}|}×|}â|} |}|}|j|q|fƒ}q|}|j|q|fƒ}q|Ð|× |j7|Îƒ d }*|Ñ|â |j7|Ïƒ d }+|tI|)|Ôƒ|Ÿ d  },|tJ|)|Ô|$ƒ|Ÿ d  }-|tT|)|Ô|$ƒ|Ÿ d  }.tI|j8|d |d  |d  ƒ|× |ÎƒtI|‚| |øƒ|Ÿ d  }/tT|j8|d |d  |d  ƒ|× |Î|$ƒtT|‚| |ø|$ƒ|Ÿ d  }0tJ|j8|d |d  |d  ƒ|× |Î|$ƒtJ|‚| |ø|$ƒ|Ÿ d  }1tI|j8|]| d |d  |d  ƒ|â |0|Ï ƒ|] tI|„| |ûƒ|Ÿ d  }2tJ|j8|]| d |d  |d  ƒ|â |0|Ï |$ƒtJ|„| |û|$ƒ|Ÿ d  }3tT|j8|]| d |d  |d  ƒ|â |0|Ï |$ƒtT|„| |û|$ƒ|Ÿ d  }4|j8|,|/ d |-|1 d  |.|0 d  ƒ}×|j8|,|2 d |-|3 d  |.|4 d  ƒ}â|›dOkBrºd6}×|j8|/d |1d  |0d  ƒ|j7|jE|jF|,|-|.g|Ëƒ|jGjH|,|-|.gddU|jGjH|ËddU  ƒƒ d }5|j8|2d |3d  |4d  ƒ|j7|jE|jF|,|] |-|.g|Ëƒ|jGjH|,|] |-|.gddU|jGjH|ËddU  ƒƒ d }6|j|r||* |5 fƒ}r|j|r||+ |6 fƒ}r|j$|!ƒt3|/|, ƒ |! tK|,|/gƒ }7|,|-|.f}8|/|1|0f}9|/|,kDrb|8|9 }9}8tV|8|9|7ƒ}:|j$|!ƒt3|2|, ƒ |! tK|,|2gƒ };|,|-|.f}8|2|3|4f}9|2|,kDrê|8|9 }9}8tV|8|9|;ƒ}<|j$|!ƒ}ë|j|v|×|j8|d |d  |d  ƒ|×|ë |!  d  |j6|0d" |Î ƒ |Õ |– t3|j6|Ô|Î ƒƒd" |!  d6|j$|!ƒ  fƒ}v|j|v|â|j8|]| d |d  |d  ƒ|â|ë |!  d  |j6|0d" |Ï ƒ |Ö |– t3|j6|Ô|Ï ƒƒd" |!  d6|j$|!ƒ  fƒ}v|j|~|j*|:d d d d… ƒfƒ}~|jW|:d |/ d |:d |1 d  |7|0 d  ƒ}|jW|7|/ d |:d |1 d  |:d |0 d  ƒt!|:d ƒd kGrB|j|}|7|¡ |j7|­ƒ |j*|:d ƒ|j6|­ƒ  |¡ fƒ}}|j||7|¡ |j6|­ƒ |j*|:d ƒ|j7|­ƒ  fƒ}n¤|j|}|7d d d… |¡ |j7|­ƒ |j*|:d d d d … ƒ|j6|­ƒ  |¡ fƒ}}|j||7d d d!… |¡ |j6|­ƒ |j*|:d d d d"… ƒ|j7|­ƒ  fƒ}|j|~|j*|<d ƒfƒ}~|jW|;|2 d |<d |3 d  |<d |4 d  ƒt!|<d ƒd kHrÈ|j|}|;|¡ |j7|­ƒ |j*|<d ƒ|j6|­ƒ  |¡ fƒ}}|j||;|¡ |j6|­ƒ |j*|<d ƒ|j7|­ƒ  fƒ}n¤|j|}|;d d d#… |¡ |j7|­ƒ |j*|<d d d d$… ƒ|j6|­ƒ  |¡ fƒ}}|j||;d d d%… |¡ |j6|­ƒ |j*|<d d d d&… ƒ|j7|­ƒ  fƒ}|j|s|,|¡ |j7|­ƒ |.|j6|­ƒ  |¡ gfƒ}s|j|t|-gfƒ}t|j|u|,|¡ |j6|­ƒ |.|j7|­ƒ  gfƒ}u|j|d|/|¡ |j7|­ƒ |0|j6|­ƒ  |¡ gfƒ}d|j|f|/|¡ |j6|­ƒ |0|j7|­ƒ  gfƒ}f|j|e|1gfƒ}e|j|g|2|¡ |j7|­ƒ |4|j6|­ƒ  |¡ gfƒ}g|j|h|3gfƒ}h|j|i|2|¡ |j6|­ƒ |4|j7|­ƒ  gfƒ}i|j|w|j$d"|! ƒd6 fƒ}w|j|x|j$d"|! ƒd6 fƒ}x|j|y|j$d"|! ƒd6 fƒ}y|j|p| fƒ}p|j|€dd6|j$|!ƒ  fƒ}€|j|p|fƒ}p|j|€dd6|j$|!ƒ  fƒ}€-qÀW q:W t%t!|sƒƒt%|Sƒ }=d"|! |  }>|š|T|S  }U|U}?xÊt4|Sd ƒD ]¸}|U|T|d   }@|@}W|@|W ||j6|Wƒ  d ||j7|Wƒ   }XxFt3|Xƒd+kLrZ|W|X }W|@|W ||j6|Wƒ  d ||j7|Wƒ   }XLqW |j7|Wƒ| d ||j7|Wƒ   }Z|j8d ||  ƒ|j6|Wƒ d ||j7|Wƒ   }[|j9|[|Zƒ}A|Ad"|0 kLrÎd6}A|d |d   d ||j7|Aƒ   }]t3|?|@ ƒ}B|j*|st |d |= ƒ d … ƒ|¡ |j7|Bƒ |j*|ut |d |= ƒ d … ƒ|j6|Bƒ  |¡ }C|j*|st |d |= ƒ d … ƒ|¡ |j6|Bƒ |j*|ut |d |= ƒ d … ƒ|j7|Bƒ  }D|C|st |d |= ƒ d …< |D|ut |d |= ƒ d …< |dkPrÖ|j*|}t ||> ƒ d … ƒ|¡ |j7|Bƒ |j*|t ||> ƒ d … ƒ|j6|Bƒ  |¡ }E|j*|}t ||> ƒ d … ƒ|¡ |j6|Bƒ |j*|t ||> ƒ d … ƒ|j7|Bƒ  }F|E|}t ||> ƒ d …< |F|t ||> ƒ d …< |j*|dt ||= ƒ d … ƒ|¡ |j7|Bƒ |j*|ft ||= ƒ d … ƒ|j6|Bƒ  |¡ }G|j*|dt ||= ƒ d … ƒ|¡ |j6|Bƒ |j*|ft ||= ƒ d … ƒ|j7|Bƒ  }H|G|dt ||= ƒ d …< |H|ft ||= ƒ d …< |j*|gt ||= ƒ d … ƒ|¡ |j7|Bƒ |j*|it ||= ƒ d … ƒ|j6|Bƒ  |¡ }I|j*|gt ||= ƒ d … ƒ|¡ |j6|Bƒ |j*|it ||= ƒ d … ƒ|j7|Bƒ  }J|I|gt ||= ƒ d …< |J|it ||= ƒ d …< xŽt4t | ƒƒD ]|}K|K|j&| d" ƒkZr†de|] }L|}t |d |> d"|K d |!  ƒ d  }M|t |d |> d"|K d |!  ƒ d  }Nxt4dfƒD ]‚}Ot%|Oƒ|B dg }P|j*|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j7|Pƒ |j*|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|j6|Pƒ  |¡ }E|j*|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j6|Pƒ |j*|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|j7|Pƒ  }F|j8|Ed' |M d |Fd( |N d  ƒ|LkSrÈ|E|M |M|C|K   |M|Ed   |M }E|F|N |N|D|K   |N|Fd   |N }FP |j8|Ed) |M d |Fd* |N d  ƒ}LQqzW |E|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ …< |F|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ …< |j*|dt |d |= ƒ d … ƒ|¡ |j7|Pƒ |j*|ft |d |= ƒ d … ƒ|j6|Pƒ  |¡ }G|j*|dt |d |= ƒ d … ƒ|¡ |j6|Pƒ |j*|ft |d |= ƒ d … ƒ|j7|Pƒ  }H|G|dt |d |= ƒ d …< |H|ft |d |= ƒ d …< t |d |> d"|K d |!  ƒ dk Xr|j*|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j7|Bƒ |j*|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|j6|Bƒ  |¡ }E|j*|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j6|Bƒ |j*|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|j7|Bƒ  }F|E|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ …< |F|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ …< np|j*|}t |d |> d"|K d |!  ƒ d … ƒ|¡ |j7|Bƒ |j*|t |d |> d"|K d |!  ƒ d … ƒ|j6|Bƒ  |¡ }E|j*|}t |d |> d"|K d |!  ƒ d … ƒ|¡ |j6|Bƒ |j*|t |d |> d"|K d |!  ƒ d … ƒ|j7|Bƒ  }F|E|}t |d |> d"|K d |!  ƒ d …< |F|t |d |> d"|K d |!  ƒ d …< |j*|gt |d |= ƒ d … ƒ|¡ |j7|Bƒ |j*|it |d |= ƒ d … ƒ|j6|Bƒ  |¡ }I|j*|gt |d |= ƒ d … ƒ|¡ |j6|Bƒ |j*|it |d |= ƒ d … ƒ|j7|Bƒ  }J|I|gt |d |= ƒ d …< |J|it |d |= ƒ d …< Pqæde|] }L|}t |d |> d"|K d |!  ƒ d  }M|t |d |> d"|K d |!  ƒ d  }Nxt4dfƒD ]}Ot%|Oƒ|B dg }Pt |d |> d"|K d |!  ƒ dk \râ|j*|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j7|Pƒ |j*|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|j6|Pƒ  |¡ }E|j*|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j6|Pƒ |j*|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ … ƒ|j7|Pƒ  }Fn|j*|}t |d |> d"|K d |!  ƒ d … ƒ|¡ |j7|Pƒ |j*|t |d |> d"|K d |!  ƒ d … ƒ|j6|Pƒ  |¡ }E|j*|}t |d |> d"|K d |!  ƒ d … ƒ|¡ |j6|Pƒ |j*|t |d |> d"|K d |!  ƒ d … ƒ|j7|Pƒ  }F|j8|Ed+ |M d |Fd, |N d  ƒ|Lk^rÊ|E|Ed-  |Ed. |C|K   |Ed/ |Ed   |Ed0  }E|F|Fd1  |Fd2 |D|K   |Fd3 |Fd   |Fd4  }FP |j8|Ed5 |M d |Fd6 |N d  ƒ}LZqüW t |d |> d"|K d |!  ƒ dk _rÖ|E|}t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ …< |F|t |d |> d"|K d |!  ƒ t |d |> d"|K d |!  ƒ …< n`|E|}t |d |> d"|K d |!  ƒ d …< |F|t |d |> d"|K d |!  ƒ d …< |j*|gt |d |= ƒ d … ƒ|¡ |j7|Pƒ |j*|it |d |= ƒ d … ƒ|j6|Pƒ  |¡ }I|j*|gt |d |= ƒ d … ƒ|¡ |j6|Pƒ |j*|it |d |= ƒ d … ƒ|j7|Pƒ  }J|I|gt |d |= ƒ d …< |J|it |d |= ƒ d …< |j*|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j7|Bƒ |j*|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|j6|Bƒ  |¡ }E|j*|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|¡ |j6|Bƒ |j*|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ … ƒ|j7|Bƒ  }F|E|}t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ …< |F|t |d |> |K|! d  ƒ t |d |> d"|K d |!  ƒ …< |j*|dt |d |= ƒ d … ƒ|¡ |j7|Bƒ |j*|ft |d |= ƒ d … ƒ|j6|Bƒ  |¡ }G|j*|dt |d |= ƒ d … ƒ|¡ |j6|Bƒ |j*|ft |d |= ƒ d … ƒ|j7|Bƒ  }H|G|dt |d |= ƒ d …< |H|ft |d |= ƒ d …< PqæW |@}?t |d |> ƒ}QKqÌW |™|- }'|'dk dr¨d"|0 |' }'x~t4|QƒD ]n}tS|~|d   ||d   ƒ}$|jE|jF|}|d   |}|d  |    |~|d   |~|d  |    ||d   ||d  |    g|Ëƒ|jGjH|}|d   |}|d  |    |~|d   |~|d  |    ||d   ||d  |    gddU|jGjH|ËddU  ƒ}ÔtI||d   |Ôƒ|w|d  < tT||d   |Ô|$ƒ|y|d  < tJ||d   |Ô|$ƒ|x|d  < dq¶W ~t t!|sƒƒ}S|j|z|sfƒ}º|j|{|tfƒ}¶|j|||ufƒ}R|j|j|dfƒ}d|j|k|efƒ}e|j|l|ffƒ}f|j|m|gfƒ}g|j|n|hfƒ}h|j|o|ifƒ}i|^}]|j*|}t |Sd" |! |  ƒ d … ƒ}S|j*|}d t |Sd" |! |  ƒ … ƒ}T|j*|~t |Sd" |! |  ƒ d … ƒ}U|j*|~d t |Sd" |! |  ƒ … ƒ}V|j*|t |Sd" |! |  ƒ d … ƒ}W|j*|d t |Sd" |! |  ƒ … ƒ}X|j*|pt |Sd" |! |  ƒ d … ƒ}Y|j*|pd t |Sd" |! |  ƒ … ƒ}Z|j*|qt |Sd" |! |  ƒ d … ƒ}[|j*|qd t |Sd" |! |  ƒ … ƒ}\t t!|Tƒ|  ƒ}]|j|Tt tX| |] d ƒƒt tX| |] d ƒ|] ƒ… |Tt tX| |] dh d ƒƒt tX| |] dh d ƒ|] ƒ… fƒ}^|j|Xt tX| |] d ƒƒt tX| |] d ƒ|] ƒ… |Xt tX| |] dh d ƒƒt tX| |] dh d ƒ|] ƒ… fƒ}_|j|Zt tX| |] d ƒƒt tX| |] d ƒ|] ƒ… |Zt tX| |] dh d ƒƒt tX| |] dh d ƒ|] ƒ… fƒ}`t t!|Sƒ|S ƒ}]g }ag }bg }cx†t4|SƒD ]x}|j|a|St tX| d" |! d ||]  ƒƒt tX| d" |! d ||]  ƒd"|!  ƒ… fƒ}a|j|a|St tX| d" |! dh d ||]  ƒƒt tX| d" |! dh d ||]  ƒd"|!  ƒ… fƒ}a|j|b|Wt tX| d" |! d ||]  ƒƒt tX| d" |! d ||]  ƒd"|!  ƒ… fƒ}b|j|b|Wt tX| d" |! dh d ||]  ƒƒt tX| d" |! dh d ||]  ƒd"|!  ƒ… fƒ}b|j|c|Yt tX| d" |! d ||]  ƒƒt tX| d" |! d ||]  ƒd"|!  ƒ… fƒ}c|j|c|Yt tX| d" |! dh d ||]  ƒƒt tX| d" |! dh d ||]  ƒd"|!  ƒ… fƒ}ciqþW |j|^|afƒ}d|j|_|bfƒ}e|j|`|cfƒ}f|jYd7||] didj}g|jYd8||] didj}h|j$deƒ|jZt#|fƒƒ dZ }i|j[|d|] |e|] ƒ}jt\|j|d|] |e|] dkdl |j]dƒ |j^ƒ }k|kj_ƒ }l|j`|j|f|idm |lja|gƒ |lja|hƒ |j+|`|adndo |j+|b|cdndo |j+|`|a dndo |j+|b|c dndo |jbdpdq}m|mjcdrƒ |mjddt#|pƒƒ |j.dsƒ |j/dtƒ |jed9dƒ |jfd:dƒ |j0|#du t|)ƒ d* ƒ |j1ƒ  t t!|Tƒ|  ƒ}]|j|Td|]… |Tt tX| |] d/ ƒƒt tX| |] d/ ƒ|] ƒ… fƒ}^|j|Vd|]… |Vt tX| |] d/ ƒƒt tX| |] d/ ƒ|] ƒ… fƒ}n|j|Zd|]… |Zt tX| |] d/ ƒƒt tX| |] d/ ƒ|] ƒ… fƒ}`|j|\d|]… |\t tX| |] d/ ƒƒt tX| |] d/ ƒ|] ƒ… fƒ}ot t!|Sƒ|S ƒ}]g }ag }pg }cg }qx¶t4|SƒD ]¨}|j|a|St tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}a|j|a|St tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}a|j|p|Ut tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}p|j|p|Ut tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}p|j|c|Yt tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}c|j|c|Yt tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}c|j|q|[t tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}q|j|q|[t tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}qoqàW |j|^|afƒ}d|j|n|pfƒ}r|j|`|cfƒ}f|j|o|qfƒ}sdv}tx(t#|sƒ|t dk sr|tde }trqæW |jYd;||] didj}g|jYd<||] didj}h|jg|j$dwƒ|jZt#|sƒ|t ƒ|j&tK|sƒ|t ƒ  dx |j&tK|sƒ|t ƒ ƒ}i|j[|d|] |r|] ƒ}jt\|j|d|] |r|] dkdl |j]dƒ |j^ƒ }u|uj_ƒ }v|vja|hƒ |j`|j|s|t |idm |vja|gƒ |j+|`|adndo |j+|b|cdndo |j+|`|a dndo |j+|b|c dndo |jbdpdq}m|mjcdyt|tƒ dz ƒ |mjdtK|q|t ƒt#|q|t ƒƒ |j.d{ƒ |j/dtƒ |jed=dƒ |jfd>dƒ |j0|#d| t|)ƒ d* ƒ |j1ƒ  t t!|Sƒ|S ƒ}]g }ag }pg }cxt4|SƒD ] }|j|a|St tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}a|j|a|St tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}a|j|p|Ut tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}p|j|p|Ut tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}p|j|c|Yt tX||] ƒƒt tX||] ƒd"|!  ƒ… fƒ}c|j|c|Yt tX| d" |! d/ ||]  ƒƒt tX| d" |! d/ ||]  ƒd"|!  ƒ… fƒ}cuq8W |j|^|afƒ}d|j|n|pfƒ}r|j|`|cfƒ}f|jYd?||] didj}g|jYd@||] didj}h|j$deƒ|jZt#|fƒƒ dZ }i|j[|d|] |r|] ƒ}jt\|j|d|] |r|] dkdl |j]dƒ |j^ƒ }w|wj_ƒ }x|xja|hƒ |j`|j|f|idm |xja|gƒ |j+|`|adndo |j+|b|cdndo |j+|`|a dndo |j+|b|c dndo |jbdpdq}m|mjcdrƒ |mjddt#|pƒƒ |j.d{ƒ |j/dtƒ |jedAdƒ |jfdBdƒ |j0|#d} t|)ƒ d* ƒ |j1ƒ  |}|~||p|qd~œ}y|j>|y|#d t|)ƒ d€ ƒ t t!|}ƒƒ}zd|œ }{tKd‚|jZ|j8t#|ºƒtK|ºƒ d t#|¶ƒtK|¶ƒ d  t#|RƒtK|Rƒ d  ƒ|{ ƒgƒ}|tK|dƒ}}d_t#|gƒ }~tK|hƒ}d_t#|hƒ }€|j|j|}|] |~|] ||] fƒdCt t!|}ƒƒfƒj"}~}~~~||dd}‚||j|j|d|] |e|] |f|] fƒdDt t!|dƒƒfƒj"dd}ƒ||j|j|g|] |h|] |i|] fƒdEt t!|gƒƒfƒj"dd}„||j|j|º|] |¶|] |R|] fƒdFt t!|ºƒƒfƒj"dd}…~d~e~f~g~h~i|{|j7|'ƒ |j6|(ƒ }†|{|j7|(ƒ }‡|{ |j6|'ƒ |j6|(ƒ }ˆ|j*|†|‡|ˆgƒ|jGjH|j*|†|‡|ˆgƒƒ }‰g }Šg }‹xlt4|"ƒD ]`}|Šj)g ƒ |‹j)g ƒ t'|#dƒ t|)ƒ d„ t|ƒ d… dGƒ}Œ|Œj>d†ƒ |Œj1ƒ  {q–W t5dPƒ t5d‡ƒ t5dˆƒ t5d‡ƒ xtt4|zƒD ]d}t%|d  ƒda d6k|rxdbt|d ƒ dc t|zƒ dd }t5|ƒ ||df |] }||df |] }Ž||df |] }|p| }|q| }át3|v| ƒ}‘|w| |j7|'ƒ |j6|(ƒ |x| |j7|(ƒ  |y| |j6|(ƒ |j6|'ƒ  }’|j6|'ƒ| |j7|'ƒ|  }“|j7|'ƒ|j6|(ƒ | |j7|(ƒ|Ž  |j6|'ƒ|j6|(ƒ |  }”|j7|(ƒ |j7|'ƒ | |j6|(ƒ|Ž  |j7|(ƒ|j6|'ƒ |  }•|j6|'ƒ|d   |j7|'ƒ|  }–|j7|'ƒ|j6|(ƒ |d   |j7|(ƒ|Ž  |j6|'ƒ|j6|(ƒ |  }—|j7|(ƒ |j7|'ƒ |d   |j6|(ƒ|Ž  |j7|(ƒ|j6|'ƒ |  }˜d }™|”d6k ~rÖ|j8|•d |“d  ƒ|k ~rÖd6}™d }š|—d6k r|j8|˜d |–d  ƒ|k rd6}š|™|š d6k|r(|j@|B|’kƒd }›t!|›ƒdk|r(|‘d6k|r(|Š|›dG  j)|ƒ |‹|›dH  j)d%d‰|ád  dŠ|;d  d   |‘ d‹ ƒ |||||Ž||{|†|‡|ˆ|º|¶|R|]|€|p|r|||||||4|5|2|3|‰|;|”|•|“|—|˜|–|ƒ|„|‚|…|}|~||€ƒ)}œt'|#dƒ t|)ƒ d„ t|›dI ƒ d… dŒƒ}Œ|Œj>dTjhtit|œƒƒd ƒ |Œj1ƒ  |q(W |›dOk€rºt'|#dŽ t|)ƒ d dGƒ}nt'|#dŽ t|)ƒ d… dGƒ}|j>dƒ t'|#d‘ t|)ƒ d… dGƒ}ž|žj>d’ƒ t'|#d“ t|)ƒ d… dGƒ}Ÿ|Ÿj>d”ƒ |Ÿj>d•ƒ x|t4|"ƒD ]p}|Ÿj>dTjhtit|Š| ƒƒd ƒ |žj>dTjhtit|‹| ƒƒd ƒ |j>t|B|  d‚ ƒd ƒ qHW |Ÿj1ƒ  |žj1ƒ  |j1ƒ  |­|›gS (J  Nr   )ÚKDTree)Úfsolve)Úinterp1d)r?   )ÚAxes3D)Úascii)ÚRTi'  z$/cooling_functions/cooling_function_z.tabT)Zdropr   r   r   iè  )Úleafsizeg®Gáz®ï?gÍÌÌÌÌÌô?ÚMsunÚRsunÚmpÚGg     @@Úkbg¤p=
×Óv@g     õ@g      @r   rE   g      ð?)Údtypeg       @z#depthghÉh÷Æ!w>gQ²@³-(;Úlogzlambda(T) (10^-23 erg cm^3/s)zTemperature (keV)z/cooling_func_z.pdfg:Œ0âŽyE>z/ionisation_fraction.tabú#g×£p=
×ã?g      à?g    „×—Ag\Âõ(\ó?g333333Ã?z3X-ray emission can be created only in the shock capé   gú~j¼t“h?g        é(   c             s   s   | ]
}g V  qd S )Nr!   )Ú.0Ú_r!   r!   r"   ú	<genexpr>  s    zrshock.<locals>.<genexpr>é   c             s   s   | ]
}g V  qd S )Nr!   )r±   r²   r!   r!   r"   r³     s    c             s   s   | ]
}g V  qd S )Nr!   )r±   r²   r!   r!   r"   r³     s    é   c             s   s   | ]
}g V  qd S )Nr!   )r±   r²   r!   r!   r"   r³     s    é   c             s   s   | ]
}g V  qd S )Nr!   )r±   r²   r!   r!   r"   r³     s    é   g     €v@g     €f@Úno)r/   z/histograms/xstag_parrA   z cm
z R1
z d
r   r   r   r   r0   Ú zCrashing windg-Cëâ6?g     @@ú )rŽ   éÈ   g      .@g      €@g    ÐcAg      "@g      D@göJáÇ-µDÚcubic)ÚkindÚassume_sortedgš™™™™™ñ?gffffffæ?g      Y@z* ú/z *g      $@éd   g     ÀX@g      @Úwhite)Úcolorg333333Ó?)r“   )ÚlevelsÚblack)Úcz%.2f)ÚformatzTemperature [keV]zz/Dzx/Dz/plots/temperature_xz_parg‚vIhÂ%<=g      4@g      3@z	Density [z g/cm^3]zy/Dz/plots/density_parz/plots/temperature_xy_par)r   r   r   rb   Úrhoz/plots/char_shock_parz.datgš™™™™™©?g     jø@z/histograms/ray_tracing_parZ_binz.dataz# Temperature / Factor
z***********zRay tracingg¸…ëQ¸ò?gq=
×£põ?g„þäqÙ‰EÚaÚ
z/histograms/bin_parz_crashing.dataz# Tangential velocity (km/s)
z /histograms/emiss_part_shock_parz:# Part of the emissivity which depends only on the shock.
z/histograms/temp_emiss_parz9# Temperature of the cell where the emission is created.
z*# Each line of a bin of the line profile.
rF   rF   g    H~Ag    H~Agš™™™™™ñ?gú~j¼t“x?rF   rF   rF   rF   rF   rF   rF   rF   gR¸…ëÑ!@rF   rF   rF   gR¸…ëÑ!@rF   rF   rF   g      ð¿g      ð¿rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   éþÿÿÿrF   rÊ   rF   rÊ   rF   rÊ   rF   rÊ   rF   rÊ   rF   rF   rF   rÊ   rF   rÊ   rF   rÊ   rF   rÊ   rF   rÊ   rF   rÊ   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   rF   )r   r   )r   r   rF   rÊ   )r   r   )r   r   rF   rÊ   )r   r   )r   r   rF   rÊ   rF   rF   rF   rF   rF   rF   rF   )jZscipy.spatialr    Zscipy.optimizer¡   Úscipy.interpolater¢   r   r$   rI   r?   Úmatplotlib.pyplotÚpyplotÚmatplotlib.triÚtriZmpl_toolkits.mplot3dr£   Ú
matplotlibrJ   ZpandasÚsysZ
astropy.ior¤   Z
raytracingr¥   Úsetrecursionlimitr*   ÚstrZread_hdfZreset_indexÚreshapeÚconcatenater   rT   rU   ÚTrS   r_   Úfloatra   rL   ÚsplitrX   rV   ÚplotÚyscaleÚxscaleÚylabelÚxlabelÚsavefigrN   Útanr]   rW   Úprintr)   r2   r
   Úatan2ÚatanÚlinspacer   r(   rM   r	   rQ   Únanminr#   r€   ÚsignÚarccosÚdotÚlinalgÚnormrˆ   r‹   rR   r}   ÚcumsumÚmeanr~   r=   Ú
isinstanceÚasinr…   rŒ   ÚacosrŸ   r\   ÚroundÚCircleÚceilÚTriangulationr”   ÚfigureÚgcfÚgcaÚtricontourfÚ
add_artistÚcolorbarÚ	set_labelÚset_climÚxlimÚylimÚsortÚjoinÚmap(   Úliste_paramr    r¡   r¢   r   r$   r?   ÚpltrÏ   r£   rÐ   rJ   ÚpdrÑ   r¤   r¥   r   r   Úvinf1Úvinf2Ú
mass_ratioÚexÚomegarÈ   Úperr   r   Úbeta1Úbeta2ZTeff_1ZTeff_2Únbr_points_shock_2DÚnbr_points_shock_3DZnstep_widthÚnbr_bin_profilere   Úcut_limÚ	wind_primÚwind_secÚphaseÚinclÚiparrh   r{   rÖ   ÚM_conjÚatomÚionr*   Zfcoolr   r   r   r   r6   ZSumXzZXhr|   r§   r¨   r©   Úgravr«   Úmass_sumÚM2Úvmaxr†   Zvvvrd   rc   ÚfÚlineÚline2ZthetainfÚasympZdeltafZ
deltathetarf   ZZ_ionrg   ÚfionZlignert   ZjionZnbr_balZstep_balZ	debut_balÚMÚEÚdEZT2ÚcoiÚsiiZphase2r   Zd_vouluZouverture_minZxstar1Zystar1Zxstar2Zystar2Zx_cdw1Zy_cdw1Zz_cdw1Zx_cdw2Zy_cdw2Zz_cdw2Zx_cdw1gZy_cdw1gZz_cdw1gZx_cdw2gZy_cdw2gZz_cdw2gZkT_allZrho_allZ	sigma_allZx_cdZy_cdZz_cdZvol_cdZvx_cdZvy_cdZvz_cdZx_skewZy_skewZz_skewZxx_allZyy_allZzz_allZcote_cdZvt_vecZvt1_vecZvp1_vecZvt2_vecZvp2_vecZy_cdw1g1_allZy_cdw2g1_allZy_cdw1g1a_allZy_cdw2g1a_allZx_cdw1g1_allZx_cdw2g1_allZx_cdw1g1a_allZx_cdw2g1a_allZvol_cdoZkT_alloZrho_alloZvt1_vecoZvt2_vecoZ
sigma_alloZM_oldZphi_vecÚdphiZdzeta_o_vecZy_o_vecZM_vouluZphase_voulur9   ÚlmaxZibalZT1ZTelapsÚvorbZCMr4   Zfxstagr   r   r   r   r   r   r   r    r   ÚskewZ	theta_vecZ
theta1_vecZThetaCotThetaÚpointZthe1_vecZ	pointhererk   Zr_testr5   Zind_halfZx_oldr7   Zx_vecZeta_vecZ	y_vechereÚr1Úr2r'   ZpenteZr_vecÚ	sin_thetaÚ	cos_thetarƒ   r‚   r„   Z	slope_vecÚfirstZ
delta1_vecZind_cutÚxaxisZcutZRprimeZthetahZ	the1_vechZr1_vechZr2_vechZthetahm1Zthe1_vechm1Z
slope_vechÚdthetaZdthe1Zl0_1Zl1_widthZl0Zdwind_prim_chocZil0ÚxhZyhÚvZkT0rl   rÇ   Zl0_2Zl2_widthZdwind_sec_chocZrl1Zl011Zrl2Zl022r%   r&   ZincreasevolZx_cdw1g1Zy_cdw1g1Zx_cdw2g1Zy_cdw2g1Z	x_cdw1g1aZ	y_cdw1g1aZ	x_cdw2g1aZ	y_cdw2g1aZvt1Zvt2Z	x_cdw1g11Z	y_cdw1g11Zslope_vec1_endZ	x_cdw2g11Z	y_cdw2g11Zslope_vec2_endZvp1Zvp2ZkT0_1Z	l_1_widthZkT1Zrho1_vecZrho0ZkT_widthÚconstÚtestrž   ZwheretoZconst3Zconst2ZdrhoZkT0_2Z	l_2_widthZkT2Zrho2_vecZisigmar:   ZkT1_endZrho1_vec_endZkT2_endZrho2_vec_endZv1_endZv2_endZl0_1_endZl0_2_endZ
sigma1_endZ
sigma2_endZicutÚsentenceZxcutZycutZzcutZz_cdw1g1Zz_cdw2g1Z	z_cdw1g1aZ	z_cdw2g1aÚlatZx_cutm1Zy_cutm1Zz_cutm1r‡   Zvt1cdZsurf11Zsurf21Zx_cd1Zy_cd1Zz_cd1Zx_cdw11Zz_cdw11Zy_cdw11Zx_cdw21Zy_cdw21Zz_cdw21Zsurf12Zsurf22Zzint1Zparam1Zparam2Zxyint1Zzint2Zxyint2ZstepcdZstepallZMoldZMhZphasehZangle_to_turnZx_cdnZz_cdnZxx_allnZzz_allnZx_cdw1nZz_cdw1nZx_cdw2nZz_cdw2nZiligneÚdistanceZxx_alln_oldZzz_alln_oldZiangleZ	anglehereZfinZz_vecZx_balZx_capZy_balZy_capZz_balZz_capZkT_balZkT_capZrho_balZrho_capZ	nbr_layerZx_cap_layerZz_cap_layerZkT_cap_layerZx_bal_layerZz_bal_layerZkT_bal_layerZx_layerZz_layerZkT_layerZcircle1Zcircle2rÃ   Ztriang2ÚfigÚaxÚcbarZy_cap_layerZrho_cap_layerZy_bal_layerZrho_bal_layerZy_layerZ	rho_layerÚfactorZfig2Úax2Zfig3Zax3ÚtableZ
nbr_pt_totZdeltaZZZndeltaZZÚxmin1Zxmax2Úymin1Zymax2Zensemble_pointsÚtreeZtreecdw1Ztreecdw2ZtreevecZdeltaXZdeltaYZdeltaZZdir_obsZ
temp_emissZemiss_part1ZfRTÚxxr+   rq   rb   ZvolZvradÚyt1Zzt1Zpt1Úyt2Zzt2Zpt2Zvis1Zvis2Zind_vradZray_tracingZfbinZfhistoZftempr!   r!   r"   ÚrshockŒ  sô   

D
VV$0

"



"


6(. ."00"(. ."0
*(

**(

*
&
(


8

 
F

.NZ"
^j~
*
.

0(

0&(R&6*
.

 *(

*
*(V&6
0(

0
 0(

0

RR
NN,
",,:
*60,
",,:
*60
^"*z"2
:8 4

HD4040.V$h*d.V
$h*d.V$Vb
–&**
ž&**2228
<(&&J( $( $nVJV$(

0""  HPPTXX66
z‚00
„ˆ&@R<:TPR<:TP404040(*0 .$fb
^Z^Z^Z
00ÆÂ:66:NNfb,ÎÊRVŠ†00fb"
00,ÎÎŠ†:NN:,RT00fbÆÂNNfb$
 æ"(&&&&&&&&&&€€€dldldr 



PPPPDdDdDdDjX

"

DdDdDj 




\

6>>@6*&

R"FH&JL,,>Š0
$$&


rD  N)r   )Ú__doc__r#   r(   r-   r=   r}   r~   r   r…   rˆ   r‹   rŒ   r”   rŸ   rD  r!   r!   r!   r"   Ú<module>6   s   n+==
