{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Buckingham $\\pi$: Dimensional Analysis\n", "**Mokbel Karam, and Prof. Tony Saad (<a href='www.tsaad.net'>www.tsaad.net</a>) <br/>Department of Chemical Engineering <br/>University of Utah**\n", "<hr/>" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Image\n", "from IPython.core.display import HTML " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this Jupyter notebook we will execute the code presented in the paper." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 1: Pressure Inside a Bubble\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using mass, length and time as fundamental physical dimensions:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The number of variables has to be greater than the number of physical dimensions.\n" ] } ], "source": [ "from buckinghampy import BuckinghamPi\n", "\n", "Pressure_In_Bubble = BuckinghamPi()\n", "Pressure_In_Bubble.add_variable(name='{\\\\Delta}p',units='M*L^(-1)*T^(-2)') # pressure \n", "Pressure_In_Bubble.add_variable(name='R',units='L') # diameter\n", "Pressure_In_Bubble.add_variable(name='\\\\sigma',units='M*T^(-2)') # surface tension\n", "try:\n", " Pressure_In_Bubble.generate_pi_terms()\n", " Pressure_In_Bubble.print_all()\n", "except Exception as e:\n", " print(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using force and length as fundamental physical dimensions:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " sets Pi 1\n", "------ --------------------------\n", " 1 \\frac{\\sigma}{R {\\Delta}p}\n" ] } ], "source": [ "from buckinghampy import BuckinghamPi\n", "\n", "Pressure_In_Bubble = BuckinghamPi()\n", "Pressure_In_Bubble.add_variable(name='{\\\\Delta}p',units='F*L^(-2)') # pressure \n", "Pressure_In_Bubble.add_variable(name='R',units='L') # diameter\n", "Pressure_In_Bubble.add_variable(name='\\\\sigma',units='F*L^(-1)') # surface tension\n", "\n", "Pressure_In_Bubble.generate_pi_terms()\n", "Pressure_In_Bubble.print_all()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 2: Pressure Drop in a Pipe\n", "---" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " sets Pi 1 Pi 2\n", "------ ------------------------------------------------------- -------------------------------------------------------\n", " 1 \\frac{R}{d} \\frac{Q \\mu}{d^{3} {\\Delta}p}\n", " 2 \\frac{R \\sqrt[3]{{\\Delta}p}}{\\sqrt[3]{Q} \\sqrt[3]{\\mu}} \\frac{d \\sqrt[3]{{\\Delta}p}}{\\sqrt[3]{Q} \\sqrt[3]{\\mu}}\n", " 3 \\frac{d}{R} \\frac{Q \\mu}{R^{3} {\\Delta}p}\n" ] } ], "source": [ "from buckinghampy import BuckinghamPi\n", "\n", "Pressure_Drop = BuckinghamPi()\n", "Pressure_Drop.add_variable(name='{\\\\Delta}p',units='M*L^(-1)*T^(-2)') # pressure drop\n", "Pressure_Drop.add_variable(name='R',units='L') # length of the pipe\n", "Pressure_Drop.add_variable(name='d',units='L') # diameter of the pipe\n", "Pressure_Drop.add_variable(name='\\\\mu',units='M*L^(-1)*T^(-1)') # viscosity\n", "Pressure_Drop.add_variable(name='Q',units='L^(3)*T^(-1)') # volumetic flow rate\n", "\n", "Pressure_Drop.generate_pi_terms()\n", "Pressure_Drop.print_all()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 3: Economic Growth\n", "---" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " sets Pi 1 Pi 2 Pi 3\n", "------ --------------------------------- ------------------------ ------------------\n", " 1 \\frac{P r}{L {\\omega_{L}}} \\frac{Y}{L {\\omega_{L}}} \\frac{{\\delta}}{r}\n", " 2 \\frac{P {\\delta}}{L {\\omega_{L}}} \\frac{Y}{L {\\omega_{L}}} \\frac{r}{{\\delta}}\n", " 3 \\frac{P r}{Y} \\frac{L {\\omega_{L}}}{Y} \\frac{{\\delta}}{r}\n", " 4 \\frac{P {\\delta}}{Y} \\frac{L {\\omega_{L}}}{Y} \\frac{r}{{\\delta}}\n" ] } ], "source": [ "from buckinghampy import BuckinghamPi\n", "\n", "Economic_Growth = BuckinghamPi()\n", "Economic_Growth.add_variable(name='P',units='K',explicit=True) # capital\n", "Economic_Growth.add_variable(name='L',units='Q/T') # labor per period of time\n", "Economic_Growth.add_variable(name='{\\\\omega_{L}}',units='K/Q') # wages per labor\n", "Economic_Growth.add_variable(name='Y',units='K/T') # profit per period of time\n", "Economic_Growth.add_variable(name='r',units='1/T') # rental rate period of time\n", "Economic_Growth.add_variable(name='{\\\\delta}',units='1/T') # depreciation rate\n", "\n", "Economic_Growth.generate_pi_terms()\n", "Economic_Growth.print_all()" ] } ], "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.6.8" }, "toc": { "colors": { "hover_highlight": "#DAA520", "navigate_num": "#000000", "navigate_text": "#333333", "running_highlight": "#FF0000", "selected_highlight": "#FFD700", "sidebar_border": "#EEEEEE", "wrapper_background": "#FFFFFF" }, "moveMenuLeft": true, "nav_menu": { "height": "49px", "width": "252px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }