{ "cells": [ { "cell_type": "markdown", "id": "2a6eb367-6205-4244-a6cd-da994342e3d5", "metadata": {}, "source": [ "# Adjusting PC-SAFT binary $k_{ij}$ parameter " ] }, { "cell_type": "markdown", "id": "eb4e4769-2ea1-4241-a64f-742cd9147b82", "metadata": {}, "source": [ "## Goal\n", "\n", "- Read in experimental data for binary VLEs\n", "- Use the `DataSet`, `Loss` and `Estimator` objects to store and work with experimental data.\n", "- Define a `cost` function that will be used with `scipy.optimize.least_squares`.\n", "- Run the optimization." ] }, { "cell_type": "code", "execution_count": 1, "id": "5bbffc77-9ab5-4996-8980-a464c75959b9", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from scipy.optimize import least_squares\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "from feos.si import BAR, KELVIN, KILOGRAM, METER\n", "from feos.eos import EquationOfState, PhaseDiagram\n", "from feos.pcsaft import Identifier, IdentifierOption, PcSaftParameters, PcSaftRecord, PureRecord\n", "from feos.eos.estimator import Estimator, Loss, DataSet, Phase\n", "\n", "sns.set_context('talk')\n", "sns.set_palette('Dark2')\n", "sns.set_style('ticks')\n", "colors = sns.palettes.color_palette('Dark2', 5)\n", "plt.rcParams['figure.figsize'] = [12,7]" ] }, { "cell_type": "markdown", "id": "ec15860d-6c4f-4fbc-bf8f-7243beee6226", "metadata": {}, "source": [ "## Defining a cost function\n", "\n", "We will solve the fitting-problem using `scipy`'s `least_squares` solver, which requires a function to calculate the cost or residuals. The first argument of this function must be the parameter vector that's being optimized. Therefore, it is necessary to define this function in Python before working with `least_squares`.\n", "\n", "To simplify the process, we create two functions:\n", "\n", "- `eos_from_kij`: This function constructs the equation of state based on the current $k_{ij}$ value. Since FeO$_\\text{s}$ does not allow mutation of an existing `EquationOfState` object, generating a new equation of state is necessary. We can use this function later to generate the equation of state for the final parameter.\n", "- `cost`: Taking the parameter and estimator (discussed below) as inputs, this function builds the equation of state, calculates the cost of the current model, and returns the result." ] }, { "cell_type": "code", "execution_count": 2, "id": "7d84054b-62d4-44eb-a548-e6d5e92cfb86", "metadata": {}, "outputs": [], "source": [ "def eos_from_kij(kij):\n", " \"\"\"Returns equation of state (PC-SAFT) for current kij.\"\"\"\n", " global parameters\n", " p = PcSaftParameters.new_binary(parameters.pure_records, kij)\n", " return EquationOfState.pcsaft(p)\n", "\n", "def cost(kij, estimator):\n", " \"\"\"Calculates cost function for current parameters.\"\"\"\n", " return estimator.cost(eos_from_kij(kij))" ] }, { "cell_type": "markdown", "id": "0bd26bc1-5d56-4a55-a266-c5679e8e97bd", "metadata": {}, "source": [ "### Utility function - plot experiment and prediciton\n", "\n", "The following function takes experimental data and a $k_{ij}$ value as input and produces a phase diagram depicting both experiment and prediction from the equation of state." ] }, { "cell_type": "code", "execution_count": 3, "id": "b809b90b-7ff4-44ca-9d2b-9b78fdf59a01", "metadata": {}, "outputs": [], "source": [ "def plot_comparison(data, kij):\n", " \"\"\"Generates a plot for each experimental isotherm and PC-SAFT estimate\"\"\"\n", " for i, (temperature, isotherm) in enumerate(data.groupby('t')):\n", " # plot experiment\n", " plt.plot(\n", " isotherm.x1, isotherm.p, \n", " color=colors[i], marker='s', linestyle=\"\",\n", " label=f\"T = {temperature} K\"\n", " )\n", " plt.plot(\n", " isotherm.y1, isotherm.p, \n", " color=colors[i], marker='s', linestyle=\"\",\n", " )\n", "\n", " # plot PC-SAFT\n", " vle = PhaseDiagram.binary_vle(\n", " eos_from_kij(kij), \n", " temperature*KELVIN, \n", " npoints=25\n", " )\n", " plt.plot(\n", " vle.liquid.molefracs[:, 0], vle.liquid.pressure / BAR,\n", " color=colors[i]\n", " )\n", " plt.plot(\n", " vle.vapor.molefracs[:, 0], vle.vapor.pressure / BAR,\n", " color=colors[i]\n", " )\n", "\n", " plt.xlim(0, 1)\n", " plt.ylim(0.1, 0.8)\n", " plt.xlabel(r\"$x_1, y_1$\")\n", " plt.ylabel(r\"$p$ / bar\")\n", " plt.legend(\n", " frameon=False, \n", " title=r\"$k_{ij} = $\" + f\"{kij:8.4f}\",\n", " bbox_to_anchor=[1,1]\n", " );" ] }, { "cell_type": "markdown", "id": "728613b1-fa04-4867-8237-4186faed328a", "metadata": {}, "source": [ "## Experimental data\n", "\n", "We are using experimental data extracted from the openly available supplementary information of the work of [Jaubert et al.](https://doi.org/10.1021/acs.iecr.0c01734). We will be using the binary mixture of 2-propanol and 2,2,4-trimethylpentane as example." ] }, { "cell_type": "code", "execution_count": 4, "id": "28a94d65-5509-4104-bf0c-818988504e34", "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv(\"data/binary_vle.csv\", delimiter=\"\\t\")" ] }, { "cell_type": "markdown", "id": "c53e97dc-95db-485d-bf99-cb60e7e9658d", "metadata": {}, "source": [ "## Compare to PC-SAFT prediction ($k_{ij} = 0.0$)\n", "\n", "Before we start, let's inspect how well PC-SAFT predicts this binary mixture. We will use the parameters by Esper et al." ] }, { "cell_type": "code", "execution_count": 5, "id": "23b05a20-63c8-47da-9915-3b9eef0b7cda", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "|component|molarweight|$m$|$\\sigma$|$\\varepsilon$|$\\mu$|$Q$|$\\kappa_{AB}$|$\\varepsilon_{AB}$|$N_A$|$N_B$|$N_C$|\n", "|-|-|-|-|-|-|-|-|-|-|-|-|\n", "|2-propanol|60.058|3.95902|2.93004|198.97045|0|0|0.03508|1898.4667|1|1|0|\n", "|2,2,4-trimethylpentane|114.141|3.13984|4.08786|249.78239|0|0|0|0|0|0|0|" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "parameters = PcSaftParameters.from_json([\"2-propanol\", \"2,2,4-trimethylpentane\"], \"../../../parameters/pcsaft/esper2023.json\")\n", "pcsaft = EquationOfState.pcsaft(parameters)\n", "parameters" ] }, { "cell_type": "code", "execution_count": 6, "id": "aad85cf6-5a0a-4ce8-acb9-c3c9a8ab374e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_comparison(data, 0.0)" ] }, { "cell_type": "markdown", "id": "38ec44ea-f71d-4557-bc25-6e9d96983442", "metadata": {}, "source": [ "## Build `DataSet` objects\n", "\n", "There is definitely room for improvement. Let's start with the `DataSet` object available in FeO$_\\text{s}$.\n", "A `DataSet` serves as a storage unit for experimental data and also defines a cost function for that specific data set.\n", "Below, we will use the `DataSet.binary_phase_diagram` constructor and provide temperature, pressures, as well as liquid and vapor mole fractions.\n", "The `binary_phase_diagram` data set is one of three options - the others will be discussed below.\n", "Importantly, this data set will use a *distance* criterion as cost function. I.e. the length of the vector that is orthogonal to the phase envelope and that connects to the experimental datum. \n", "\n", "Each `DataSet` with this constructor has to contain data for a *single* pressure or temperature. Here, we group the experimental data according to temperatures and end up with 3 `DataSet` objects - one for each temperature." ] }, { "cell_type": "code", "execution_count": 7, "id": "fea4598b-7d10-4256-9e71-56ea9844921b", "metadata": {}, "outputs": [], "source": [ "isotherms = [\n", " DataSet.binary_phase_diagram(\n", " temperature*KELVIN, \n", " isotherm.p.values * BAR, \n", " isotherm.x1.values,\n", " isotherm.y1.values,\n", " npoints=40\n", " ) \n", " for temperature, isotherm in data.groupby('t')\n", "]" ] }, { "cell_type": "markdown", "id": "d741aab4-cb51-4a91-8da2-76483e0cabc2", "metadata": {}, "source": [ "## Build `Estimator` object\n", "\n", "Next, we use the `Estimator` object. The `Estimator` is a wrapper around multiple `DataSet`s and provides a convenient way to calculate the cost function of multiple `DataSet`s in one function call. Furthermore, we can use the `Estimator` to define weights between `DataSet`s and `Loss` objects for robust regression. In this example, all isotherms have the same weights (each weight is unity) and we perform a simple least squares optimization an thus use `Loss.linear`." ] }, { "cell_type": "code", "execution_count": 8, "id": "cec22449-afab-429a-aee0-a587f7c61570", "metadata": {}, "outputs": [], "source": [ "estimator = Estimator(isotherms, weights=[1]*3, losses=[Loss.linear()]*3)" ] }, { "cell_type": "markdown", "id": "fb107c4c-a35d-423c-8e22-11983b23da3a", "metadata": {}, "source": [ "## Run the optimization\n", "\n", "With that, we can perform the optimization. We set the initial $k_{ij}$ value to zero, the bounds to `[-0.5, 0.5]` and we provide the estimator as additional argument to the `cost` function defined on top of this notebook. Once the optimization successfully finished, we can inspect the results." ] }, { "cell_type": "code", "execution_count": 9, "id": "e1e6ffea-0eb4-4fdd-995a-6a465326be57", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Iteration Total nfev Cost Cost reduction Step norm Optimality \n", " 0 1 5.2773e-05 9.16e-04 \n", " 1 2 2.5544e-06 5.02e-05 4.13e-02 1.85e-04 \n", " 2 3 6.8459e-07 1.87e-06 8.62e-03 1.62e-05 \n", " 3 4 6.6847e-07 1.61e-08 8.77e-04 4.85e-07 \n", " 4 5 6.6846e-07 1.54e-11 2.79e-05 4.18e-08 \n", " 5 6 6.6846e-07 1.11e-13 2.41e-06 4.89e-10 \n", "`gtol` termination condition is satisfied.\n", "Function evaluations 6, initial cost 5.2773e-05, final cost 6.6846e-07, first-order optimality 4.89e-10.\n", "CPU times: user 1.41 s, sys: 27.4 ms, total: 1.44 s\n", "Wall time: 422 ms\n" ] } ], "source": [ "%%time\n", "initial_kij = [0.0]\n", "fitted_kij = least_squares(cost, initial_kij, bounds=[-0.5, 0.5], args=(estimator,), verbose=2).x" ] }, { "cell_type": "code", "execution_count": 10, "id": "0f7e8b0f-3bb5-4038-807c-f44194a9c040", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_comparison(data, fitted_kij[0])" ] }, { "cell_type": "markdown", "id": "f5c38595-ff70-43e5-bb03-f135cf223bdf", "metadata": {}, "source": [ "# Using other target functions\n", "\n", "In the above example, we used `DataSet.binary_phase_diagram` which used the distance criterion as cost. In FeO$_{s}$, we provide two additional cost functions: difference in chemical potentials and difference in pressures." ] }, { "cell_type": "markdown", "id": "e9707d8a-f5a0-457a-acc6-1886833477a5", "metadata": {}, "source": [ "## Difference in chemical potentials given $T, p, x_1, y_1$\n", "\n", "The cost function of `DataSet.binary_vle_chemical_potential` is defined as difference of the chemical potentials of the vapor and liquid phase (for each substance) for given $\\{T, p, \\bar{y}\\}$ and $\\{T, p, \\bar{x}\\}$, respectively. " ] }, { "cell_type": "code", "execution_count": 11, "id": "c068dd2d-b261-4fd3-87ef-11ef937ce989", "metadata": {}, "outputs": [], "source": [ "isotherms = [\n", " DataSet.binary_vle_chemical_potential(\n", " np.array([temperature]*len(isotherm)) *KELVIN, \n", " isotherm.p.values * BAR, \n", " isotherm.x1.values,\n", " isotherm.y1.values,\n", " ) \n", " for temperature, isotherm in data.groupby('t')\n", "]\n", "estimator_mu = Estimator(isotherms, weights=[1]*3, losses=[Loss.linear()]*3)" ] }, { "cell_type": "code", "execution_count": 12, "id": "8a349ab6-b51c-487d-ae48-ca34b252089d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Iteration Total nfev Cost Cost reduction Step norm Optimality \n", " 0 1 1.2674e-03 2.39e-02 \n", " 1 2 7.9041e-05 1.19e-03 4.56e-02 2.07e-03 \n", " 2 3 6.7858e-05 1.12e-05 4.85e-03 2.37e-05 \n", " 3 4 6.7856e-05 1.49e-09 5.67e-05 9.88e-09 \n", "`gtol` termination condition is satisfied.\n", "Function evaluations 4, initial cost 1.2674e-03, final cost 6.7856e-05, first-order optimality 9.88e-09.\n", "CPU times: user 52.7 ms, sys: 74 µs, total: 52.8 ms\n", "Wall time: 16.8 ms\n" ] } ], "source": [ "%%time\n", "initial_kij = [0.0] # \n", "fitted_kij_mu = least_squares(cost, initial_kij, bounds=[-0.5, 0.5], args=(estimator_mu,), verbose=2).x" ] }, { "cell_type": "code", "execution_count": 13, "id": "c04615cb-807c-4fa2-9dfe-279d18f24983", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_comparison(data, fitted_kij_mu[0])" ] }, { "cell_type": "markdown", "id": "5dce7aeb-26f9-43fb-b49d-4bd7ae5e2a2c", "metadata": {}, "source": [ "## Difference in pressure given $\\{T, p, x_i\\}$ or $\\{T, p, y_i\\}$\n", "\n", "`DataSet.binary_vle_pressure` uses temperatures, pressures, mole fractions and a flag for the phase (`Phase.Liquid` or `Phase.Vapor`) as input. Depending on the phase it calculates the dew or bubble pressure for each data point. The cost is the difference between the dew/bubble pressure and the provided (input) pressure.\n", "\n", "Since we have information about both phases in our experimental data, we can construct 6 `DataSet`s (3 isotherms for 2 phases). Alternatively, we could have splitted the data into two `DataSet`s, one for each phase." ] }, { "cell_type": "code", "execution_count": 14, "id": "4e6f9a43-cd47-4996-81de-78147b8af713", "metadata": {}, "outputs": [], "source": [ "isotherms = [\n", " [\n", " DataSet.binary_vle_pressure(\n", " np.array([temperature]*len(isotherm)) *KELVIN, \n", " isotherm.p.values * BAR, \n", " isotherm.x1.values,\n", " Phase.Liquid\n", " ),\n", " DataSet.binary_vle_pressure(\n", " np.array([temperature]*len(isotherm)) *KELVIN, \n", " isotherm.p.values * BAR, \n", " isotherm.y1.values,\n", " Phase.Vapor\n", " ),\n", " ]\n", " for temperature, isotherm in data.groupby('t')\n", "]\n", "\n", "from itertools import chain\n", "estimator_p = Estimator(list(chain.from_iterable(isotherms)), weights=[1]*6, losses=[Loss.linear()]*6)" ] }, { "cell_type": "code", "execution_count": 15, "id": "157a03af-7d98-479d-b44c-a79f6d737c2d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Iteration Total nfev Cost Cost reduction Step norm Optimality \n", " 0 1 2.2123e-04 3.56e-03 \n", " 1 2 8.2939e-06 2.13e-04 5.17e-02 1.51e-04 \n", " 2 3 8.1416e-06 1.52e-07 1.13e-03 1.64e-06 \n", " 3 4 8.1416e-06 2.73e-11 1.54e-05 4.04e-08 \n", " 4 5 8.1416e-06 1.29e-14 3.10e-07 2.78e-09 \n", "`gtol` termination condition is satisfied.\n", "Function evaluations 5, initial cost 2.2123e-04, final cost 8.1416e-06, first-order optimality 2.78e-09.\n", "CPU times: user 2.96 s, sys: 75.1 ms, total: 3.03 s\n", "Wall time: 866 ms\n" ] } ], "source": [ "%%time\n", "initial_kij = [0.0] # \n", "fitted_kij_p = least_squares(cost, initial_kij, bounds=[-0.5, 0.5], args=(estimator_p,), verbose=2).x" ] }, { "cell_type": "code", "execution_count": 16, "id": "8833ef48-c0aa-420c-8f2a-a7e920946d7f", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_comparison(data, fitted_kij_p[0])" ] }, { "cell_type": "markdown", "id": "1512c6fb-1727-48a3-a8e2-c724978c7662", "metadata": {}, "source": [ "# Evaluating the results\n", "\n", "We end up with 3 slightly different values for $k_{ij}$.\n", "Note that comparing the MARD values of the three different ways we created `DataSet`s is not very informative since each contains a different property that is predicted. E.g. the MARD of the chemical potential cost function contains the differences of chemical potentials of both phases and compares these values to zero. Finally, note that the MARD is not the metric that is minimized." ] }, { "cell_type": "code", "execution_count": 17, "id": "815c48a9-702d-4dc8-8ee0-4cd4b27a92f2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Adjusted k_ij parameters and MARDs\n", "MARD (distance, k_ij = 0.05082) = 1.302 %\n", "MARD (chem. pot., k_ij = 0.05048) = 6.181 %\n", "MARD (pressure, k_ij = 0.05056) = 3.092 %\n" ] } ], "source": [ "print(\"Adjusted k_ij parameters and MARDs\")\n", "\n", "mard_distance = estimator.mean_absolute_relative_difference(eos_from_kij(fitted_kij)) * 100\n", "mard_mu = estimator_mu.mean_absolute_relative_difference(eos_from_kij(fitted_kij_mu)) * 100\n", "mard_p = estimator_p.mean_absolute_relative_difference(eos_from_kij(fitted_kij_p)) * 100\n", "print(f\"MARD (distance, k_ij = {fitted_kij[0]:>6.4}) = {mard_distance.mean():>8.4} %\")\n", "print(f\"MARD (chem. pot., k_ij = {fitted_kij_mu[0]:>6.4}) = {mard_mu.mean():>8.4} %\")\n", "print(f\"MARD (pressure, k_ij = {fitted_kij_p[0]:>6.4}) = {mard_p.mean():>8.4} %\")" ] }, { "cell_type": "markdown", "id": "20d1f5b9-fc65-49c2-8eac-bbd07c662e70", "metadata": {}, "source": [ "# Summary\n", "\n", "- The `Estimator` object in FeO$_\\text{s}$ allows the collection of `DataSet` objects for adjusting parameters.\n", " - The `Estimator` takes a list of `DataSet` objects, weights, and `Loss` objects as inputs.\n", " - It calculates the cost of a model where the cost function can be different for each `DataSet`.\n", "- To work with `scipy`'s `least_squares` solver, a cost function is required.\n", " - Two functions, `eos_from_kij` and `cost`, are built for this purpose.\n", " - `eos_from_kij` constructs the parameters and equation of state for the current $k_{ij}$ value.\n", " - `cost` calculates and returns the cost of the current model based on the parameters and estimator.\n", "- An initial parameter guess and bounds are necessary for parameter adjustment.\n", "- The `Estimator.mean_absolute_relative_difference` is probably is not the most instructive metric to judge the quality of the adjusted parameter. It's straight forward to calculate MARDs of composition or pressure/temperature with FeO$_\\text{s}$ which can be used to get an idea of the quality of the adjustment." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }