{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Large $\\omega^2$ correction\n", "In the limit of large $\\omega^2$, large roundoff error can become problematic as the correlation almost exactly matches the uncorrelated contribution to solute diffusion, and so it becomes necessary to introduce an alternative treatment specific to the large $\\omega^2$ limit. We will show the range of roundoff error by using FCC as an example." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import sys\n", "sys.path.extend(['../'])\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.style.use('seaborn-whitegrid')\n", "%matplotlib inline\n", "from onsager import crystal, OnsagerCalc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create FCC crystal, and diffuser with first neighbor range." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Diffuser for atom 0 (FCC), Nthermo=1\n", "#Lattice:\n", " a1 = [ 0. 0.5 0.5]\n", " a2 = [ 0.5 0. 0.5]\n", " a3 = [ 0.5 0.5 0. ]\n", "#Basis:\n", " (FCC) 0.0 = [ 0. 0. 0.]\n", "vacancy configurations:\n", "v:+0.000,+0.000,+0.000\n", "solute configurations:\n", "s:+0.000,+0.000,+0.000\n", "solute-vacancy configurations:\n", "s:+0.000,+0.000,+0.000-v:-1.000,+0.000,+0.000\n", "omega0 jumps:\n", "omega0:v:+0.000,+0.000,+0.000^v:+1.000,+0.000,-1.000\n", "omega1 jumps:\n", "omega1:s:+0.000,+0.000,+0.000-v:+1.000,+0.000,-1.000^v:+2.000,+0.000,-2.000\n", "omega1:s:+0.000,+0.000,+0.000-v:-1.000,+1.000,+0.000^v:+0.000,+1.000,-1.000\n", "omega1:s:+0.000,+0.000,+0.000-v:+1.000,-1.000,+0.000^v:+2.000,-1.000,-1.000\n", "omega1:s:+0.000,+0.000,+0.000-v:+0.000,-1.000,+0.000^v:+1.000,-1.000,-1.000\n", "omega2 jumps:\n", "omega2:s:+0.000,+0.000,+0.000-v:-1.000,+0.000,+1.000^s:+0.000,+0.000,+0.000-v:+1.000,+0.000,-1.000\n", "\n" ] } ], "source": [ "a0 = 1.\n", "FCC = crystal.Crystal.FCC(a0, [\"FCC\"])\n", "diffuser = OnsagerCalc.VacancyMediated(FCC, 0, FCC.sitelist(0), \n", " FCC.jumpnetwork(0, 0.75*a0), 1)\n", "print(diffuser)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we fill out our thermodynamic dictionary." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "preV [ 1.]\n", "preT1 [ 1. 1. 1. 1.]\n", "eneT2 [ 0.]\n", "eneSV [ 0.]\n", "preSV [ 1.]\n", "eneV [ 0.]\n", "eneT1 [ 0. 0. 0. 0.]\n", "eneS [ 0.]\n", "preT2 [ 1.]\n", "preT0 [ 1.]\n", "preS [ 1.]\n", "eneT0 [ 0.]\n" ] } ], "source": [ "tdict = {'preV': np.ones(1), 'eneV': np.zeros(1), 'preT0': np.ones(1), 'eneT0': np.zeros(1)}\n", "tdict.update(diffuser.maketracerpreene(**tdict))\n", "for k,v in tdict.items():\n", " print(k, v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, to loop through a range of $\\omega^2$ values from $10^{-17}$ to $10^{17}$, and evaluate the $L_{\\mathrm{ss}}$ in three different ways:\n", "\n", "1. Never using the large $\\omega^2$ treatment (should fail for large $\\omega^2$).\n", "2. Always using the large $\\omega^2$ treatment (should fail for small $\\omega^2$).\n", "3. Automatically switching treatment depending on $\\omega^2$ value (should be accurate over entire range).\n", "\n", "Because the failure can be pretty spectacular, we check for NaN, Inf, or 0 values." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "omega2\tno large\tall large\tautomatic\n", "10^-17.00\t7.81451419e-01\t1.00000000e+00\t7.8145141885543312e-01\n", "10^-16.75\t7.81451419e-01\t1.00000000e+00\t7.8145141885543312e-01\n", "10^-16.50\t7.81451419e-01\t1.00000000e+00\t7.8145141885543301e-01\n", "10^-16.25\t7.81451419e-01\t1.00000000e+00\t7.8145141885543301e-01\n", "10^-16.00\t7.81451419e-01\t3.00239975e-01\t7.8145141885543301e-01\n", "10^-15.75\t7.81451419e-01\t5.33910566e-01\t7.8145141885543312e-01\n", "10^-15.50\t7.81451419e-01\t5.69665300e-01\t7.8145141885543301e-01\n", "10^-15.25\t7.81451419e-01\t8.44186728e-01\t7.8145141885543312e-01\n", "10^-15.00\t7.81451419e-01\t8.18836296e-01\t7.8145141885543312e-01\n", "10^-14.75\t7.81451419e-01\t7.62729380e-01\t7.8145141885543312e-01\n", "10^-14.50\t7.81451419e-01\t7.69817973e-01\t7.8145141885543312e-01\n", "10^-14.25\t7.81451419e-01\t7.79249287e-01\t7.8145141885543301e-01\n", "10^-14.00\t7.81451419e-01\t7.83234718e-01\t7.8145141885543301e-01\n", "10^-13.75\t7.81451419e-01\t7.81332535e-01\t7.8145141885543312e-01\n", "10^-13.50\t7.81451419e-01\t7.86830524e-01\t7.8145141885543312e-01\n", "10^-13.25\t7.81451419e-01\t7.81654377e-01\t7.8145141885543312e-01\n", "10^-13.00\t7.81451419e-01\t7.81874935e-01\t7.8145141885543301e-01\n", "10^+13.00\t7.81383433e-01\t7.81451419e-01\t7.8145141885543312e-01\n", "10^+13.25\t7.81196581e-01\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+13.50\t7.80341880e-01\t7.81451419e-01\t7.8145141885543312e-01\n", "10^+13.75\t7.81196581e-01\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+14.00\t7.80068729e-01\t7.81451419e-01\t7.8145141885543312e-01\n", "10^+14.25\t7.76223776e-01\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+14.50\t7.74647887e-01\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+14.75\t7.71428571e-01\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+15.00\t7.71428571e-01\t7.81451419e-01\t7.8145141885543301e-01\n", "10^+15.25\t7.77777778e-01\t7.81451419e-01\t7.8145141885543312e-01\n", "10^+15.50\t8.57142857e-01\t7.81451419e-01\t7.8145141885543312e-01\n", "10^+15.75\t1.00000000e+00\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+16.00\t0.00000000e+00\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+16.25\t1.00000000e+00\t7.81451419e-01\t7.8145141885543301e-01\n", "10^+16.50\t1.00000000e+00\t7.81451419e-01\t7.8145141885543301e-01\n", "10^+16.75\t1.00000000e+00\t7.81451419e-01\t7.8145141885543323e-01\n", "10^+17.00\t1.00000000e+00\t7.81451419e-01\t7.8145141885543323e-01\n" ] } ], "source": [ "print('omega2\\tno large\\tall large\\tautomatic')\n", "om2_list, correl_list = [], []\n", "for om2pow in np.concatenate((np.linspace(-17,-13,num=17), np.linspace(13,17,num=17))):\n", " om2 = 10.**(om2pow)\n", " tdict['preT2'] = np.array([om2])\n", " correl = []\n", " for large_om2 in (1e33, 1e-33, 1e8):\n", " Lss, Lsv = diffuser.Lij(*diffuser.preene2betafree(1., **tdict), \n", " large_om2=large_om2)[1:3]\n", " if Lsv[0,0] is np.nan or Lsv[0,0] is np.inf or Lsv[0,0]==0 :\n", " c = 1\n", " else:\n", " c = -Lss[0,0]/Lsv[0,0]\n", " correl.append(c)\n", " om2_list.append(om2)\n", " correl_list.append(correl)\n", " print('10^{:+.2f}\\t{:.8e}\\t{:.8e}\\t{:.16e}'.format(om2pow, \n", " correl[0], correl[1], correl[2]))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "om2, correl = np.array(om2_list), np.array(correl_list)\n", "f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)\n", "for ax in (ax1, ax2):\n", " ax.plot(om2, correl[:,2], 'k', label='automatic')\n", " ax.plot(om2, correl[:,0], 'r.', label='no large $\\omega^2$')\n", " ax.plot(om2, correl[:,1], 'g.', label='only large $\\omega^2$')\n", "ax1.set_xlim((1e-17,1e-13))\n", "ax2.set_xlim((1e13,1e17))\n", "ax1.set_ylim((-0.05,1.05))\n", "ax2.set_ylim((-0.05,1.05))\n", "ax1.set_xscale('log')\n", "ax2.set_xscale('log')\n", "ax1.set_xlabel('$\\omega^2$', fontsize='x-large')\n", "ax2.set_xlabel('$\\omega^2$', fontsize='x-large')\n", "ax1.set_ylabel('correlation', fontsize='x-large')\n", "ax2.legend(bbox_to_anchor=(0,0.3,0.5,0.2), ncol=1, \n", " shadow=True, frameon=True, fontsize='x-large')\n", "ax1.yaxis.tick_left()\n", "ax1.tick_params(labelright='off')\n", "ax2.yaxis.tick_right()\n", "ax1.spines['right'].set_visible(False)\n", "ax2.spines['left'].set_visible(False)\n", "\n", "d = .015 # how big to make the diagonal lines in axes coordinates\n", "# arguments to pass plot, just so we don't keep repeating them\n", "kwargs = dict(transform=ax1.transAxes, color='k', clip_on=False)\n", "ax1.plot((1-d,1+d), (-d,+d), **kwargs)\n", "ax1.plot((1-d,1+d),(1-d,1+d), **kwargs)\n", "\n", "kwargs.update(transform=ax2.transAxes) # switch to the bottom axes\n", "ax2.plot((-d,+d), (1-d,1+d), **kwargs)\n", "ax2.plot((-d,+d), (-d,+d), **kwargs)\n", "plt.show()\n", "# plt.savefig('largeomega2.pdf', transparent=True, format='pdf')" ] } ], "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.4.5" } }, "nbformat": 4, "nbformat_minor": 0 }