Skip to content
Snippets Groups Projects
Commit edf4af17 authored by Rolfes's avatar Rolfes
Browse files

Infos in tab

parent ec86a8ea
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id:28ffafab-45ee-4719-917f-0cb2bacb4915 tags: %% Cell type:code id:28ffafab-45ee-4719-917f-0cb2bacb4915 tags:
``` python ``` python
import markdown import markdown
import ipywidgets as widgets import ipywidgets as widgets
import nowo1_base as no_ba import nowo1_base as no_ba
import nowo1_sim_binary as no_bi import nowo1_sim_binary as no_bi
import nowo1_gui_base as no_gui import nowo1_gui_base as no_gui
import nowo1_log_base as no_log import nowo1_log_base as no_log
``` ```
%% Cell type:markdown id:valued-saskatchewan tags: %% Cell type:markdown id:valued-saskatchewan tags:
### Bilanzsystem -Kristallisation- ### Bilanzsystem -Kristallisation-
%% Cell type:code id:a0497a7a-9f3a-4566-a880-48e123028b37 tags: %% Cell type:code id:a0497a7a-9f3a-4566-a880-48e123028b37 tags:
``` python ``` python
html_infos_nodes = ''' html_info_node_1 = '''
<hr>
<p><strong>Knoten_1: Solvat und Solvent -Eintritt-</strong></p> <p>Knoten_1: Solvat und Solvent -Eintritt-</p>
<ul style = "margin : 0; padding = 0" > <ul style = "margin : 0; padding = 0" >
<li style = "margin : 0" >C: Eintritt (Feed) eines Kristallisators, bestehend aus Solvat (Salz) und Solvent (Lösungsmittel). Der Eintritt wird hier als <strong>konstant</strong> angesehen</li> <li style = "margin : 0" >C: Eintritt (Feed) eines Kristallisators, bestehend aus Solvat (Salz) und Solvent (Lösungsmittel). Der Eintritt wird hier als <strong>konstant</strong> angesehen</li>
<li style = "margin : 0" >A: Solvat gelöstes und / oder kristallines Solvat. Die Masse ist konstant, aber die Zusammensetzung zwischen kristallines und gelöstes Solvat kann sich ändern. Hängt von einer Temperaturänderung und / oder einer Mengenänderung des Solvents ab (Passieren der Löslichkeitsgrenze)</li> <li style = "margin : 0" >A: Solvat gelöstes und / oder kristallines Solvat. Die Masse ist konstant, aber die Zusammensetzung zwischen kristallines und gelöstes Solvat kann sich ändern. Hängt von einer Temperaturänderung und / oder einer Mengenänderung des Solvents ab (Passieren der Löslichkeitsgrenze)</li>
<li>B: Solventmasse reines Lösungsmittel. Wird hier als <strong>konstant</strong> angesehen.</li> <li>B: Solventmasse reines Lösungsmittel. Wird hier als <strong>konstant</strong> angesehen.</li>
</ul> </ul>
<hr> '''
html_info_node_2 = '''
<p><strong>Knoten_2: Solvat</strong></p> <p><strong>Knoten_2: Solvat</strong></p>
<ul> <ul style = "margin : 0; padding = 0" >
<li>C: = Knoten_1.A</li> <li>C: = Knoten_1.A</li>
<li>A: Kristallines Solvat. Die Menge kann sich ändern. </li> <li>A: Kristallines Solvat. Die Menge kann sich ändern. </li>
<li>B: gelöstestes Solvat. Die Menge kann sich ändern.</li> <li>B: gelöstestes Solvat. Die Menge kann sich ändern.</li>
</ul> </ul>
<hr> '''
html_info_node_3 = '''
<p><strong>Knoten_3: Solvat und Solvent auf der Löslichkeitskurve</strong></p> <p><strong>Knoten_3: Solvat und Solvent auf der Löslichkeitskurve</strong></p>
<ul> <ul style = "margin : 0; padding = 0" >
<li>C: Solvat- und Solventmasse geättigt (Punkt auf Löslichkeitskurve).</li> <li>C: Solvat- und Solventmasse geättigt (Punkt auf Löslichkeitskurve).</li>
<li>A: Solvent nach einer möglichen Massenänderung </li> <li>A: Solvent nach einer möglichen Massenänderung </li>
<li>B: = Knoten_2.B</li> <li>B: = Knoten_2.B</li>
</ul> </ul>
<hr> '''
html_info_node_4 = '''
<p><strong>Knoten_4: Solvent -Austritt-</strong></p> <p><strong>Knoten_4: Solvent -Austritt-</strong></p>
<ul> <ul style = "margin : 0; padding = 0" >
<li>C: = Knoten_1.B</li> <li>C: = Knoten_1.B</li>
<li>A: Veränderte Solventmasse </li> <li>A: Veränderte Solventmasse </li>
<li>B: = Abgeführte Solventmasse (Dampf) </li> <li>B: = Abgeführte Solventmasse (Dampf) </li>
</ul> </ul>
<hr> '''
html_info_node_5 = '''
<p><strong>Knoten_5: Solvat und Solvent -Austritt-</strong></p> <p><strong>Knoten_5: Solvat und Solvent -Austritt-</strong></p>
<ul> <ul style = "margin : 0; padding = 0" >
<li>C: Solvent und Solvat (gelöstes und kristallines)</li> <li>C: Solvent und Solvat (gelöstes und kristallines)</li>
<li>A: = Knoten_3.C </li> <li>A: = Knoten_3.C </li>
<li>B: = Knoten_2.A </li> <li>B: = Knoten_2.A </li>
</ul> </ul>
''' '''
infos_nodes = widgets.HTML(html_infos_nodes) infos_node_1 = widgets.HTML(html_info_node_1)
infos_node_2 = widgets.HTML(html_info_node_2)
infos_node_3 = widgets.HTML(html_info_node_3)
infos_node_4 = widgets.HTML(html_info_node_4)
infos_node_5 = widgets.HTML(html_info_node_5)
``` ```
%% Cell type:code id:a38cffbc-42c9-4c39-823f-00f81c99fc8c tags:
``` python
tab_contents = ['Knoten 1', 'Knoten 2', 'Knoten 3', 'Knoten 4', 'Knoten 5']
tab = widgets.Tab(children =[infos_node_1, infos_node_2, infos_node_3, infos_node_4, infos_node_5])
i = 0
for name in tab_contents:
tab.set_title(i, name)
i += 1
```
%% Output
%% Cell type:code id:305dd061-c441-491c-8b92-8a5c54d739ad tags: %% Cell type:code id:305dd061-c441-491c-8b92-8a5c54d739ad tags:
``` python ``` python
html_aufgabe_totesmeer = markdown.markdown(r''' html_aufgabe_totesmeer = markdown.markdown(r'''
Im Meerwasser des Toten Meer gibt es Mineralien in hochkonzentrierter Form, durchschnittlich ca. <b>28% (Massenbeladung)</b> Salz. Im Meerwasser des Toten Meer gibt es Mineralien in hochkonzentrierter Form, durchschnittlich ca. <b>28% (Massenbeladung)</b> Salz.
Das Salz setzt sich zusammen aus Das Salz setzt sich zusammen aus
Magnesiumchlorid, Calciumchlorid, Natriumchlorid, Kaliumchlorid und Spurenelemente, bezogen auf die wasserfreien Salze. Magnesiumchlorid, Calciumchlorid, Natriumchlorid, Kaliumchlorid und Spurenelemente, bezogen auf die wasserfreien Salze.
Totes Meer Salz, wird durch die ständige Verdunstung des Wassers, das Wasser hat eine min. Temperatur von <b>20°C</b>, in sogenannten Salzgärten gewonnen. Totes Meer Salz, wird durch die ständige Verdunstung des Wassers, das Wasser hat eine min. Temperatur von <b>20°C</b>, in sogenannten Salzgärten gewonnen.
Die Salzgärten sind großflächig, künstlich angelegte Sammel Becken, indem das Wasser verdunstet und reines Salz zurück bleibt. Die Salzgärten sind großflächig, künstlich angelegte Sammel Becken, indem das Wasser verdunstet und reines Salz zurück bleibt.
#### Aufgabe: #### Aufgabe:
Wieviel Wasser des toten Meeres, bezogen auf $\pmb{10.0\ \text{kg} \cdot \text{s}^{-1}}$ <b>Meerwasser </b>, muss man verdampfen, um <b>20% (Massenanteil)</b> des gelösten Salzes als kristallines Salz zu gewinnen? Wieviel Wasser des toten Meeres, bezogen auf $\pmb{10.0\ \text{kg} \cdot \text{s}^{-1}}$ <b>Meerwasser </b>, muss man verdampfen, um <b>20% (Massenanteil)</b> des gelösten Salzes als kristallines Salz zu gewinnen?
#### Vereinfachung: #### Vereinfachung:
* Das gesamte Salz wird als $NaCl$ angenommen * Das gesamte Salz wird als $NaCl$ angenommen
* Die Temperatur bleibt konstant * Die Temperatur bleibt konstant
* Die Löslichkeit (Beladung) von $NaCl$ bei 20°C beträgt $\pmb{0.36\ \text{kg/kg}}$ (aus Diagramm) * Die Löslichkeit (Beladung) von $NaCl$ bei 20°C beträgt $\pmb{0.36\ \text{kg/kg}}$ (aus Diagramm)
''') ''')
aufgabe_totesmeer = widgets.HTMLMath(html_aufgabe_totesmeer) aufgabe_totesmeer = widgets.HTMLMath(html_aufgabe_totesmeer)
``` ```
%% Cell type:code id:0b6c3312-1d1d-4b6c-8e8c-ea62057b8b3a tags: %% Cell type:code id:0b6c3312-1d1d-4b6c-8e8c-ea62057b8b3a tags:
``` python ``` python
accordion = widgets.Accordion(children=[aufgabe_totesmeer, infos_nodes accordion = widgets.Accordion(children=[aufgabe_totesmeer, tab
], selected_index=None) ], selected_index=None)
accordion.set_title(1, 'Informationen zu den Bilanzknoten') accordion.set_title(1, 'Informationen zu den Bilanzknoten')
accordion.set_title(0, 'Übungsaufgabe') accordion.set_title(0, 'Übungsaufgabe')
accordion accordion
``` ```
%% Cell type:code id:a5792526-053c-448a-9e57-7dc25bd86a6f tags: %% Cell type:code id:a5792526-053c-448a-9e57-7dc25bd86a6f tags:
``` python ``` python
file = open("pics/Knotenmodell_Kristallisation_Vers_1.svg", "rb") file = open("pics/Knotenmodell_Kristallisation_Vers_1.svg", "rb")
image_2 = file.read() image_2 = file.read()
crystal_image = widgets.Image( crystal_image = widgets.Image(
value=image_2, value=image_2,
format='svg+xml', format='svg+xml',
width = '380px' width = '420px'
) )
#crystal_image.layout.object_fit = 'scale-down' #crystal_image.layout.object_fit = 'scale-down'
#crystal_image.layout.margin = 'image_margin' #crystal_image.layout.margin = 'image_margin'
``` ```
%% Cell type:code id:eec838fd-a5a9-49c8-a873-07c0e3653622 tags: %% Cell type:code id:eec838fd-a5a9-49c8-a873-07c0e3653622 tags:
``` python ``` python
bilanz_1 = no_bi.binary_node('bilanz_1', init_methode = 'gui') # Umgebungs bilanz_1 = no_bi.binary_node('bilanz_1', init_methode = 'gui') # Umgebungs
step = no_ba.step_single('step') step = no_ba.step_single('step')
gui_data = no_gui.gui_ipysheet('gui_data') gui_data = no_gui.gui_ipysheet('gui_data')
log = no_log.log_sheet('log') log = no_log.log_sheet('log')
``` ```
%% Cell type:code id:7209ba84-1e31-4d7e-b205-eb3b822fba13 tags: %% Cell type:code id:7209ba84-1e31-4d7e-b205-eb3b822fba13 tags:
``` python ``` python
# stepper for options initialisieren # stepper for options initialisieren
step.Init(work_objs=[bilanz_1.Calc_C]) step.Init(work_objs=[bilanz_1.Calc_C])
``` ```
%% Cell type:code id:78564e31-2e23-4fd0-879e-e5fec1cf5c8e tags: %% Cell type:code id:78564e31-2e23-4fd0-879e-e5fec1cf5c8e tags:
``` python ``` python
bilanz_1.Option(options = { bilanz_1.Option(options = {
'name' : {'alias' : 'Test', 'visible' : True}} ) 'name' : {'alias' : 'Test', 'visible' : True}} )
bilanz_1.Gate_A.general.Option(alias_name = 'size') bilanz_1.Gate_A.general.Option(alias_name = 'size')
bilanz_1.Gate_A.Option(alias_name = 'A') bilanz_1.Gate_A.Option(alias_name = 'A')
bilanz_1.Gate_B.general.Option(alias_name = 'size') bilanz_1.Gate_B.general.Option(alias_name = 'size')
bilanz_1.Gate_B.Option(alias_name = 'B') bilanz_1.Gate_B.Option(alias_name = 'B')
bilanz_1.Gate_C.general.Option(alias_name = 'size') bilanz_1.Gate_C.general.Option(alias_name = 'size')
bilanz_1.Gate_C.Option(alias_name = 'C') bilanz_1.Gate_C.Option(alias_name = 'C')
bilanz_1.A_ratio.Option(alias_name = 'Beladung A/B') bilanz_1.A_ratio.Option(alias_name = 'Beladung A/B')
bilanz_1.B_ratio.Option(alias_name = 'Beladung B/A') bilanz_1.B_ratio.Option(alias_name = 'Beladung B/A')
bilanz_1.A_portion.Option(alias_name = 'Anteil A/(A+B)') bilanz_1.A_portion.Option(alias_name = 'Anteil A/(A+B)')
bilanz_1.B_portion.Option(alias_name = 'Anteil B/(A+B)') bilanz_1.B_portion.Option(alias_name = 'Anteil B/(A+B)')
``` ```
%% Cell type:code id:5bc30890-5c60-4d96-8138-fe9b7c0682d1 tags: %% Cell type:code id:5bc30890-5c60-4d96-8138-fe9b7c0682d1 tags:
``` python ``` python
#Logger zum Schluss initialisieren #Logger zum Schluss initialisieren
log.Init(Values=[bilanz_1.log_all], Gui_For_Data = gui_data) log.Init(Values=[bilanz_1.log_all], Gui_For_Data = gui_data)
``` ```
%% Cell type:code id:d95ff8cb-65bd-4e21-a386-6f83531970df tags: %% Cell type:code id:d95ff8cb-65bd-4e21-a386-6f83531970df tags:
``` python ``` python
Col_1_2 = widgets.VBox([log.Box(), step.Box()]) Col_1_2 = widgets.VBox([log.Box(), step.Box()])
Row_1 = widgets.HBox([gui_data.Box(), crystal_image]) Row_1 = widgets.HBox([gui_data.Box(), crystal_image])
Row_2 = widgets.HBox([Col_1_2, bilanz_1.Box()]) Row_2 = widgets.HBox([Col_1_2, bilanz_1.Box()])
widgets.VBox([Row_1, Row_2]) widgets.VBox([Row_1, Row_2])
``` ```
%% Cell type:code id:10019288-0d5f-4517-8b11-047ab10e36a0 tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment