{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ThermoHubClient\n", "A Client for retrieving thermodynamic data sets or subsets of data from ThermoHub." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import thermohubclient as client" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Default connection(remote) to db.thermohub.net" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "dbc = client.DatabaseClient()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['\"aq17\"',\n", " '\"slop16\"',\n", " '\"psinagra-12-07\"',\n", " '\"slop98-inorganic\"',\n", " '\"cemdata18\"',\n", " '\"mines16\"',\n", " '\"slop98-organic\"',\n", " '\"heracles\"']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dbc.availableThermoDataSets()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Save ThermoDataSet `aq17` to a database file. A file: `aq17-thermofun.json` will be written" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "dbc.saveDatabase(\"aq17\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Save a subset of ThermoDataSet `aq17` to a database file `aq17-subset-thermofun.json`, using a list of elements." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "dbc.saveDatabaseContainingElements(\"aq17\", \n", " [\"H\", \"O\", \"Na\", \"K\", \"Si\", \"Al\", \"Cl\", \"Zr\", \"Zz\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Save a subset of ThermoDataSet `mines16` to a database file `mines16-subset-thermofun.json`, using a (optional) list of elements, substances, and substance classes. Only the data that fulfils all selection criteria will be saved." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "dbc.saveDatabaseSubset(thermodataset=\"mines16\", \n", " elements=[\"H\", \"O\", \"Na\", \"K\", \"Si\", \"Al\", \"Cl\", \"Zr\", \"Zz\"],\n", " substances=[\"O2@\", \"H2@\", \"NaHSiO3@\", \"Al(OH)2+\", \"NaAl(OH)4@\", \"Al+3\",\n", " \"AlH3SiO4+2\", \"AlOH+2\", \"Al(OH)4-\", \"H2\", \"O2\", \"H2O\"],\n", " classesOfSubstance=[\"{\\\"1\\\":\\\"SC_GASFLUID\\\"}\", \"{\\\"3\\\":\\\"SC_AQSOLVENT\\\"}\"],\n", " aggregateStates=[])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ThermoDataSets\n", "\"aq17\"\n", "\"slop16\"\n", "\"psinagra-12-07\"\n", "\"slop98-inorganic\"\n", "\"cemdata18\"\n", "\"mines16\"\n", "\"slop98-organic\"\n", "\"heracles\"\n", "\n", "\n" ] } ], "source": [ "print(\"ThermoDataSets\")\n", "for t in dbc.availableThermoDataSets():\n", " print(f'{t}')\n", "print('\\n')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Elements\n", "\"Al\"\n", "\"C\"\n", "\"Ca\"\n", "\"Cl\"\n", "\"H\"\n", "\"K\"\n", "\"Mg\"\n", "\"Na\"\n", "\"O\"\n", "\"Si\"\n", "\"Zz\"\n", "\n", "\n" ] } ], "source": [ "print(\"Elements\")\n", "for e in dbc.elementsInThermoDataSet(\"aq17\"):\n", " print(f'{e}')\n", "print('\\n')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Substances\n", "\"Akermanite\"\n", "\"Al(OH)2+\"\n", "\"Al(OH)3@\"\n", "\"Al(OH)4-\"\n", "\"Al+3\"\n", "\"Albite\"\n", "\"Albite high\"\n", "\"AlH3SiO4+2\"\n", "\"AlOH+2\"\n", "\"Amesite-Mg\"\n", "\"Analcite\"\n", "\"Andalusite\"\n", "\"Anorthite\"\n", "\"Anthophyll-Mg\"\n", "\"Antigorite\"\n", "\"Aragonite\"\n", "\"Boehmite\"\n", "\"Brucite\"\n", "\"Ca+2\"\n", "\"CaCl+\"\n", "\"CaCl2@\"\n", "\"CaCO3@\"\n", "\"CaHCO3+\"\n", "\"CaHSiO3+\"\n", "\"Calcite\"\n", "\"CaOH+\"\n", "\"Carpholite-Mg\"\n", "\"CaSiO3@\"\n", "\"Cceladonite-Mg\"\n", "\"Celadonite-Mg\"\n", "\"CH4\"\n", "\"CH4@\"\n", "\"Chlorite-Mg\"\n", "\"Chloritoid-Mg\"\n", "\"Chrysotile\"\n", "\"Cl-\"\n", "\"Clinochlore\"\n", "\"Clinohumite\"\n", "\"Clinozoisite\"\n", "\"CO\"\n", "\"CO@\"\n", "\"CO2\"\n", "\"CO2@\"\n", "\"CO3-2\"\n", "\"Coesite\"\n", "\"Cordierite-Mg\"\n", "\"Corundum\"\n", "\"Cristobalite\"\n", "\"Cummingtonite\"\n", "\"Diamond\"\n", "\"Diaspore\"\n", "\"Diopside\"\n", "\"Dolomite\"\n", "\"Dolomite-od\"\n", "\"Eastonite\"\n", "\"Edenite-Mg\"\n", "\"Enstatite\"\n", "\"Forsterite\"\n", "\"Gedrite-Mg\"\n", "\"Gehlenite\"\n", "\"Gibbsite\"\n", "\"Glaucophane-Mg\"\n", "\"Graphite\"\n", "\"Grossular\"\n", "\"H+\"\n", "\"H2\"\n", "\"H2@\"\n", "\"H2O\"\n", "\"H2O@\"\n", "\"Halite\"\n", "\"HCl@\"\n", "\"HCO3-\"\n", "\"Hcordierite-Mg\"\n", "\"Heulandite\"\n", "\"HSiO3-\"\n", "\"Jadeite\"\n", "\"K+\"\n", "\"KAlO2@\"\n", "\"Kalsilite\"\n", "\"Kaolinite\"\n", "\"KCl@\"\n", "\"KCO3-\"\n", "\"KHCO3@\"\n", "\"KOH@\"\n", "\"Kyanite\"\n", "\"Larnite\"\n", "\"Laumontite\"\n", "\"Lawsonite\"\n", "\"Leucite\"\n", "\"Lime\"\n", "\"Magnesite\"\n", "\"Margarite\"\n", "\"Meionite-Ca\"\n", "\"Meionite-Na\"\n", "\"Merwinite\"\n", "\"Mg+2\"\n", "\"MgCl+\"\n", "\"MgCl2@\"\n", "\"MgCO3@\"\n", "\"MgHCO3+\"\n", "\"MgHSiO3+\"\n", "\"MgOH+\"\n", "\"MgSiO3@\"\n", "\"Microcline\"\n", "\"Mizzonite\"\n", "\"Monticellite\"\n", "\"Muscovite\"\n", "\"Na+\"\n", "\"NaAl(OH)4@\"\n", "\"NaCl@\"\n", "\"NaCO3-\"\n", "\"NaHCO3@\"\n", "\"NaHSiO3@\"\n", "\"NaOH@\"\n", "\"Nceladonite-Mg\"\n", "\"Nepheline\"\n", "\"O2\"\n", "\"O2@\"\n", "\"OH-\"\n", "\"Omphacite-Mg\"\n", "\"Osumilite1-Mg\"\n", "\"Osumilite2-Mg\"\n", "\"Paragonite\"\n", "\"Pargasite-Mg\"\n", "\"Periclase\"\n", "\"Phlogopite\"\n", "\"Phlogopite-Na\"\n", "\"Portlandite\"\n", "\"Prehnite\"\n", "\"Pseudowoll\"\n", "\"Pumpellyite-Mg\"\n", "\"Pyrope\"\n", "\"Pyrophyllite\"\n", "\"Quartz\"\n", "\"Rankinite\"\n", "\"Sanidine\"\n", "\"Sapphirine4-Mg\"\n", "\"Sapphirine5-Mg\"\n", "\"Sillimanite\"\n", "\"SiO2@\"\n", "\"Spinel\"\n", "\"Spurrite\"\n", "\"Staurolite-Mg\"\n", "\"Stilbite\"\n", "\"Stilpnomelane-Mg\"\n", "\"Stishovite\"\n", "\"Sudoite-Mg\"\n", "\"Sylvite\"\n", "\"Talc-Mg\"\n", "\"Tilleyite\"\n", "\"Topaz-OH\"\n", "\"Tremolite-Mg\"\n", "\"Tridymite\"\n", "\"Tschermak-Ca\"\n", "\"Tschermak-Mg\"\n", "\"Tschermakite-Mg\"\n", "\"Ttalc-Mg\"\n", "\"Vesuvianite\"\n", "\"Wairakite\"\n", "\"Wollastonite\"\n", "\"Zoisite\"\n", "\n", "\n" ] } ], "source": [ "print(\"Substances\")\n", "for e in dbc.substancesInThermoDataSet(\"aq17\"):\n", " print(f'{e}')\n", "print('\\n')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reactions\n", "\"Sn(Cl)+\"\n", "\"Sn(Cl)+\"\n", "\"Sn(Cl)+\"\n", "\"Sn(Cl)2@\"\n", "\"Sn(Cl)2@\"\n", "\"Sn(Cl)2@\"\n", "\"Sn(Cl)3-\"\n", "\"Sn(Cl)3-\"\n", "\"Sn(Cl)3-\"\n", "\"Ti(OH)3+\"\n", "\"Ti(OH)3+\"\n", "\"Ti(OH)3+\"\n", "\"Ti(OH)3+\"\n", "\"Ti(OH)4@\"\n", "\"Ti(OH)4@\"\n", "\"Ti(OH)4@\"\n", "\"Ti(OH)5-\"\n", "\"Ti(OH)5-\"\n", "\"Ti(OH)5-\"\n", "\"Ti(OH)5-\"\n", "\"ZrCl+3\"\n", "\"ZrCl+3\"\n", "\"ZrCl+3\"\n", "\"ZrCl2+2\"\n", "\"ZrCl2+2\"\n", "\"ZrCl2+2\"\n", "\"ZrCl3+\"\n", "\"ZrCl3+\"\n", "\"ZrCl3+\"\n", "\"ZrCl4@\"\n", "\"ZrCl4@\"\n", "\"ZrCl4@\"\n", "\"ZrF(OH)3@\"\n", "\"ZrF(OH)3@\"\n", "\"ZrF(OH)3@\"\n", "\"ZrF(OH)3@\"\n", "\"ZrF+3\"\n", "\"ZrF+3\"\n", "\"ZrF+3\"\n", "\"ZrF2(OH)2@\"\n", "\"ZrF2(OH)2@\"\n", "\"ZrF2(OH)2@\"\n", "\"ZrF2(OH)2@\"\n", "\"ZrF2+2\"\n", "\"ZrF2+2\"\n", "\"ZrF2+2\"\n", "\"ZrF3+\"\n", "\"ZrF3+\"\n", "\"ZrF3+\"\n", "\"ZrF4@\"\n", "\"ZrF4@\"\n", "\"ZrF4@\"\n", "\"ZrF5-\"\n", "\"ZrF5-\"\n", "\"ZrF5-\"\n", "\"ZrF6-2\"\n", "\"ZrF6-2\"\n", "\"ZrF6-2\"\n", "\n", "\n" ] } ], "source": [ "print(\"Reactions\")\n", "for e in dbc.reactionsInThermoDataSet(\"mines16\"):\n", " print(f'{e}')\n", "print('\\n')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Substances classes\n", "{\"0\":\"SC_COMPONENT\"}\n", "{\"2\":\"SC_AQSOLUTE\"}\n", "{\"1\":\"SC_GASFLUID\"}\n", "{\"3\":\"SC_AQSOLVENT\"}\n", "\n", "\n" ] } ], "source": [ "print(\"Substances classes\")\n", "for e in dbc.substanceClassesInThermoDataSet(\"aq17\"):\n", " print(f'{e}')\n", "print('\\n')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Substances aggregate state\n", "{\"3\":\"AS_CRYSTAL\"}\n", "{\"4\":\"AS_AQUEOUS\"}\n", "{\"0\":\"AS_GAS\"}\n", "\n", "\n" ] } ], "source": [ "print(\"Substances aggregate state\")\n", "for e in dbc.substanceAggregateStatesInThermoDataSet(\"aq17\"):\n", " print(f'{e}')\n", "print('\\n')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.1" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": false, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": false, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }