{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "ChEn-3170: Computational Methods in Chemical Engineering Fall 2018 UMass Lowell; Prof. V. F. de Almeida **19Nov2018**\n", "\n", "# 13. Non-Linear Equation Root Finding w/ Newton's Method\n", "$ \n", " \\newcommand{\\Amtrx}{\\boldsymbol{\\mathsf{A}}}\n", " \\newcommand{\\Bmtrx}{\\boldsymbol{\\mathsf{B}}}\n", " \\newcommand{\\Mmtrx}{\\boldsymbol{\\mathsf{M}}}\n", " \\newcommand{\\Imtrx}{\\boldsymbol{\\mathsf{I}}}\n", " \\newcommand{\\Pmtrx}{\\boldsymbol{\\mathsf{P}}}\n", " \\newcommand{\\Lmtrx}{\\boldsymbol{\\mathsf{L}}}\n", " \\newcommand{\\Umtrx}{\\boldsymbol{\\mathsf{U}}}\n", " \\newcommand{\\Smtrx}{\\boldsymbol{\\mathsf{S}}}\n", " \\newcommand{\\xvec}{\\boldsymbol{\\mathsf{x}}}\n", " \\newcommand{\\avec}{\\boldsymbol{\\mathsf{a}}}\n", " \\newcommand{\\bvec}{\\boldsymbol{\\mathsf{b}}}\n", " \\newcommand{\\cvec}{\\boldsymbol{\\mathsf{c}}}\n", " \\newcommand{\\rvec}{\\boldsymbol{\\mathsf{r}}}\n", " \\newcommand{\\mvec}{\\boldsymbol{\\mathsf{m}}}\n", " \\newcommand{\\gvec}{\\boldsymbol{\\mathsf{g}}}\n", " \\newcommand{\\zerovec}{\\boldsymbol{\\mathsf{0}}}\n", " \\newcommand{\\norm}[1]{\\bigl\\lVert{#1}\\bigr\\rVert}\n", " \\newcommand{\\abs}[1]{\\left\\lvert{#1}\\right\\rvert}\n", " \\newcommand{\\transpose}[1]{{#1}^\\top}\n", " \\DeclareMathOperator{\\rank}{rank}\n", "$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Table of Contents\n", "* [Introduction](#intro)\n", "* [Algorithm](#algo)\n", "* [Input Data 1](#data1)\n", " - [Plot Root Function](#prf1)\n", " - [Plot Root 1](#prf11)\n", " - [Plot Root 2](#prf12)\n", "* [Input Data 2](#data2)\n", " - [Plot Root Function](#prf2)\n", " - [Plot Root 1](#prf21)\n", " - [Plot Root 2](#prf22)\n", "* [Inverse Problem (Forensics and/or Reverse Engineering)](#inv)\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "Newton's method for computing roots of a single non-linear equation, $f(x)=0$, is described in the course notes OneNote [ChEn-3170-nonlinalg-a](https://studentuml-my.sharepoint.com/:o:/g/personal/valmor_dealmeida_uml_edu/El7oNQ3QOR9Br59guJvS0SkBzt1vnDhQ_79tDR58GC-HtQ?e=MT5fBL),\n", "\n", "\\begin{equation*}\n", "\\text{A} + \\text{B} \\overset{K_x}{\\longleftrightarrow} \\text{C} ,\n", "\\end{equation*}\n", "\n", "that is, compute $x_A$, $x_B$, $x_C$ for the given stoichiometry and molar equilibrium reaction constant $K_x$. Note that this information is not sufficient for computing the equilibrium molar fraction. In addition, it is required that the molar fraction of **any two species is known** at some point in time or as a reference, say $x_{A_0}$, and $x_{B_0}$; note $x_{A_0} + x_{B_0} + x_{C_0} = 1$.\n", "\n", "The normalized extent of reaction, $\\widehat{\\varepsilon}$, at equilibrium, satisfies the equilibrium condition\n", "\n", "\\begin{equation*}\n", "\\bigl(K_x+1\\bigr) {\\widehat{\\varepsilon}}^2 - \n", "\\bigl(1-x_{C_0}\\bigr) \\bigl(K_x+1\\bigr) \\widehat{\\varepsilon} + x_{A_0}\\,x_{B_0}\\,K_x - x_{C_0} = 0 ,\n", "\\end{equation*}\n", "\n", "*for this particular stoichiometry*. Therefore this can be casted as $f_\\text{eq} (\\widehat{\\varepsilon}) = 0$, thus \n", "\n", "\\begin{equation*}\n", "f_\\text{eq} (\\widehat{\\varepsilon}) = \n", "\\bigl(K_x+1\\bigr) {\\widehat{\\varepsilon}}^2 - \n", "\\bigl(1-x_{C_0}\\bigr) \\bigl(K_x+1\\bigr) \\widehat{\\varepsilon} + x_{A_0}\\,x_{B_0}\\,K_x - x_{C_0} = 0 .\n", "\\end{equation*}\n", "\n", "Note that if the stoichiometry changes, this function will be different.\n", "\n", "Once the values of $\\widehat{\\varepsilon}$ are found, the equilibrium molar fractions are computed from\n", "\n", "\\begin{equation*}\n", "x_A = \\frac{x_{A_0} - \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}} \\ \\qquad ; \\qquad \\\n", "x_B = \\frac{x_{B_0} - \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}} \\ \\qquad ; \\qquad \\\n", "x_C = \\frac{x_{C_0} + \\widehat{\\varepsilon}}{1 - \\widehat{\\varepsilon}}.\n", "\\end{equation*}\n", "\n", "Note that $\\widehat{\\varepsilon} \\le \\min(x_{A_0},x_{B_0})$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "'''Equilibrium function at values or array values'''\n", "\n", "def f_eq( ext_hat, x_a_0, x_b_0, x_c_0, eq_kx_cte ):\n", " '''\n", " Root function f(ext_hat) for A + B <=> C.\n", "\n", " Parameters\n", " ----------\n", " ext_hat: float or numpy.ndarray, required\n", " Normalized extent of reaction. If `ext_hat` is an array, \n", " the return value is also an array of values.\n", " x_a_0: float, required\n", " Mole fraction of species A.\n", " x_b_0: float, required\n", " Mole fraction of species B.\n", " x_c_0: float, required\n", " Mole fraction of species B.\n", " eq_kx_cte: float, required\n", " Mole equilibrium reaction constant.\n", " \n", " Returns\n", " -------\n", " value: float or numpy.ndarray\n", " Value or array of values of the equilibrium function \n", " evaluated at `ext_hat`.\n", "\n", " Examples\n", " --------\n", " '''\n", " assert x_a_0 >= 0. and x_b_0 >= 0. and x_b_0 >= 0.\n", " assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n", " \n", " value = (eq_kx_cte+1)*ext_hat**2 \\\n", " - (1-x_c_0)*(eq_kx_cte+1)*ext_hat \\\n", " + x_a_0 * x_b_0 * eq_kx_cte - x_c_0\n", " \n", " return value" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "'''Equilibrium function derivative'''\n", "\n", "def f_eq_prime( ext_hat, x_c_0, eq_kx_cte ):\n", " '''\n", " Derivative of equilibrium function f'(ext_hat) for A + B <=> C.\n", "\n", " Parameters\n", " ----------\n", " ext_hat: float or numpy.ndarray, required\n", " Normalized extent of reaction\n", " x_c_0: float, required\n", " Mole fraction of species B\n", " eq_kx_cte: float, required\n", " Mole equilibrium reaction constant.\n", " \n", " Returns\n", " -------\n", " value: float or numpy.ndarray\n", " Value or values of the root function evaluated at `ext_hat`.\n", "\n", " Examples\n", " --------\n", " '''\n", " # value = (eq_kx_cte+1)*ext_hat**2 - (1-x_c_0)*(eq_kx_cte+1)*ext_hat + x_a_0 * x_b_0 * eq_kx_cte - x_c_0 \n", " value = 2.0*(eq_kx_cte+1)*ext_hat - (1-x_c_0)*(eq_kx_cte+1)\n", " \n", " return value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Algorithm\n", "\n", "Given $f(\\cdot)$, find the roots \n", "\n", "\\begin{equation*}\n", "f(x) = 0 ,\n", "\\end{equation*}\n", "\n", "using an iterative method based on the initial guess $x_0$. Compute the updates\n", "\n", "\\begin{equation*}\n", "\\delta x_k = - \\frac{f(x_{k-1})}{f'(x_{k-1})} \\ \\qquad \\ \\forall \\ \\qquad \\ k = 1,\\ldots,k_\\text{max} , \n", "\\end{equation*}\n", "\n", "then compute the approximation to the root\n", "\n", "\\begin{equation*}\n", " x_k = x_{k-1} + \\delta x_k \\ \\qquad \\ \\forall \\ \\qquad\\ \\ k = 1,\\ldots,k_\\text{max} ,\n", "\\end{equation*}\n", "\n", "until convergence, say, $\\abs{x_k} \\le 10^{-8}$ and $\\abs{f(x_k)} \\le 10^{-8}$, or no convergence achieved , say $k>k_\\text{max}$. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "\"\"\"Newton's method\"\"\"\n", "\n", "def newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0=0.0, k_max=30, tolerance=1.0e-10, verbose=True ):\n", "\n", " # Other initialization\n", " delta_k = 1e+10\n", " f_k = 1e+10\n", " ext_hat = ext_hat_0\n", "\n", " if verbose is True:\n", " print('\\n')\n", " print('******************************************************')\n", " print(\" Newton's Method Iterations \")\n", " print('******************************************************')\n", " print(\"k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\")\n", " print('------------------------------------------------------')\n", "\n", " import math\n", " k = 0\n", " \n", " while (abs(delta_k) > tolerance or abs(f_k) > tolerance) and k <= k_max:\n", " \n", " f_k = f_eq( ext_hat, x_a_0, x_b_0, x_c_0, eq_kx_cte )\n", " f_prime_k = f_eq_prime( ext_hat, x_c_0, eq_kx_cte )\n", " \n", " delta_k_old = delta_k\n", " delta_k = -f_k / f_prime_k\n", " \n", " ext_hat += delta_k\n", " \n", " if k > 0:\n", " if delta_k != 0.0 and delta_k_old != 0.0:\n", " convergence_factor = math.log(abs(delta_k),10) / math.log(abs(delta_k_old),10)\n", " else:\n", " convergence_factor = 0.0 \n", " else:\n", " convergence_factor = 0.0\n", " \n", " k = k + 1\n", " \n", " if verbose is True:\n", " print('%2i %+5.3e %+5.3e %+5.3e %+5.3e %5.2f'%\\\n", " (k,f_k,f_prime_k,abs(delta_k),ext_hat,convergence_factor))\n", "\n", " if verbose is True:\n", " print('******************************************************') \n", " print('Root = %8.5e'%ext_hat)\n", " \n", " return ext_hat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Input Data 1\n", "\n", "Reversible reaction: \n", "$\\text{A} + \\text{B} \\overset{K_x}{\\longleftrightarrow} \\text{C}$\n", "\n", "Name | Parameter | Value |\n", "----------------------------|--------------|-------| \n", "initial mole fraction of A | $x_{A_0}$ | 0.5 | \n", "initial mole fraction of B | $x_{B_0}$ | 0.5 |\n", "initial mole fraction of C | $x_{C_0}$ | 0.0 |\n", "mole equilibrium constant | $K_\\text{x}$ | 108 | " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max. ext_hat = 0.50\n" ] } ], "source": [ "'''Parameters for chemical equilibrium of A + B <-> C'''\n", "\n", "x_a_0 = 0.5\n", "x_b_0 = 0.5\n", "x_c_0 = 0.0\n", "\n", "assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "\n", "eq_kx_cte = 108.0\n", "\n", "print('Max. ext_hat = %5.2f'%min(x_a_0,x_b_0))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "'''Function: plot equilibrium function'''\n", "\n", "def plot_function( ex_min, ex_max, n_pts,\n", " x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_root=None ):\n", " \n", " import matplotlib.pyplot as plt\n", " plt.figure(1, figsize=(6, 6))\n", " \n", " import numpy as np\n", " ex_vec = np.linspace(ex_min, ex_max, n_pts)\n", " \n", " plt.plot(ex_vec, f_eq(ex_vec, x_a_0, x_b_0, x_c_0, eq_kx_cte),'b-',label='$f_{eq}$')\n", " \n", " plt.xlabel(r'$\\hat{\\varepsilon}$',fontsize=18)\n", " plt.ylabel(r'$f_{eq}(\\hat{\\varepsilon})$',fontsize=18)\n", " plt.title('Computing the Roots of $f(x)$',fontsize=20)\n", " plt.legend(loc='best',fontsize=12)\n", " plt.xticks(fontsize=16)\n", " plt.yticks(fontsize=16)\n", " \n", " (x_min,x_max) = plt.xlim()\n", " dx = abs(x_max-x_min)\n", " x_text = (x_max+x_min)/2\n", " \n", " (y_min,y_max) = plt.ylim()\n", " dy = abs(y_max-y_min)\n", " y_text = y_max - dy*0.05\n", " \n", " plt.text(x_text, y_text, r'$x_{A_0}=$%8.2e'%x_a_0,fontsize=16)\n", " y_text -= dy*0.06\n", " plt.text(x_text, y_text, r'$x_{B_0}=$%8.2e'%x_b_0,fontsize=16)\n", " y_text -= dy*0.06\n", " plt.text(x_text, y_text, r'$x_{C_0}=$%8.2e'%x_c_0,fontsize=16)\n", " y_text -= dy*0.06\n", " plt.text(x_text, y_text, r'$K_x=$%8.2e'%eq_kx_cte,fontsize=16)\n", " \n", " \n", " if ext_hat_root is not None:\n", " \n", " plt.plot(ext_hat_root, 0.0,'r*',label='root',markersize=14)\n", " \n", " (x_min,x_max) = plt.xlim()\n", " dx = abs(x_max-x_min)\n", " x_text = ext_hat_root + dx*0.01\n", " \n", " (y_min,y_max) = plt.ylim()\n", " dy = abs(y_max-y_min)\n", " y_text = 0.0 + dy*0.01\n", " \n", " plt.text(x_text, y_text, r'$\\hat{\\varepsilon}^*=$%8.2e'%ext_hat_root,fontsize=16)\n", " \n", " \n", " plt.grid(True)\n", " plt.show()\n", " print('')\n", " \n", " return" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Root Function" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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jMrpSRiHFt26d4fXXoOUlPDrw0iFpx07dgAwefJkqlevzpYtW6hSpUqBtxeIQdL8kZyc7HGEyssvv5xTp05lPK9bty5JSUncdtttTJ48GYCiRYvy5ptvcuedd2aUGzFiBFWrVmX16tXExcUB0LVrV+rWrcuYMWNYuHAh8HtP09mlp6dnJFiwI5HGZupXytt4s/vxxx957rnnSExM9Hv8HE9274Yffwzz6zVosnFMt27wj3/AmjXQq5fT0ahIsH37dgDuvPNO5s6dyzfffONXsnEPkpabrVu3kpCQkGUY5EDzNLS0ZGs5s2/fPvr160edOnV48803KV68OIsWLeKhhx6iWLFiDBo0iAsXLrB27VpGjRpFTExMRsIASExMZMaMGRnPc0uy2YeO9pRkvYk3s5SUFPr06UORIkV49913cy3nj3Bv8uymycYhrVpByZL2jaLJRnljx44dVK9enWnTpnHgwAHuuOMONm/eXODWZ6VKlaJhHv2anDlzhoYNG3r8gg2E8uXLk5ycnGP+qVOnspxBjBo1iqJFi7JkyRKKFi0KQKdOnTh58iSPPvood911F8nJyaSlpeVIGJmlp6cTExPjMcn27t2bW265hYSEBBISEgByJFlv43W7ePEivXv3Zv/+/axdu5arr746n1ekYD75xFbLB2nzAaPJxiGXXQadOsGyZbbONUifZxVFduzYQcuWLYmLi2PevHkkJCRw6623smHDBkqWLJlR7sEHH6R06dK8+uqrHDlyhMTERCZOnEhiYmKW7TldjVanTh12796dY/6ePXu46aabMp7v2rWLBg0aZCQat6ZNm/Lhhx/y008/Ua5cOWJiYhg2bBj33nuvx/25GzOULl06R3VWXFwcV111FTfeeGOuVV3exgvw22+/0a9fPzZt2sTKlSupV6+ex236KyUF1q2DRx4JyuYDSpONg7p3h8WL4ZtvoFYtp6NR4ez48eMcO3Ys40zkqquuYu7cuXTo0IH77ruP2bNnZ5yBjBkzhrp16zJw4EAGDx7MK6+8kiPRgPPVaL179+bJJ59k//79XHfddQAcOHCA9evXM27cuIxylStXZseOHfz6668Z12IAvvzyS4oVK8bll19OXFwcbdq0YefOnTRu3DgoLfO8jTc9PZ1BgwaxatUqli5dSvMgNhFbtQp+/RV69AjaLgLH2zbS0T6F8j4btwMH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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte )" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +2.700e+01 -1.090e+02 +2.477e-01 +2.477e-01 0.00\n", " 2 +6.688e+00 -5.500e+01 +1.216e-01 +3.693e-01 1.51\n", " 3 +1.612e+00 -2.849e+01 +5.657e-02 +4.259e-01 1.36\n", " 4 +3.488e-01 -1.616e+01 +2.159e-02 +4.475e-01 1.34\n", " 5 +5.080e-02 -1.145e+01 +4.436e-03 +4.519e-01 1.41\n", " 6 +2.145e-03 -1.048e+01 +2.046e-04 +4.521e-01 1.57\n", " 7 +4.561e-06 -1.044e+01 +4.369e-07 +4.521e-01 1.72\n", " 8 +2.081e-11 -1.044e+01 +1.993e-12 +4.521e-01 1.84\n", "******************************************************\n", "Root = 4.52109e-01\n", "\n", "Equilibrium mole fractions:\n", "\n", "x_a = 8.741e-02\n", "\n", "x_b = 8.741e-02\n", "\n", "x_c = 8.252e-01\n", "\n" ] } ], "source": [ "'''Find root and equilibrium molar fractions'''\n", "\n", "ext_hat_0 = 0.0\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance)\n", "\n", "x_a = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "assert abs(x_a + x_b + x_c - 1.0) <= 1e-12\n", "assert abs(x_c/x_a/x_b - eq_kx_cte) <= 1e-10,'%r'%(abs(x_c/x_a/x_b - eq_kx_cte))\n", "\n", "print('')\n", "print('Equilibrium mole fractions:\\n')\n", "print('x_a = %5.3e\\n'%x_a)\n", "print('x_b = %5.3e\\n'%x_b)\n", "print('x_c = %5.3e\\n'%x_c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Root 1" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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jMrpSRiHFt26d4fXXoOUlPDrw0iFpx07dgAwefJkqlevzpYtW6hSpUqBtxeIQdL8kZyc7HGEyssvv5xTp05lPK9bty5JSUncdtttTJ48GYCiRYvy5ptvcuedd2aUGzFiBFWrVmX16tXExcUB0LVrV+rWrcuYMWNYuHAh8HtP09mlp6dnJFiwI5HGZupXytt4s/vxxx957rnnSExM9Hv8HE9274Yffwzz6zVosnFMt27wj3/AmjXQq5fT0ahIsH37dgDuvPNO5s6dyzfffONXsnEPkpabrVu3kpCQkGUY5EDzNLS0ZGs5s2/fPvr160edOnV48803KV68OIsWLeKhhx6iWLFiDBo0iAsXLrB27VpGjRpFTExMRsIASExMZMaMGRnPc0uy2YeO9pRkvYk3s5SUFPr06UORIkV49913cy3nj3Bv8uymycYhrVpByZL2jaLJRnljx44dVK9enWnTpnHgwAHuuOMONm/eXODWZ6VKlaJhHv2anDlzhoYNG3r8gg2E8uXLk5ycnGP+qVOnspxBjBo1iqJFi7JkyRKKFi0KQKdOnTh58iSPPvood911F8nJyaSlpeVIGJmlp6cTExPjMcn27t2bW265hYSEBBISEgByJFlv43W7ePEivXv3Zv/+/axdu5arr746n1ekYD75xFbLB2nzAaPJxiGXXQadOsGyZbbONUifZxVFduzYQcuWLYmLi2PevHkkJCRw6623smHDBkqWLJlR7sEHH6R06dK8+uqrHDlyhMTERCZOnEhiYmKW7TldjVanTh12796dY/6ePXu46aabMp7v2rWLBg0aZCQat6ZNm/Lhhx/y008/Ua5cOWJiYhg2bBj33nuvx/25GzOULl06R3VWXFwcV111FTfeeGOuVV3exgvw22+/0a9fPzZt2sTKlSupV6+ex236KyUF1q2DRx4JyuYDSpONg7p3h8WL4ZtvoFYtp6NR4ez48eMcO3Ys40zkqquuYu7cuXTo0IH77ruP2bNnZ5yBjBkzhrp16zJw4EAGDx7MK6+8kiPRgPPVaL179+bJJ59k//79XHfddQAcOHCA9evXM27cuIxylStXZseOHfz6668Z12IAvvzyS4oVK8bll19OXFwcbdq0YefOnTRu3DgoLfO8jTc9PZ1BgwaxatUqli5dSvMgNhFbtQp+/RV69AjaLgLH2zbS0T6F8j4btwMH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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function with root'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte, ext_hat )" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +4.110e+00 +4.360e+01 +9.427e-02 +6.057e-01 0.00\n", " 2 +9.686e-01 +2.305e+01 +4.202e-02 +5.637e-01 1.34\n", " 3 +1.925e-01 +1.389e+01 +1.386e-02 +5.499e-01 1.35\n", " 4 +2.093e-02 +1.087e+01 +1.926e-03 +5.479e-01 1.46\n", " 5 +4.042e-04 +1.045e+01 +3.869e-05 +5.479e-01 1.62\n", " 6 +1.631e-07 +1.044e+01 +1.563e-08 +5.479e-01 1.77\n", " 7 +2.132e-14 +1.044e+01 +2.042e-15 +5.479e-01 1.88\n", "******************************************************\n", "Root = 5.47891e-01\n", "\n", "Equilibrium mole fractions:\n", "\n", "x_a = -1.059e-01\n", "\n", "x_b = -1.059e-01\n", "\n", "x_c = 1.212e+00\n", "\n" ] } ], "source": [ "'''Find root and equilibrium molar fractions'''\n", "\n", "ext_hat_0 = 0.7\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )\n", "\n", "x_a = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "#assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "assert abs(x_a + x_b + x_c - 1.0) <= 1e-12\n", "assert abs(x_c/x_a/x_b - eq_kx_cte) <= 1e-10,'%r'%(abs(x_c/x_a/x_b - eq_kx_cte))\n", "\n", "print('')\n", "print('Equilibrium mole fractions:\\n')\n", "print('x_a = %5.3e\\n'%x_a)\n", "print('x_b = %5.3e\\n'%x_a)\n", "print('x_c = %5.3e\\n'%x_c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Root 2" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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jMrpSRiHFt26d4fXXoOUlPDrw0iFpx07dgAwefJkqlevzpYtW6hSpUqBtxeIQdL8kZyc7HGEyssvv5xTp05lPK9bty5JSUncdtttTJ48GYCiRYvy5ptvcuedd2aUGzFiBFWrVmX16tXExcUB0LVrV+rWrcuYMWNYuHAh8HtP09mlp6dnJFiwI5HGZupXytt4s/vxxx957rnnSExM9Hv8HE9274Yffwzz6zVosnFMt27wj3/AmjXQq5fT0ahIsH37dgDuvPNO5s6dyzfffONXsnEPkpabrVu3kpCQkGUY5EDzNLS0ZGs5s2/fPvr160edOnV48803KV68OIsWLeKhhx6iWLFiDBo0iAsXLrB27VpGjRpFTExMRsIASExMZMaMGRnPc0uy2YeO9pRkvYk3s5SUFPr06UORIkV49913cy3nj3Bv8uymycYhrVpByZL2jaLJRnljx44dVK9enWnTpnHgwAHuuOMONm/eXODWZ6VKlaJhHv2anDlzhoYNG3r8gg2E8uXLk5ycnGP+qVOnspxBjBo1iqJFi7JkyRKKFi0KQKdOnTh58iSPPvood911F8nJyaSlpeVIGJmlp6cTExPjMcn27t2bW265hYSEBBISEgByJFlv43W7ePEivXv3Zv/+/axdu5arr746n1ekYD75xFbLB2nzAaPJxiGXXQadOsGyZbbONUifZxVFduzYQcuWLYmLi2PevHkkJCRw6623smHDBkqWLJlR7sEHH6R06dK8+uqrHDlyhMTERCZOnEhiYmKW7TldjVanTh12796dY/6ePXu46aabMp7v2rWLBg0aZCQat6ZNm/Lhhx/y008/Ua5cOWJiYhg2bBj33nuvx/25GzOULl06R3VWXFwcV111FTfeeGOuVV3exgvw22+/0a9fPzZt2sTKlSupV6+ex236KyUF1q2DRx4JyuYDSpONg7p3h8WL4ZtvoFYtp6NR4ez48eMcO3Ys40zkqquuYu7cuXTo0IH77ruP2bNnZ5yBjBkzhrp16zJw4EAGDx7MK6+8kiPRgPPVaL179+bJJ59k//79XHfddQAcOHCA9evXM27cuIxylStXZseOHfz6668Z12IAvvzyS4oVK8bll19OXFwcbdq0YefOnTRu3DgoLfO8jTc9PZ1BgwaxatUqli5dSvMgNhFbtQp+/RV69AjaLgLH2zbS0T6F8j4btwMH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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function with root'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte, ext_hat )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +0.000e+00 +1.044e+01 +0.000e+00 +5.479e-01 0.00\n", "******************************************************\n", "Root = 5.47891e-01\n" ] } ], "source": [ "'''Find root at the root initial guess'''\n", "\n", "ext_hat_0 = ext_hat\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Input Data 2\n", "\n", "Reversible reaction: A + B <=> C \n", "\n", "Name | Parameter | Value |\n", "----------------------------|--------------|----------| \n", "initial mole fraction of A | $x_{A0}$ | 0.5 |\n", "initial mole fraction of B | $x_{B0}$ | 0.2 |\n", "initial mole fraction of C | $x_{C0}$ | 0.3 |\n", "mole equilibrium constant | $K_\\text{x}$ | 108 |" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max. ext_hat = 0.20\n" ] } ], "source": [ "'''Parameters for chemical equilibrium of A + B <-> C'''\n", "\n", "x_a_0 = 0.5\n", "x_b_0 = 0.2\n", "x_c_0 = 0.3\n", "\n", "assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "\n", "eq_kx_cte = 108.0\n", "\n", "print('Max. ext_hat = %5.2f'%min(x_a_0,x_b_0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Root Function" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte )" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +1.050e+01 -7.630e+01 +1.376e-01 +1.376e-01 0.00\n", " 2 +2.064e+00 -4.630e+01 +4.458e-02 +1.822e-01 1.57\n", " 3 +2.167e-01 -3.658e+01 +5.923e-03 +1.881e-01 1.65\n", " 4 +3.824e-03 -3.529e+01 +1.083e-04 +1.882e-01 1.78\n", " 5 +1.280e-06 -3.527e+01 +3.628e-08 +1.882e-01 1.88\n", " 6 +1.446e-13 -3.527e+01 +4.100e-15 +1.882e-01 1.93\n", "******************************************************\n", "Root = 1.88229e-01\n", "\n", "Equilibrium mole fractions:\n", "\n", "x_a = 3.841e-01\n", "\n", "x_b = 1.450e-02\n", "\n", "x_c = 6.014e-01\n", "\n" ] } ], "source": [ "'''Find root and equilibrium molar fractions'''\n", "\n", "ext_hat_0 = 0.0\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )\n", "\n", "x_a = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "assert abs(x_a + x_b + x_c - 1.0) <= 1e-12\n", "assert abs(x_c/x_a/x_b - eq_kx_cte) <= 1e-10,'%r'%(abs(x_c/x_a/x_b - eq_kx_cte))\n", "\n", "print('')\n", "print('Equilibrium mole fractions:\\n')\n", "print('x_a = %5.3e\\n'%x_a)\n", "print('x_b = %5.3e\\n'%x_b)\n", "print('x_c = %5.3e\\n'%x_c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Root 1" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function with root'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte, ext_hat )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inverse Problem (Forensics and Reverse Engineering)\n", "Someone is interested in the answers to the questions:\n", "\n", "1. If we know $x_A$, $x_B$ and $x_C$, could a unique $x_{A_0} , x_{B_0}, x_{C_0}$ be computed? if not unique, how many exist?\n", "2. What could we say about $x_{A_0} , x_{B_0}, x_{C_0}$?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max. ext_hat = 0.34\n" ] } ], "source": [ "'''Let us compute an equilibrium molar fraction'''\n", "\n", "x_a_0 = 0.34\n", "x_b_0 = 0.64\n", "x_c_0 = 0.02\n", "\n", "assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "\n", "eq_kx_cte = 56.8 #108.0\n", "\n", "print('Max. ext_hat = %5.2f'%min(x_a_0,x_b_0))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +1.234e+01 -5.664e+01 +2.178e-01 +2.178e-01 0.00\n", " 2 +2.743e+00 -3.146e+01 +8.719e-02 +3.050e-01 1.60\n", " 3 +4.394e-01 -2.138e+01 +2.055e-02 +3.256e-01 1.59\n", " 4 +2.441e-02 -1.901e+01 +1.284e-03 +3.269e-01 1.71\n", " 5 +9.531e-05 -1.886e+01 +5.054e-06 +3.269e-01 1.83\n", " 6 +1.476e-09 -1.886e+01 +7.829e-11 +3.269e-01 1.91\n", "******************************************************\n", "Root = 3.26872e-01\n", "\n", "Equilibrium mole fractions:\n", "\n", "x_a_gold = 1.950e-02\n", "\n", "x_b_gold = 4.652e-01\n", "\n", "x_c_gold = 5.153e-01\n", "\n" ] } ], "source": [ "'''Find root and the \"gold\" equilibrium molar fractions'''\n", "\n", "ext_hat_0 = 0.0\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )\n", "\n", "x_a_gold = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b_gold = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c_gold = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "assert x_a_gold > 0. and x_b_gold > 0. and x_c_gold >= 0.\n", "assert abs(x_a_gold + x_b_gold + x_c_gold - 1.0) <= 1e-12\n", "assert abs(x_c_gold/x_a_gold/x_b_gold - eq_kx_cte) <= 1e-12,'%r'%(abs(x_c_gold/x_a_gold/x_b_gold - eq_kx_cte)) \n", "\n", "print('')\n", "print('Equilibrium mole fractions:\\n')\n", "print('x_a_gold = %5.3e\\n'%x_a_gold)\n", "print('x_b_gold = %5.3e\\n'%x_b_gold)\n", "print('x_c_gold = %5.3e\\n'%x_c_gold)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_A_0 = 1.285e-01\n", "\n", "x_B_0 = 5.246e-01\n", "\n", "x_C_0 = 3.469e-01\n", "\n", "Max. ext_hat = 0.13\n" ] } ], "source": [ "'''Find the reference molar fractions'''\n", "\n", "try:\n", " from chen_3170.toolkit import magic_molar_fractions\n", "except ModuleNotFoundError:\n", " assert False, 'You need to provide your own forensics function here. Bailing out.'\n", "\n", "(x_a_0,x_b_0,x_c_0) = magic_molar_fractions( x_a_gold, x_b_gold, x_c_gold )\n", "\n", "print('x_A_0 = %5.3e\\n'%x_a_0)\n", "print('x_B_0 = %5.3e\\n'%x_b_0)\n", "print('x_C_0 = %5.3e\\n'%x_c_0)\n", "\n", "assert abs(x_a_0 + x_b_0 + x_c_0 - 1.0) <= 1e-12\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "\n", "print('Max. ext_hat = %5.2f'%min(x_a_0,x_b_0))" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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n3/+oVevXuzevZvu3bvz+eefmx2ScJHNmzczYMAAmjdvzvbt24mJiaFhw4bpynzxxRf4+fnx9ttvM2DAAIeP4Q6n0W7dukWPHj3YuXMn33//PQ0aNMhU5tdff6Vhw4aZelA2bdqUL774gr///pvAwEC8vLwYNGgQTz31lM1jeXl5ZduaCwkJITY2NtN2Bw4c4O67785DLQsXSTYFwPjx46lVqxb/+9//zA5FuNDevXvp1q2btZNA7dq1GTlyJOvWrbOWuXLlCiNHjmT9+vVUqlSJw4cPpxtocdCgQcTExNCxY0feeustm8cx+zRaSkoKvXv3ZtOmTaxbt45mzZrZLFexYkX279/PzZs3rddiAH7++WeKFi1KmTJl8PPzo1WrVsTExBAaGpplj7GSJUty7733cuXKlUwdLbp06cKrr75KXFwcd955JwDHjh1j+/btTJgwwUm1Nsf585CUlD/XayXZFADff/89H3/8sdlhCBc6cuQInTp1on379kybNg0vLy9GjRpF37592bp1K61btwZgzJgxdOvWzfqNu0qVKvzyyy80b96cXbt24e3tzbZt2+jWrRtnz56lYsWKmY6V3QevvVauXAlg7e21YcMGgoKCCAoKIjw83FouOjqadu3aMXfuXGvLY9CgQaxYsYI333yTEiVK8NNPP1nLV61a1Xo67cUXX+TRRx+lc+fOvPDCCxQrVoy1a9eydOlShg0bZk1AH330Ea1bt6ZDhw7069ePSpUqce7cOfbu3UtycnKOCePZZ59l+vTpdO3alTFjxqCU4u233+aOO+7I1HK0t97uYvhw+Pbbppw8CS7vua21lofWhIWFaVsOHDhgc3laly5dyrGMKyQmJuqAgAAN6BIlSuj69evnaX/21DXVli1b8nQsT2Nmfc+cOaODg4N1eHi4vnHjhnV5UlKSrlu3rm7evLnWWutDhw7pEiVK6CpVqujq1avr6tWr62LFiukZM2ZorbWePn26/vLLL7XWWk+aNEmvW7cu2+Pmpc6AzUd4eHimYwB63rx51mXVq1fPcvtRo0al2379+vU6PDxclytXTvv7++uGDRvqGTNm6KSkpHTlDhw4oB9//HEdFBSk/fz8dJUqVXTnzp0zPQdZ1fnPP//U3bt31yVLltT+/v66a9eu+ujRo7mutzu4cUPrUqW0bt/+TK73AezWdn7GSsvGg/n5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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot equilibrium function'''\n", "\n", "ext_hat_min = 0.0\n", "ext_hat_max = 1.0\n", "n_pts = 100\n", "plot_function( ext_hat_min, ext_hat_max, n_pts, x_a_0, x_b_0, x_c_0, eq_kx_cte )" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +3.482e+00 -3.775e+01 +9.224e-02 +9.224e-02 0.00\n", " 2 +4.918e-01 -2.709e+01 +1.815e-02 +1.104e-01 1.68\n", " 3 +1.905e-02 -2.499e+01 +7.623e-04 +1.112e-01 1.79\n", " 4 +3.359e-05 -2.490e+01 +1.349e-06 +1.112e-01 1.88\n", " 5 +1.052e-10 -2.490e+01 +4.224e-12 +1.112e-01 1.94\n", "******************************************************\n", "Root = 1.11156e-01\n", "\n", "Equilibrium mole fractions:\n", "\n", "x_a = 1.950e-02\n", "\n", "x_b = 4.652e-01\n", "\n", "x_c = 5.153e-01\n", "\n" ] } ], "source": [ "'''Find root and equilibrium molar fractions'''\n", "\n", "ext_hat_0 = 0.0\n", "k_max = 20\n", "tolerance = 1.0e-8\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )\n", "\n", "x_a = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "assert x_a_0 >= 0. and x_b_0 >= 0. and x_c_0 >= 0.\n", "assert abs(x_a + x_b + x_c - 1.0) <= 1e-12\n", "assert abs(x_c/x_a/x_b - eq_kx_cte) <= 1e-10,'%r'%(abs(x_c/x_a/x_b - eq_kx_cte))\n", "\n", "print('')\n", "print('Equilibrium mole fractions:\\n')\n", "print('x_a = %5.3e\\n'%x_a)\n", "print('x_b = %5.3e\\n'%x_b)\n", "print('x_c = %5.3e\\n'%x_c)\n", "\n", "assert abs(x_a-x_a_gold) + abs(x_b-x_b_gold) + abs(x_c-x_c_gold) <= 1e-12" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "'''Function: reference states'''\n", "\n", "def plot_ref_states( x_a_0, x_b_0, x_c_0,\n", " x_a, x_b, x_c ):\n", " \n", " import matplotlib.pyplot as plt\n", " \n", " plt.figure(1, figsize=(15, 6))\n", " \n", " plt.subplot(121) \n", " \n", " plt.plot(x_a_0, x_b_0,'b*',markersize=14)\n", " \n", " plt.xlim(0,1)\n", " plt.ylim(0,1)\n", " plt.xlabel(r'$x_{A_0}$',fontsize=18)\n", " plt.ylabel(r'$x_{B_0}$',fontsize=18)\n", " plt.title('Reference',fontsize=20) \n", " plt.xticks(fontsize=16)\n", " plt.yticks(fontsize=16)\n", " plt.grid(True)\n", " \n", " plt.subplot(122)\n", " plt.plot(x_a, x_b,'go',markersize=14)\n", " \n", " plt.xlim(0,1)\n", " plt.ylim(0,1) \n", " plt.xlabel(r'$x_{A}$',fontsize=18)\n", " plt.ylabel(r'$x_{B}$',fontsize=18)\n", " plt.title('Gold Equilibrium',fontsize=20) \n", " plt.xticks(fontsize=16)\n", " plt.yticks(fontsize=16)\n", " plt.grid(True)\n", " \n", " plt.show()\n", " print('')\n", " \n", " return" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot reference state'''\n", "\n", "plot_ref_states( x_a_0, x_b_0, x_c_0, x_a_gold, x_b_gold, x_c_gold )" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "******************************************************\n", " Newton's Method Iterations \n", "******************************************************\n", "k | f(e_k) | f'(e_k) | |del e_k| | e_k |convg|\n", "------------------------------------------------------\n", " 1 +1.256e+01 -5.704e+01 +2.201e-01 +2.201e-01 0.00\n", " 2 +2.800e+00 -3.160e+01 +8.863e-02 +3.088e-01 1.60\n", " 3 +4.541e-01 -2.135e+01 +2.127e-02 +3.300e-01 1.59\n", " 4 +2.615e-02 -1.889e+01 +1.384e-03 +3.314e-01 1.71\n", " 5 +1.107e-04 -1.873e+01 +5.911e-06 +3.314e-01 1.83\n", " 6 +2.020e-09 -1.873e+01 +1.078e-10 +3.314e-01 1.91\n", "******************************************************\n", "Root = 3.31410e-01\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Let us do this one more time'''\n", "\n", "import numpy as np\n", "x_0 = np.zeros((3,2))\n", "\n", "x_0[:,0] = np.array([x_a_0,x_b_0,x_c_0]) # save previous reference molar fractions\n", "\n", "(x_a_0,x_b_0,x_c_0) = magic_molar_fractions( x_a_gold, x_b_gold, x_c_gold )\n", "\n", "ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max,tolerance )\n", "\n", "x_a = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", "x_b = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", "x_c = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", "\n", "assert abs(x_a-x_a_gold) + abs(x_b-x_b_gold) + abs(x_c-x_c_gold) <= 1e-12\n", "\n", "x_0[:,1] = np.array([x_a_0,x_b_0,x_c_0])\n", "\n", "plot_ref_states( x_0[0,:], x_0[1,:], x_0[2,:], x_a_gold, x_b_gold, x_c_gold )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Could a unique $x_{A_0} , x_{B_0}, x_{C_0}$ be computed? No.**
\n", "**If not unique, how many exist? **
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**So is it hopeless? or can we say something about the reference molar fractions?**" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Plot reference states'''\n", "\n", "npts = 120\n", "\n", "import numpy as np\n", "x_0 = np.zeros((3,npts))\n", "x_eq = np.zeros((3,npts))\n", "\n", "for i in range(npts):\n", " \n", " (x_a_0,x_b_0,x_c_0) = magic_molar_fractions( x_a_gold, x_b_gold, x_c_gold )\n", " \n", " x_0[0,i] = x_a_0\n", " x_0[1,i] = x_b_0\n", " x_0[2,i] = x_c_0\n", " \n", " ext_hat = newton_solve( x_a_0, x_b_0, x_c_0, eq_kx_cte,\n", " ext_hat_0,k_max, tolerance, verbose=False )\n", " \n", " x_eq[0,i] = (x_a_0 - ext_hat)/(1.0-ext_hat)\n", " x_eq[1,i] = (x_b_0 - ext_hat)/(1.0-ext_hat)\n", " x_eq[2,i] = (x_c_0 + ext_hat)/(1.0-ext_hat)\n", " \n", "plot_ref_states( x_0[0,:], x_0[1,:], x_0[2,:], x_eq[0,:], x_eq[1,:], x_eq[2,:] )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 2 }