a
    `Qb                     @   s*  d dl Zd dlZd dl mZ d dlZd dlZd dlZd dl	m
Z d dlmZ d dlZejZdej Zdej Zdejd  ej Zdej Zdej ejd  Zd	ej ej ej Zd
ej ej Zdej ej Z dejd  ej Z!dZ"dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd Z)dS )    N)functiongfffffq@g     @gư>   giUMu>gQ#@gT㥛Ġ @g @OiR2Cg     LAgh㈵>   i c           	      C   sB   t | D ]4\}}||k r"|||< q||k r4|||< q|||< q|S N)	enumerate)	depthcrustDensitymantleDensitycrustThicknessrho
arcDensityarcThicknessindexy r   \/scratch/m18/ac9890/paper2/Production_Models_correctedTIme/High_ero_/MechanicalProperties.pydensity_defArc   s    


r   c           
      C   sN   |dkrt | ||||||}n,t| D ]"\}}	|	|k r@|||< q&|||< q&|S )NT)r   r   )
r   r   r	   r
   r   arcr   r   r   r   r   r   r   density_def(   s    

r   c                 C   s   t tt|  t|   S )zD Arrhenius viscosity assuming absolute temperature T and pressure P )npexpEVR)TPr   r   r   	arrhenius4   s    r   c                 C   s4   | dt |t   j}ttt  j}|t| S )Nr   )r   sqrtkappa	magnitudeTsurfTintspecialerf)r   agetermZterm1r   r   r   half_space_cooling;   s    r&   c                 C   s0   |  dtt  |tj  t }t|jtjS )N	kilometer)tor!   r    ur'   r   minimumr   )r   plateThicknesslinearr   r   r   linear_geothermA   s     r-   c	                 C   s   t t| tj }	t t| tj }
t| D ]r\}}||k rn||||   |	|< || |||   |
|< q0||k r0||||   |	|< || |||   |
|< q0|	|
fS r   )r   zeroslenr)   
megapascalr   )r   r
   r+   	cohesionCcohesionLitfriction	friction2pressurecohesionFactoryieldStrengthyieldStrength2r   r   r   r   r   yeildStrengthE   s    r9   c           3      C   s  |d t j }d}tdd|d t j }d}||  }tg }d}td| d D ]}t||g}|| }qRt||gd t j }|t j }|t j }|t j	 t jd  }|t j	 t jd  }|t j	 t jd  }|t j }t
|t j	 t jd  }t||||||||}|d	kr.t| | }n
t||}|t j }|t }||| t  }|t | }|t j }|t j }t||||||	|
||	d }t||||||	|
||	d }d
t j }|t | }t} t| |}!|tt  t }"tjt|||! dtd}#g }$g }%g }&g }'g }(g })g }*g }+g },d}-t|D ]\}}.|.dt j krP qt|j|.jkd d }/||/ jdkr|$t|dj|-|/  |%t||-|/  |&t||-|/ j|d j |"j  |'t|dj|-|/  |(t|#j|-|/  |)t|dj|-|/  |*t|dj|-|/  |+t|dj|-|/  |,t|dj|-|/  |/}-g }0g }1|&D ]}|0||"j |j  qt|(D ]\}}2|1|2d  q̐q0|&|(|0|1|)|+|*|,|||#||||||g	f	S )Ni@B    r   g     @o@i  g           r   Tg     j@)a_mina_maxkmZMPag@xD)r)   yearr   linspacemeterarrayrangeappendr'   kilogramonesr   r&   to_base_unitsr-   kelvinr    alphagravr0   r9   r!   r   clipmax_viscosityr   wherer   averager(   min)3ZNlayersr
   r   r	   r+   Zoceanicr$   r1   r2   r3   r4   r   r   r   ZdepthToMantler6   resr   ZmDeppropZlayersZdepAcir   temperatureZdeltaTdensityr5   r7   r8   Z	ref_depthZref_pressureZref_tempref_viscosityZref_density	viscosityZ	avg_depthZavg_tempZavg_densityZavg_pressureZavg_viscosityZavg_strengthZlow_strengthZavg_strength2Zlow_strength2Z	prevIndex	interfacer   Z	densitiesviscositiesvisr   r   r   PlatePropertiesQ   s    











 *     r[   )*
underworlduwmathr   fnnumpyr   scipyosmatplotlib.pyplotpyplotZpyplscipy.specialr"   UWGeodynamicsGEOUnitRegistryr)   degKr    r!   rB   secondr   rI   rJ   rK   jouleZmolr   pascalAr   r   rM   r   r   r   r&   r-   r9   r[   r   r   r   r   <module>   s4   



