mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-01-10 06:28:03 -05:00
Added derivation for Plank-Einstein generalized form - will work nicely, simplifying PlanckEinstein, PlankEinstein2 and Aly-Lee all into one form. To be implemented tomorrow.
Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
This commit is contained in:
175
doc/notebooks/CP0.ipynb
Normal file
175
doc/notebooks/CP0.ipynb
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": ""
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
"worksheets": [
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 1,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Conversion of Aly-Lee form to Planck-Einstein"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from __future__ import division\n",
|
||||
"from sympy import *\n",
|
||||
"init_session(quiet=True)\n",
|
||||
"init_printing()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"IPython console for SymPy 0.7.5 (Python 2.7.2-32-bit) (ground types: python)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"alpha0 = a_k*log(c_k + d_k*exp(b_k*tau/T_c))\n",
|
||||
"display(diff(alpha0, tau, 2)*(-tau**2).together().ratsimp())"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"latex": [
|
||||
"$$- \\frac{a_{k} b_{k}^{2} d_{k} \\tau^{2} e^{\\frac{b_{k} \\tau}{T_{c}}}}{T_{c}^{2} \\left(c_{k} + d_{k} e^{\\frac{b_{k} \\tau}{T_{c}}}\\right)} \\left(- \\frac{d_{k} e^{\\frac{b_{k} \\tau}{T_{c}}}}{c_{k} + d_{k} e^{\\frac{b_{k} \\tau}{T_{c}}}} + 1\\right)$$"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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\n",
|
||||
"text": [
|
||||
" \u239b b_k\u22c5\u03c4 \u239e \n",
|
||||
" \u239c \u2500\u2500\u2500\u2500\u2500 \u239f b_k\u22c5\u03c4 \n",
|
||||
" \u239c T_c \u239f \u2500\u2500\u2500\u2500\u2500 \n",
|
||||
" 2 2 \u239c d_k\u22c5\u212f \u239f T_c \n",
|
||||
"-a_k\u22c5b_k \u22c5d_k\u22c5\u03c4 \u22c5\u239c- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + 1\u239f\u22c5\u212f \n",
|
||||
" \u239c b_k\u22c5\u03c4 \u239f \n",
|
||||
" \u239c \u2500\u2500\u2500\u2500\u2500 \u239f \n",
|
||||
" \u239c T_c \u239f \n",
|
||||
" \u239d c_k + d_k\u22c5\u212f \u23a0 \n",
|
||||
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
|
||||
" \u239b b_k\u22c5\u03c4\u239e \n",
|
||||
" \u239c \u2500\u2500\u2500\u2500\u2500\u239f \n",
|
||||
" 2 \u239c T_c \u239f \n",
|
||||
" T_c \u22c5\u239dc_k + d_k\u22c5\u212f \u23a0 "
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"And then with some manual simplification:\n",
|
||||
"$$\\frac{c_p^0}{R} = - \\frac{a_{k} (b_{k}\\tau/T_c)^{2} c_k d_{k} e^{\\frac{b_{k} \\tau}{T_{c}}}}{ \\left(c_{k} + d_{k} e^{\\frac{b_{k} \\tau}{T_{c}}}\\right)^2} $$\n",
|
||||
"\n",
|
||||
"Two important identities:\n",
|
||||
"$$ \\left(\\frac{1}{\\cosh x}\\right) = \\frac{2e^{-x}}{1+e^{-2x}}$$\n",
|
||||
"$$ \\left(\\frac{1}{\\sinh x}\\right) = \\frac{2e^{-x}}{1-e^{-2x}}$$\n",
|
||||
"which yield\n",
|
||||
"$$ \\left(\\frac{1}{\\cosh x}\\right)^2 = \\frac{4e^{-2x}}{(1+e^{-2x})^2}$$\n",
|
||||
"$$ \\left(\\frac{1}{\\sinh x}\\right)^2 = \\frac{4e^{-2x}}{(1-e^{-2x})^2}$$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"B, D, T = symbols('B, D, T', real = True, positive = True)\n",
|
||||
"# From Aly-Lee:\n",
|
||||
"term1 = ((D/T)/sinh(D/T))**2\n",
|
||||
"# Planck Einstein\n",
|
||||
"term2 = (B/T)**2*exp(B/T)/(exp(B/T)-1)**2\n",
|
||||
"diff1 = term2 - term1\n",
|
||||
"display(diff1.rewrite(exp).subs(B, 2*D).simplify())\n",
|
||||
"term2 = (2*D/T)**2*exp(2*D/T)/(exp(2*D/T)-1)**2\n",
|
||||
"display(term2)\n",
|
||||
"print 'which is the same as the Aly-Lee sinh term with b_k = 2*D'\n",
|
||||
"\n",
|
||||
"B, F, T = symbols('B, F, T', real = True, positive = True)\n",
|
||||
"# From Aly-Lee:\n",
|
||||
"term1 = ((F/T)/cosh(F/T))**2\n",
|
||||
"# Planck Einstein\n",
|
||||
"term2 = (B/T)**2*exp(-B/T)/(exp(-B/T)+1)**2\n",
|
||||
"diff2 = term2 - term1\n",
|
||||
"display(diff2.rewrite(exp).subs(B, 2*F).simplify())\n",
|
||||
"# So Aly-Lee cosh term can be directly converted to Plank-Einstein2 term with b_k = 2*F, and c=1"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"latex": [
|
||||
"$$0$$"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
|
||||
"text": [
|
||||
"0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"latex": [
|
||||
"$$\\frac{4 D^{2} e^{\\frac{2 D}{T}}}{T^{2} \\left(e^{\\frac{2 D}{T}} - 1\\right)^{2}}$$"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAIUAAABLBAMAAACsFlnLAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMpndu3bvImbNiRBU\nq0Qb3U6NAAAEZ0lEQVRYCe1YXYgbVRT+spufSSZ/KIj6kog/BUWMqFREMfRFii4NC4X2oeyKiqJi\nB5Qi+pBBUBQRIwjionQoVTEihoUudKFuwCIIlV1KK4rGjeybL13buurWOp77N5PJ3EkG42Mv5J5z\nvu+7Z+7czL05EyBmu/6ohant9s8x5VpZvVhDooWspWXjgS3zElJV5Jx48gHVkV0dFeVrKHSRq6o4\nrs1ZhZbSHreQtpDsqjiunbYSf0it+SOwBFwdd6inS/cz/8hg8WUHJ5F5yONGOlcRe8CdOTPDvoL8\nJal90K3l32+3veUZmQJ3M/ovwPib7HRjtFjPph4nPLFN3S30OSJFJVc1CYw0L75LdIotwzkbRnWk\nNop0WI7kJnVNB7/iF09nLHxx64IXjXIMi+Uo1ak7t5b44NTDwPLeHWzEFK7BMeaMbcfAclTYUs45\nadfdRHEnXmLD8ngLXzJnbHN4jrkyCdf7XH2oa94ghp0VZlyfL/Mce5huS4i/e3VfR3h3CjOuXwbP\ncZF0xp9CfFmNMdlCx2jf9npbZ5H4naRLdaHfVsOKLeWNtfSMpX4j1W6pfJpi7n5639ixSkD3kaVZ\nb1QlsB8m/24VH8Medb8vHL7cOyO/C5rEza/HGHZFcmUFolZAHZP/3cbciVET+F/w3E23TZznE/ww\ncY6dqFiTJnkOzf6kOYDVzuQ57tGmMGwtHARPyDCiLtofVOsjdT6/oqWLz2jhYfAAB4pOsTzMULyk\nwESbip472p/3NSI6tm0GX3fqpG5NT6shSWyQCHhPAQGb4QXSQdcNoCJIqOIJWax0MAu0NSqCenqY\nodmqz30F/OSXQj7OvUr4JtTuaVqe1qS7eBJ4xAMCTrYRCFmgds+NPnOiA3MeiZqPDHrG/GDEfbV7\nnvAYc8cy8nW84E/Mo5jjVa7kbs2sX+wdduTuybBfa9Gm3Qv4ZqH9mYp9m+0wn37LZaMXgXQNU7bc\nPcamIqJtZg/P4Z8cBar/qjD6AN89UzVvrHfCDqU1d63zHHOe8lrg7S5SHflWMV33mGhnjudYtZSi\nT7VbB0VA7J5SVRFkoypSkaPSHZA+xny5e0oNFpgfzbKLRFWkIseKzaSiZc4zK3ePIDasjENYVEUq\ncojLsbE0Y/Z+ALl7mjb5mWexWGYg9BWpzOFwCe8K3i6jkN9k4am9bwrer0iP38XaOxyWOapCw3p6\nPPxWsckvrUkgoiIN56DHw2/8XkqOBNSJ5/PcC98LPR5+W2mQn3YAZhFRkcocNpOIJp5cGfAppFpY\ntBStsSJHs6uo3G73Q35NAaTXmJ3dZ4tQ299+8AFGV/pall6gWhFEGF7thDGO5OYjiDD8cRgSiPc+\nGyXw8RnfDXqmfGkJotooWhmZfTiP90/AMAG8Fob0SC569Ve6+iEhNG2HIAXQ8xWvfT1C9ugIbpC6\ndzAY8t8YiiNCY9R8k42IUUH4kBWMA5HpnzsBPBiY9wfjoej5UVdQ2qStPK3NlLVwEBz88+BfPbFP\nimrffr4AAAAASUVORK5CYII=\n",
|
||||
"text": [
|
||||
" 2\u22c5D \n",
|
||||
" \u2500\u2500\u2500 \n",
|
||||
" 2 T \n",
|
||||
" 4\u22c5D \u22c5\u212f \n",
|
||||
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
|
||||
" 2\n",
|
||||
" \u239b 2\u22c5D \u239e \n",
|
||||
" \u239c \u2500\u2500\u2500 \u239f \n",
|
||||
" 2 \u239c T \u239f \n",
|
||||
"T \u22c5\u239d\u212f - 1\u23a0 "
|
||||
]
|
||||
},
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"which is the same as the Aly-Lee sinh term with b_k = 2*D\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"latex": [
|
||||
"$$0$$"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
|
||||
"text": [
|
||||
"0"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 10
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user