Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import ipywidgets as widgets
- import warnings
- warnings.filterwarnings('ignore')
- from ipywidgets import widgets, Output
- from IPython.display import display
- from IPython.html.widgets import *
- from IPython.display import clear_output
- #366 for 0.1 (HR) ,1,50,1200
- #158 for 2 (HR) ,1,50,1200
- #values
- '''
- Defining constants
- '''
- D0= 20 #[micron]
- K0= 10**10
- n= 0.5
- Q= 221000
- R = 8.314
- HR= 2 #input. vary 0.1 - 2.0
- CR= 1 #input
- t_iso = 50 #input
- T_isoC = 1200 #input. vary 900-1400 [Celsius]
- '''
- Creating sliders
- '''
- T_slider = widgets.IntSlider(
- value=573,
- min = 273,
- max = 1273,
- step = 5,
- description='Temp[K]',
- continous_update = False)
- CR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'CR[K/s]',
- continous_update = False)
- HR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'HR[K/s]',
- continous_update = False)
- t_slider = widgets.IntSlider(
- value=50,
- min = 1,
- max = 100,
- step = 1,
- description=r't$_{iso}$[s]',
- continous_update = False)
- def funk1(HR, CR, t_iso, T_isoC):
- delta_T = T_iso - 298.15
- delta_t = delta_T/(100*HR) #100 steps with equal length for heating
- dirta_t = delta_T/(100*CR) #100 steps with equal length for cooling
- sum_before_iso = 0 #Eventually the integral from 0 to t_1
- sum_after_iso = -np.exp(-Q/(R*T_iso))*dirta_t #Eventually the integral from t_2 to t_3
- for i in range(0,101):
- T_before = 298.15 + HR*delta_t*i
- sum_i = np.exp(-Q/(R*T_before))*delta_t - np.exp(-Q/(R*298.15))*delta_t
- sum_before_iso += sum_i
- T_after = T_iso - CR*dirta_t*i
- Sum_i = np.exp(-Q/(R*T_after))*dirta_t - np.exp(-Q/(R*298.15))*delta_t
- sum_after_iso += Sum_i
- a = D0
- b = K0*sum_before_iso
- c = K0*t_iso*(np.exp(-Q/(R*T_iso)) - np.exp(-Q/(R*298.15)))
- d = K0*sum_after_iso
- D = (a**(1/n)+b+c+d)**n
- print(a,b,c,d)
- print(D)
- def sub_task_chooser(sub):
- T_iso = T_isoC + 273.15 #[Kelvin]
- delta_T = T_iso - 298.15
- delta_t = delta_T/(100*HR) #100 steps with equal length for heating
- dirta_t = delta_T/(100*CR) #100 steps with equal length for cooling
- if sub == 1:###HR
- #HR = input('k')
- dirta_t = delta_T/(100*CR)
- T_slider = widgets.IntSlider(
- value=900,
- min = 900,
- max = 1400,
- step = 5,
- description=r'T$_{iso}$[K]',
- continous_update = False)
- CR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'CR[K/s]',
- continous_update = False)
- t_slider = widgets.IntSlider(
- value=50,
- min = 1,
- max = 100,
- step = 1,
- description=r't$_{iso}$[s]',
- continous_update = False)
- return T_slider, CR_slider, t_slider
- elif sub == 2:###CR
- #CR = input('Choose CR')
- #delta_t= delta_T/(100*HR)
- T_slider = widgets.IntSlider(
- value=900,
- min = 900,
- max = 1400,
- step = 5,
- description=r'T$_{iso}$[K]',
- continous_update = False)
- HR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'HR[K/s]',
- continous_update = False)
- t_slider = widgets.IntSlider(
- value=50,
- min = 1,
- max = 100,
- step = 1,
- description=r't$_{iso}$[s]',
- continous_update = False)
- return T_slider, HR_slider, t_slider
- elif sub == 3:###T_iso
- #delta_t= delta_T/(100*HR)
- #dirta_t = delta_T/(100*CR)
- CR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'CR[K/s]',
- continous_update = False)
- HR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'HR[K/s]',
- continous_update = False)
- t_slider = widgets.IntSlider(
- value=50,
- min = 1,
- max = 100,
- step = 1,
- description=r't$_{iso}$[s]',
- continous_update = False)
- return CR_slider, HR_slider, t_slider
- elif sub == 4:###t_iso
- T_slider = widgets.IntSlider(
- value=900,
- min = 900,
- max = 1400,
- step = 5,
- description=r'T$_{iso}$[K]',
- continous_update = False)
- CR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'CR[K/s]',
- continous_update = False)
- HR_slider = widgets.FloatSlider(
- value=0.1,
- min = 0.1,
- max = 2,
- step = 0.019,
- description=r'HR[K/s]',
- continous_update = False)
- #delta_t= delta_T/(100*HR)
- #dirta_t = delta_T/(100*CR)
- return T_slider, CR_slider, HR_slider
- sub_menu = widgets.ToggleButtons(
- # {'names':corresponding values,}
- options={'HR':1, 'CR':2, 'T_iso':3, 't_iso':4},
- value = 1, #default value
- description='Input parameter:', #name
- button_style='info', #blue buttons
- )
- def f(T):
- return T
- interact(sub_task_chooser, sub=sub_menu)
- interact(f, T=CR_slider)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement