{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def NEMO_tanh(ks, a, kth, acr):\n", " \"\"\"A generic tanh used in NEMO\"\"\"\n", " return a* np.tanh((ks-kth)/acr)\n", "def NEMO_tanh_integral(ks, a, kth, acr):\n", " \"\"\"A generic integrated tanh used in NEMO grid\"\"\"\n", " return a*acr*np.log(np.cosh((ks-kth)/acr))" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3117.79416836\n" ] }, { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x7f6449cfa978>]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x7f6449daaf28>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ks = np.arange(27)\n", "ppa0 = 155.3\n", "ppa1 = 146.\n", "pkth = 0.\n", "ppacr = 10.\n", "depths = ppa0*ks + NEMO_tanh_integral(ks, ppa1, ppkth, ppacr)\n", "ppsur = depths[0]\n", "depths = depths - ppsur\n", "print (depths[-1])\n", "plt.plot(ks, depths, 'o')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }