Skip to content

Instantly share code, notes, and snippets.

@santiago-salas-v
Last active August 21, 2016 08:02
Show Gist options
  • Save santiago-salas-v/f562c820843f35a2ca60f37613d5a7df to your computer and use it in GitHub Desktop.
Save santiago-salas-v/f562c820843f35a2ca60f37613d5a7df to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Debye-Hueckel parameters\n",
"Ref. Mortimer 7.4\n",
"\n",
"DH (7.4-14)\n",
"$$ln(\\gamma_i) = - {{z_i^2 \\alpha I^{1/2}}\\over{1+\\beta a I^{1/2}}} \\approx - {{z_i^2 \\alpha I^{1/2}}\\over{1+ (I/m^{\\circ})^{1/2}}} \\\\\n",
"I = {{1}\\over{2}} \\sum_{i=1}^{\\#s}{m_i z_i^2}\n",
"$$\n",
"Params. $\\alpha$, $\\beta$ (7.4-6 , 7.4-10)\n",
"$$\n",
"\\begin{align}\n",
"\\alpha = & (2 \\pi N_{Av} \\rho_1)^{1/2} \\left({e^2}\\over{4 \\pi \\epsilon k_B T} \\right)^{3/2} \\\\\n",
"\\beta = & e \\left({2 N_{Av} \\rho_1}\\over{\\epsilon k_B T} \\right)^{1/2}\n",
"\\end{align}\n",
"$$\n",
"\n",
"Constants\n",
"$$\n",
"\\begin{aligned}\n",
"\\text{Vacuum permittivity } & \\epsilon_0 = 8.85418781762(10)^{-12} C^2 N^{-1} m^{-2} \\\\\n",
" & = 8.85418781762(10)^{-21} C^2 dyn^{-1} cm^{-2} \\\\\n",
"\\text{pi } & \\pi = 3.14159265359 \\\\\n",
"\\text{Avogadro number } & N_{Av} = 6.02214129(10)^{+23} mol^{-1} \\\\\n",
"\\text{Electronic charge } & e = 1.602176565(10)^{-19} C \\\\\n",
"\\text{Boltzman constant } & k_B = 1.3806488(10)^{-23} J K^{-1} \\\\\n",
" & = 1.3806488(10)^{-16} erg K^{-1}\\\\\n",
"\\text{Conversions } & 1N = 10^{-5} dyn; 1m = 10^{-2}m; \\\\\n",
" & 1erg = 1dyn\\times cm; 1 statC = 1 dyn^{1/2} cm\n",
"\\end{aligned}\n",
"$$\n",
"Water at 298.15K: \n",
"$$\n",
"\\begin{aligned}\n",
"{{\\epsilon}\\over{\\epsilon_0}} = & 78.54 \\\\\n",
"\\rho_1 = & 0.99714 kg L^{-1} \\\\\n",
"\\alpha = & 1.17090945226 kg^{1/2} mol^{-1/2} \\\\\n",
"\\beta = & 3.281709105219(10)^9 kg^{1/2} mol^{-1/2} m^{-1}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Ref. NSRDS-NBS-24\n",
"D-H\n",
"$$\n",
"log(\\gamma_c) = - z_i^2 A_c \\sqrt{I_c}\\\\\n",
"log(\\gamma) = - z_i^2 A_m \\sqrt{I}\\\\\n",
"ln(\\gamma) = log(\\gamma) \\times ln(10)\\\\\n",
"\\therefore \\alpha = A_m \\times ln(10)\\\\\n",
"I_c = {{1}\\over{2}} \\sum_{i=1}^{\\#s}{c_i z_i^2}\\\\\n",
"I = {{1}\\over{2}} \\sum_{i=1}^{\\#s}{m_i z_i^2}\\\\\n",
"$$\n",
"Param. $A_c$ , $A_m$\n",
"$$\n",
"\\begin{align}\n",
"A_m = & {{1}\\over{ln(10)}} \\times \n",
" (2 \\pi N_{Av} \\rho_1)^{1/2} \\left({e^2}\\over{4 \\pi \\epsilon k_B T} \\right)^{3/2}\\\\\n",
"A_c = & {A_m}\\over{\\rho_1^{1/2}}\\\\\n",
" = & \\left({2 \\pi N_{Av}}\\over{1000L/m^3}\\right)^{1/2} \\times\n",
" {{\\left({e}\\over{\\sqrt{4 \\pi \\epsilon_0}}\\right)^3}\\over{ ln(10) k_B^{3/2}}} \\times\n",
" \\left({{1}\\over{T^{3/2}\\left({{\\epsilon}\\over{\\epsilon_0}}\\right)^{3/2}}} \\right)\\\\\n",
" \\left({e}\\over{\\sqrt{4 \\pi \\epsilon_0}}\\right) = &\n",
" \\left({1.602176565(10)^{-19} C}\\over\n",
" {\\sqrt{4 \\pi \\times 8.85418781762(10)^{-21} C^2 dyn^{-1} cm^{-2} }}\\right) \\\\\n",
" & = 4.803204505713415(10)^{-10} dyn^{1/2} cm \\\\\n",
" & = 4.803204505713415(10)^{-10} statC \\\\\n",
"A_c = & \\left({2 \\pi \\times 6.02214129(10)^{+23} mol^{-1}}\\over{1000cm^3/L}\\right)^{1/2}\\\\\n",
" & \\times\n",
" {{\\left(4.803204505713415(10)^{-10} dyn^{1/2} cm \\right)^3}\\over\n",
" { ln(10) (1.3806488(10)^{-16} dyn\\times cm\\times K^{-1})^{3/2}}}\\\\\n",
" & \\times \n",
" \\left({{1}\\over{T^{3/2}\\left({{\\epsilon}\\over{\\epsilon_0}}\\right)^{3/2}}} \\right)\\\\\n",
" & = \\left({{1.824811965563(10)^6 L^{1/2} mol^{-1/2} K^{3/2}}\n",
" \\over{T^{3/2}\\left({{\\epsilon}\\over{\\epsilon_0}}\\right)^{3/2}}} \\right)\\\\\n",
"\\end{align}\n",
"$$\n",
"Water at 298.15K: \n",
"$$\n",
"\\begin{aligned}\n",
"{{\\epsilon}\\over{\\epsilon_0}} = & 78.30 \\text{ ...(NSRDS-NBS-24)} \\\\\n",
"\\rho_1 = & 0.99707 kg/L \\text{ ...(NSRDS-NBS-24)} \\\\\n",
"A_c = & 0.51159142491450282 L^{1/2} mol^{-1/2} \\text{ ... OK}\\\\\n",
"A_m = & 0.51084139367609638 kg^{1/2} mol^{-1/2} \\text{ ... OK}\\\\\n",
"\\end{aligned}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mortimer 7.4-10\n",
"alpha = 1.17090945226 kg^(1/2) mol^(-1/2)\n",
"Mortimer 7.4-6\n",
"beta = 3.281709105219e+09 kg^(1/2) mol^(-1/2) m^-1\n",
"==>>\n",
"A_m = alpha/ln(10) = 0.508519513925 kg^(1/2) mol^(-1/2)\n",
"A_c = A_m/rho_0^(1/2) = 0.509248260364 L^(1/2) mol^(-1/2)\n",
"\n",
"NSRDS-NBS-24\n",
"A_c = 0.511591424915 L^(1/2) mol^(-1/2) m^-1\n",
"A_c = 0.51159600456 L^(1/2) mol^(-1/2) m^-1\n",
"A_c * (T*epsilon)^(3/2) = 1.824811965563e+06 L^(1/2) mol^(-1/2) m^-1\n",
"5.108593253509e-01\n",
"1.824811965563e+06\n",
"1.824828300848e+06\n"
]
}
],
"source": [
"import numpy as np\n",
"\n",
"# NOTE: sp.constants has:\n",
"# k_B=1.3806488e-23 J K^-1; Gerd-Wedler has:\n",
"# k_B=1.380662e-23 K K^-1\n",
"epsilon_0 = 8.85418781762e-12 # C^2 * N^-1 * m^-2\n",
"pi = 3.14159265359\n",
"n_a = 6.02214129e+23 # mol^-1\n",
"e = 1.602176565e-19 # C\n",
"k_b = 1.3806488e-23 # J K^-1\n",
"k_b_cgs = 1.3806488e-16 # erg K^-1 [=] dyn cm K^-1 [=] 10^-5 N 10^-2 m K^-1\n",
"epsilon_0_cgs = 8.85418781762e-21 # C^2 * dyn^-1 * cm^-2 [=] C^2 10^5 N^-1 10^-4 m^2\n",
"\n",
"t_abs = 298.15 # K\n",
"epsilon = 78.54*epsilon_0 # at 298.15 K\n",
"rho_0 = 0.99714 # kg * L^-1\n",
"\n",
"# alpha\n",
"# [=] mol^(-1/2) (kg/L)^(1/2) (C^2/(C^2*N^-1*m^-2*N*m*K^-1*K)))^(3/2)\n",
"# [=] (kg/mol * m^3/L)^(1/2) [=] kg^(1/2) mol^(-1/2) * 1000^(1/2)\n",
"alpha = (2*pi*n_a*(rho_0*1000))**(1/2.0) * \\\n",
" (e**2/(4*pi*epsilon*k_b*t_abs))**(3/2.0)\n",
"# beta\n",
"# [=] (C^2/mol kg/L * 1000L/m^3 / (C^2 N^-1 m^-2 * N m K^-1 * K))^(1/2) \n",
"# [=] kg^(1/2) mol^(-1/2) m^-1 * 1000^(1/2)\n",
"beta = e*(2*n_a*(rho_0*1000)/(epsilon*k_b*t_abs))**(1/2.0)\n",
"\n",
"# A_c NSRDS-NBS-24\n",
"# [=] mol^(1/2) * C^3 /(N m K^-1 K C^2 N^-1 m^-2)^(3/2)\n",
"a_c = (2*pi*n_a/1000.0)**(1/2.0)* \\\n",
" (e/(4*pi*epsilon_0_cgs)**(1/2.0))**3/ \\\n",
" (np.log(10.0)*k_b_cgs**(3/2.0)) * \\\n",
" (1/(t_abs**(3/2.0)*78.30**(3/2.0)))\n",
"a_c_2 = (2*3.14159265*6.0225228e+23/1000.0)**(1/2.0) * \\\n",
" 4.8029820e-10**3/ \\\n",
" (np.log(10.0)*(1.3805418e-16)**(3/2.0)) * \\\n",
" (1/(298.15**(3/2.0)*78.30**(3/2.0)))\n",
"numerator = (2*pi*n_a*rho_0*1000.0)**(1/2.0)*(e**2/(4*pi*epsilon_0*k_b))**(3/2.0)/np.log(10.0)\n",
"numerator1 = (2*3.14159265*6.0225228e+23/1000.0)**(1/2.0)*4.8029820e-10**3/(1.3805418e-16)**(3/2.0)/np.log(10.0)\n",
"denominator = (78.30*t_abs)**(3/2.0)\n",
"print 'Mortimer 7.4-10'\n",
"print 'alpha = ' + str(alpha) + ' kg^(1/2) mol^(-1/2)'\n",
"print 'Mortimer 7.4-6'\n",
"print 'beta = ' + str('%1.12e' % beta) + ' kg^(1/2) mol^(-1/2) m^-1'\n",
"print '==>>'\n",
"print 'A_m = alpha/ln(10) = ' + str(alpha / np.log(10.0)) + ' kg^(1/2) mol^(-1/2)'\n",
"print 'A_c = A_m/rho_0^(1/2) = ' + str(alpha / np.log(10.0) / rho_0**(1/2.0)) + ' L^(1/2) mol^(-1/2)'\n",
"print ''\n",
"print 'NSRDS-NBS-24'\n",
"print 'A_c = ' + str(a_c) + ' L^(1/2) mol^(-1/2) m^-1'\n",
"print 'A_c = ' + str(a_c_2) + ' L^(1/2) mol^(-1/2) m^-1'\n",
"print 'A_c * (T*epsilon)^(3/2) = ' + \\\n",
" str('%1.12e' % (a_c * (298.15*78.30)**(3/2.0))) + \\\n",
" ' L^(1/2) mol^(-1/2) m^-1'\n",
"print str('%1.12e' % (numerator/denominator))\n",
"print str('%1.12e' % (numerator/0.99714**(1/2.0)))\n",
"print str('%1.12e' % (numerator1))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2997924579.9999666"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1/(4*pi*epsilon_0*1e-5*1e-2**2)**(1/2.0) # C^-1 dyn^(1/2) * cm ; "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"electron charge = 4.803204505713e-10 dyn^(1/2) cm = 4.803204505713e-10 statC\n"
]
}
],
"source": [
"val ='%1.12e' % (e/(4*pi*epsilon_0*1e-5*1/100.0**2)**(1/2.0)) # [=] C/(C^2 N^-1 m^-2 N dyn^-1 m^2 cm^-2)^(1/2) \n",
" # [=] dyn^(1/2) cm = statC\n",
"print 'electron charge = ' + val + ' dyn^(1/2) cm = ' + val + ' statC'"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.50851951392487704"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1.17090945226/np.log(10.0)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"4.803204505713415e-10"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1.602176565*10**(-19)/(4*pi*8.85418781762*10**(-21))**(1/2.0)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.51159142491450282"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(2*3.14159265359*6.02214129e+23/1000)**(1/2.0)\\\n",
"*4.803204505713415e-10**3/(np.log(10.0)*1.3806488e-16**(3/2.0))\\\n",
"*1/(298.15**(3/2.0)*78.30**(3/2.0))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'1.824811965563e+06'"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'%1.12e' % ((2*3.14159265359*6.02214129e+23/1000)**(1/2.0)\\\n",
"*4.803204505713415e-10**3/(np.log(10.0)*1.3806488e-16**(3/2.0)))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.51084139367609638"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(2*3.14159265359*6.02214129e+23/1000)**(1/2.0)\\\n",
"*4.803204505713415e-10**3/(np.log(10.0)*1.3806488e-16**(3/2.0))\\\n",
"*1/(298.15**(3/2.0)*78.30**(3/2.0))*0.99707**(1/2.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Gerd-Wedler form\n",
"$$\n",
"\\begin{align}\n",
"ln(y_{\\pm}) = & z_+ z_-\\cdot A\\cdot I^{1/2}\\\\\n",
"A = & (2 \\pi N_{Av})^{1/2} \\left({e^2}\\over{4 \\pi \\varepsilon_r \\varepsilon_0 k T} \\right)^{3/2}\\\\\n",
"= & \\left({e^2}\\over{4 \\varepsilon_r \\varepsilon_0 k T} \\right)^{3/2} \\left({2 N_A}\\over{\\pi^2} \\right)^{1/2}\\\\\n",
"\\varepsilon_r = & \\left( {\\varepsilon}\\over{\\varepsilon_0} \\right)\n",
"\\end{align}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Gerd-Wedler 2.5-183, 2.5-200 \n",
"\n",
"A=3.7127e-02(mol/m^3)^-1/2\n",
"A/ln(10)=0.5099(mol/L)^-1/2\n",
"A_m/ln(10)=0.5092(mol/kg)^-1/2\n"
]
}
],
"source": [
"# Gerd-Wedler 2.5-183, 2.5-200\n",
"epsilon_0 = 8.85418782e-12 # C^2 * N^-1 * m^-2\n",
"pi = 3.14 # Nur so rechnet man 0.5099 sonst ergibt sich 0.5096\n",
"n_a = 6.02214e+23 # mol^-1\n",
"e = 1.602177e-19 # C\n",
"k_b = 1.380662e-23 # J K^-1\n",
"\n",
"t_abs = 298 # K\n",
"epsilon_r = 78.54 # at 298.15 K\n",
"rho_0 = 0.99714 # kg * L^-1\n",
"\n",
"A_c = 3.7126*10**-2*(1000)**(1/2.0)/np.log(10.0)#(mol/L)^-1/2\n",
"A_c = (e**2/(4*epsilon_r*epsilon_0*k_b*t_abs))**(3/2.0) \\\n",
" *(2*n_a/pi**2)**(1/2.0)*(1000)**(1/2.0)/np.log(10.0)\n",
"print 'Gerd-Wedler 2.5-183, 2.5-200 \\n'\n",
"print 'A=' + '%1.4e' % (A_c/(1000)**(1/2.0)*np.log(10.0)) + \\\n",
" '(mol/m^3)^-1/2'\n",
"print 'A/ln(10)=' + '%1.4f' % (A_c) + '(mol/L)^-1/2'\n",
"print 'A_m/ln(10)=' + '%1.4f' % (A_c*0.99714**(1/2.0)) + \\\n",
" '(mol/kg)^-1/2'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dielectric constant (Permittivity)\n",
"Polynomial fits, Ref. * CRC Handbook of Chemistry and Physics, 90th ed., CRC Press, 2009 *\n",
"$$ \\varepsilon(T/K) = a + b (T/K) + c (T/K)^2 + d (T/K)^3 $$\n",
"\n",
"| Param | Val, H2O |\n",
"| -- | ------------- |\n",
"| a | 0.24921E+03 |\n",
"| b | –0.79069E+00 |\n",
"| c | 0.72997E-03 |\n",
"| d | 0.0 |\n",
"| Range | 273K - 372K |\n",
"| T/K (ref.)| 293.2 |\n",
"| $$\\varepsilon_r \\text{(ref.)}$$ | 80.100 |\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"permittivity(H2O, 293.2K) = 80.1324682128\n",
"permittivity(H2O, 298.15K) = 78.3553081223\n"
]
}
],
"source": [
"def permit_water(T):\n",
" a = +0.24921E+03\n",
" b = -0.79069E+00\n",
" c = +0.72997E-03\n",
" d = +0.00000E+00\n",
" return a + b*T + c*T**2 + d*T**3\n",
"print 'permittivity(H2O, 293.2K) = ' + str(permit_water(293.2))\n",
"print 'permittivity(H2O, 298.15K) = ' + str(permit_water(298.15))"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x890c390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import sympy\n",
"x = sympy.symbols('x')\n",
"sympy.diff(sympy.sqrt(x))\n",
"% matplotlib inline\n",
"p1 = sympy.plot(x**(1/2.0), x**(1/2.0)/(1+x**(1/2.0))-0.3*x, \n",
" (x,0,5.0), legend=True, show=False)\n",
"p1[0].line_color = 'blue'\n",
"p1[1].line_color = 'green'\n",
"p1.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment