{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n# Oil entrainment rate\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\nimport matplotlib.pyplot as plt\nfrom opendrift.models.physics_methods import oil_wave_entrainment_rate_li2017" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Viscosities from 0 to 20 Pa*s / kg/ms\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "vis = np.linspace(0, 20, 100)\n\ncolors = ['b', 'g', 'r']\nlstyles = ['-', '-.']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculating and plotting the entrainment rate as function of viscosity\nfor 3 wind speeds\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "fig, ax = plt.subplots()\nfor wind, color in zip([6, 10, 15], colors):\n\n # Entrainment rate from Li (2017)\n for ift, ls in zip([.003, 10], lstyles):\n r = oil_wave_entrainment_rate_li2017(\n dynamic_viscosity=vis, oil_density=950, interfacial_tension=ift,\n wind_speed=wind)\n # from instantaneous rate (s-1) we calculate the probability of entrainment within one hour:\n p1h = 1-np.exp(-3600*r)\n ax.plot(vis, p1h, color+ls, label='Li(2017), %s m/s wind, IFT: %s' % (wind, ift))\n\nplt.legend()\nax.set_xlim(vis.min(), vis.max())\nax.set_ylim(0, 1.05)\n\n# Make second x-axis showing viscosity in Centipoise\nax2 = ax.twiny()\nx1, x2 = ax.get_xlim()\nax2.set_xlim(1000*x1, 1000*x2)\nax2.figure.canvas.draw()\nax2.set_xlabel('Dynamic viscosity [Centipoise]')\n\nax.set_ylabel('Fraction entrained in 1 hour')\nax.set_xlabel('Dynamic viscosity [Pa*s] / [kg/ms]')\n\nplt.show()" ] } ], "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.11.6" } }, "nbformat": 4, "nbformat_minor": 0 }