{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['nanmean']\n", "`%matplotlib` prevents importing * from pylab and numpy\n" ] } ], "source": [ "import os\n", "import re\n", "import sys\n", "import dataset\n", "from scipy.stats import nanmean\n", "from scipy.optimize import curve_fit\n", "import math\n", "#import numpy\n", "#import matplotlib.pyplot as plt\n", "%pylab inline\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def au2kcal(x):\n", " if type(x) is not list: \n", " x = [ x ]\n", " islist=0\n", " if x==[None]:\n", " return None\n", " else:\n", " islist=1\n", " for i in range(len(x)):\n", " x[i]=x[i]*627.50960803\n", " if not islist:\n", " x=x[0]\n", " return x" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def extapolateTau(taus,energies,errors):\n", " def func(x, a,b):\n", " if type(x) is not list: \n", " x = [ x ]\n", " islist=0\n", " else:\n", " islist=1\n", " res=[0]*len(x)\n", " for i in range(len(x)):\n", " res[i]=a*x[i]+b\n", " if islist==0:\n", " res=res[0]\n", " return res\n", " \n", " popt, pcov = curve_fit(func, taus, energies, sigma=errors, absolute_sigma=True, check_finite=True)\n", " perr = np.sqrt(np.diag(pcov))\n", " \n", "# plt.figure()\n", "# plt.errorbar(taus, au2kcal(energies), yerr=au2kcal(errors), fmt='ro')\n", "# t=arange(0.0, 0.01, 0.001)\n", "# s = au2kcal(func(t,popt[0],popt[1]))\n", "# plt.plot(t, s)\n", "# plt.autoscale(enable=True, axis=u'both', tight=True)\n", "# ax=plt.gca().get_ybound()\n", "# plt.ylim([ax[0],ax[0]+10])\n", "# plt.show()\n", " \n", " return[popt[1],perr[1]]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def extapolateTauQuad(taus,energies,errors):\n", " def func(x, a,b,c):\n", " if type(x) is not list: \n", " x = [ x ]\n", " islist=0\n", " else:\n", " islist=1\n", " res=[0]*len(x)\n", " for i in range(len(x)):\n", " res[i]=a*x[i]**2+b*x[i]+c\n", " if islist==0:\n", " res=res[0]\n", " return res\n", " \n", " popt, pcov = curve_fit(func, taus, energies, sigma=errors, absolute_sigma=True, check_finite=True)\n", " perr = np.sqrt(np.diag(pcov))\n", " \n", "# plt.figure()\n", "# plt.errorbar(taus, au2kcal(energies), yerr=au2kcal(errors), fmt='ro')\n", "# t=arange(0.0, 0.01, 0.001)\n", "# s = au2kcal(func(t,popt[0],popt[1],popt[2]))\n", "# plt.plot(t, s)\n", "# plt.autoscale(enable=True, axis=u'both', tight=True)\n", "# ax=plt.gca().get_ybound()\n", "# plt.ylim([ax[0],ax[0]+10])\n", "# plt.show()\n", " \n", " return[popt[2],perr[2]]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "moleculeDB='3dMLBE20_JTCT11-2036_2015.db' #/home/kdd/test/3dMLBE20_JTCT11-2036_2015.db'\n", "jobDB2='jobDB2.db'#gaussian results (TransitionMetalMolecules2)\n", "jobDB='jobDB.db'#gamess results (TransitionMetalMolecules)\n", "#get list of compounds\n", "with dataset.connect('sqlite:///'+moleculeDB) as DB3d:\n", " compoundList=[]\n", " compoundListMol=[]\n", " for table in ['atoms', 'dimers']:\n", " for molecule in DB3d[table]:\n", " if table=='atoms':\n", " compoundList.append(molecule['atom'])\n", " elif table=='dimers':\n", " compoundList.append(molecule['compound'])\n", " compoundListMol.append(molecule['compound'])\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dfttypList=['none','PBE','B3LYP','B97-1']\n", "typList=['DFT_gaussian','EMIN_casino_gaussian','DMC_casino_gaussian','DFT_gamess','EMIN_casino_gamess','DMC_casino_gamess' ]\n", "dtList=[0.002,0.005,0.008]\n", "energy=numpy.zeros((len(compoundList),len(dfttypList)*len(typList)))\n", "error=numpy.zeros((len(compoundList),len(dfttypList)*len(typList)))\n", "variance=numpy.zeros((len(compoundList),len(dfttypList)*len(typList)))\n", "dissocEnergy=numpy.zeros((len(compoundListMol),len(dfttypList)*len(typList)))\n", "dissocError=numpy.zeros((len(compoundListMol),len(dfttypList)*len(typList)))\n", "dissocEnergyQuad=numpy.zeros((len(compoundListMol),len(dfttypList)*len(typList)))\n", "dissocErrorQuad=numpy.zeros((len(compoundListMol),len(dfttypList)*len(typList)))\n", "dissocEnergyExp=numpy.zeros(len(compoundListMol))\n", "energyExtrap=numpy.zeros((len(compoundList),3*len(dfttypList)*len(typList)))\n", "errorExtrap=numpy.zeros((len(compoundList),3*len(dfttypList)*len(typList)))\n", "dissocEnergyExtrap=numpy.zeros((len(compoundListMol),3*len(dfttypList)*len(typList)))\n", "dissocErrorExtrap=numpy.zeros((len(compoundListMol),3*len(dfttypList)*len(typList)))\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#get dft energy results gaussian\n", "typ=0\n", "for compound in range(len(compoundList)):\n", " for dfttyp in range(len(dfttypList)):\n", " jobRecord={}\n", " jobRecord['dfttyp']=dfttypList[dfttyp]\n", " jobRecord['scftyp']='UHF'\n", " jobRecord['basisXMLFiles']='[\"BFD_Library_noPseudoH.xml\", \"aug-cc-pVTZ-DK_Diffuse.xml\"]'\n", " jobRecord['basisNames']='[\"vtz\", \"aug-cc-pVTZ-DK_Diffuse\"]'\n", " jobRecord['executingProgram']='gaussian_stabCheck2'\n", " jobRecord['compound']=compoundList[compound] \n", "\n", " with dataset.connect('sqlite:///'+jobDB2) as DBdata:\n", " result=DBdata['data'].find_one(**jobRecord)\n", "\n", " if result['status']=='Done':\n", " energy[compound,dfttyp+len(dfttypList)*typ]=au2kcal(result['energy'])\n", " error[compound,dfttyp+len(dfttypList)*typ]=au2kcal(result['error'])\n", " variance[compound,dfttyp+len(dfttypList)*typ]=result['variance']\n", " else:\n", " energy[compound,dfttyp+len(dfttypList)*typ]=None\n", " error[compound,dfttyp+len(dfttypList)*typ]=0.0\n", " variance[compound,dfttyp+len(dfttypList)*typ]=None\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#get dft energy results gamess\n", "typ=3\n", "for compound in range(len(compoundList)):\n", " for dfttyp in range(len(dfttypList)):\n", " jobRecord={}\n", " jobRecord['dfttyp']=dfttypList[dfttyp]\n", " jobRecord['scftyp']='UHF'\n", " jobRecord['basisXMLFiles']='[\"BFD_Library_noPseudoH.xml\", \"aug-cc-pVTZ-DK_Diffuse.xml\"]'\n", " jobRecord['basisNames']='[\"vtz\", \"aug-cc-pVTZ-DK_Diffuse\"]'\n", " jobRecord['executingProgram']='gamessCasinoInt'\n", " jobRecord['compound']=compoundList[compound] \n", "\n", " with dataset.connect('sqlite:///'+jobDB) as DBdata:\n", " result=DBdata['data'].find_one(**jobRecord)\n", "\n", " if result['status']=='Done':\n", " energy[compound,dfttyp+len(dfttypList)*typ]=au2kcal(result['energy'])\n", " error[compound,dfttyp+len(dfttypList)*typ]=au2kcal(result['error'])\n", " variance[compound,dfttyp+len(dfttypList)*typ]=result['variance']\n", " else:\n", " energy[compound,dfttyp+len(dfttypList)*typ]=None\n", " error[compound,dfttyp+len(dfttypList)*typ]=0.0\n", " variance[compound,dfttyp+len(dfttypList)*typ]=None\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#get dmc energy results extrapolated to tau=0 and at tau=[0.002,0.005,0.008] based on gaussian\n", "typ=2\n", "for compound in range(len(compoundList)):\n", " for dfttyp in range(len(dfttypList)):\n", " jobRecord={}\n", " jobRecord['dfttyp']=dfttypList[dfttyp]\n", " jobRecord['scftyp']='UHF'\n", " jobRecord['basisXMLFiles']='[\"BFD_Library_noPseudoH.xml\", \"aug-cc-pVTZ-DK_Diffuse.xml\"]'\n", " jobRecord['basisNames']='[\"vtz\", \"aug-cc-pVTZ-DK_Diffuse\"]'\n", " jobRecord['executingProgram']='casino'\n", " jobRecord['qmctyp']='vmc_dmc'\n", " jobRecord['compound']=compoundList[compound]\n", "\n", " with dataset.connect('sqlite:///'+jobDB2) as DBdata:\n", " results=DBdata['data'].find(**jobRecord)\n", "\n", " resultsExtrap=[]\n", " for result in results:\n", " if result['jastrowFrom']==-1:\n", " continue\n", " elif '_true' in result['symmetry']:\n", " continue\n", " else:\n", " with dataset.connect('sqlite:///'+jobDB2) as DBdata:\n", " jastrowFrom=DBdata['data'].find_one(id=result['jastrowFrom'])\n", " if jastrowFrom['qmctyp']!='emin':\n", " continue\n", " with dataset.connect('sqlite:///'+jobDB2) as DBdata:\n", " jastrowFrom2=DBdata['data'].find_one(id=jastrowFrom['jastrowFrom'])\n", " if jastrowFrom2['qmctyp']!='varmin':\n", " continue\n", " resultsExtrap.append(result)\n", " \n", " for i in reversed(range(len(resultsExtrap))):\n", " if not resultsExtrap[i]['status'] in [\"Done\",\"LargeErrorbar2\", \"BadReblock\", \"LargeErrorbar\"]:\n", " resultsExtrap.pop(i)\n", " \n", " if len(resultsExtrap)<2:\n", " energy[compound,dfttyp+len(dfttypList)*typ]=None\n", " error[compound,dfttyp+len(dfttypList)*typ]=0.0\n", " else: #extrapolate to zero Time\n", "# print([resultsExtrap[i]['dt'] for i in range(len(resultsExtrap))])\n", "# print([resultsExtrap[i]['energy'] for i in range(len(resultsExtrap))])\n", "# print([resultsExtrap[i]['error'] for i in range(len(resultsExtrap))])\n", " [energy[compound,dfttyp+len(dfttypList)*typ], error[compound,dfttyp+len(dfttypList)*typ]]=\\\n", " au2kcal(extapolateTau([resultsExtrap[i]['dt'] for i in range(len(resultsExtrap))],\n", " [resultsExtrap[i]['energy'] for i in range(len(resultsExtrap))],\n", " [resultsExtrap[i]['error'] for i in range(len(resultsExtrap))]))\n", " #non extrapolated results\n", " energyExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ):len(dtList)*(dfttyp+len(dfttypList)*typ)+len(dtList)]=None\n", " errorExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ):len(dtList)*(dfttyp+len(dfttypList)*typ)+len(dtList)]=None\n", " for i in range(len(resultsExtrap)):\n", " if resultsExtrap[i]['dt']==dtList[0]:\n", " dt=0\n", " elif resultsExtrap[i]['dt']==dtList[1]:\n", " dt=1\n", " elif resultsExtrap[i]['dt']==dtList[2]:\n", " dt=2\n", " energyExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ)+dt]=au2kcal(resultsExtrap[i]['energy'])\n", " errorExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ)+dt]=au2kcal(resultsExtrap[i]['error'])\n", " " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#get dmc energy results extrapolated to tau=0 and at tau=[0.002,0.005,0.008] based on gamess\n", "typ=5\n", "for compound in range(len(compoundList)):\n", " for dfttyp in range(len(dfttypList)):\n", " jobRecord={}\n", " jobRecord['dfttyp']=dfttypList[dfttyp]\n", " jobRecord['scftyp']='UHF'\n", " jobRecord['basisXMLFiles']='[\"BFD_Library_noPseudoH.xml\", \"aug-cc-pVTZ-DK_Diffuse.xml\"]'\n", " jobRecord['basisNames']='[\"vtz\", \"aug-cc-pVTZ-DK_Diffuse\"]'\n", " jobRecord['executingProgram']='casino'\n", " jobRecord['qmctyp']='vmc_dmc'\n", " jobRecord['compound']=compoundList[compound]\n", "\n", " with dataset.connect('sqlite:///'+jobDB) as DBdata:\n", " results=DBdata['data'].find(**jobRecord)\n", "\n", " resultsExtrap=[]\n", " for result in results:\n", " if result['jastrowFrom']==-1:\n", " continue\n", " elif '_true' in result['symmetry']:\n", " continue\n", " else:\n", " with dataset.connect('sqlite:///'+jobDB) as DBdata:\n", " jastrowFrom=DBdata['data'].find_one(id=result['jastrowFrom'])\n", " if jastrowFrom['qmctyp']!='emin':\n", " continue\n", " with dataset.connect('sqlite:///'+jobDB) as DBdata:\n", " jastrowFrom2=DBdata['data'].find_one(id=jastrowFrom['jastrowFrom'])\n", " if jastrowFrom2['qmctyp']!='varmin':\n", " continue\n", " resultsExtrap.append(result)\n", " \n", " for i in reversed(range(len(resultsExtrap))):\n", " if not resultsExtrap[i]['status'] in [\"Done\",\"LargeErrorbar2\", \"BadReblock\"]:\n", " resultsExtrap.pop(i)\n", " \n", " if len(resultsExtrap)<2:\n", " energy[compound,dfttyp+len(dfttypList)*typ]=None\n", " error[compound,dfttyp+len(dfttypList)*typ]=0.0\n", " else: #extrapolate to zero Time\n", "# print([resultsExtrap[i]['dt'] for i in range(len(resultsExtrap))])\n", "# print([resultsExtrap[i]['energy'] for i in range(len(resultsExtrap))])\n", "# print([resultsExtrap[i]['error'] for i in range(len(resultsExtrap))])\n", " [energy[compound,dfttyp+len(dfttypList)*typ], error[compound,dfttyp+len(dfttypList)*typ]]=\\\n", " au2kcal(extapolateTau([resultsExtrap[i]['dt'] for i in range(len(resultsExtrap))],\n", " [resultsExtrap[i]['energy'] for i in range(len(resultsExtrap))],\n", " [resultsExtrap[i]['error'] for i in range(len(resultsExtrap))]))\n", " #non extrapolated results\n", " energyExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ):len(dtList)*(dfttyp+len(dfttypList)*typ)+len(dtList)]=None\n", " errorExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ):len(dtList)*(dfttyp+len(dfttypList)*typ)+len(dtList)]=None\n", " for i in range(len(resultsExtrap)):\n", " if resultsExtrap[i]['dt']==dtList[0]:\n", " dt=0\n", " elif resultsExtrap[i]['dt']==dtList[1]:\n", " dt=1\n", " elif resultsExtrap[i]['dt']==dtList[2]:\n", " dt=2\n", " energyExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ)+dt]=au2kcal(resultsExtrap[i]['energy'])\n", " errorExtrap[compound,len(dtList)*(dfttyp+len(dfttypList)*typ)+dt]=au2kcal(resultsExtrap[i]['error'])\n", " " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", " if self._edgecolors == str('face'):\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAD2CAYAAAA+uvoyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8FPW9//HXF0JCKJeACjT0V4JVCgiKBzCAATcJUHqE\nyqX+5KBgQI6AcKoCKsceKOClarynSE9RSAUTaymXcil5CGQD6iH2ARXRUyr8yoaKkZsEUExDyPf3\nx26G3CAkJLubzPv5ePAgM9md+cxkdvc9s9/5fo21FhERERERN2sS6gJEREREREJNoVhEREREXE+h\nWERERERcT6FYRERERFxPoVhEREREXC8i1AUAGGPUBYaIiIiIBIW11lScFxahGEBdw4mIiIhIfTOm\nUh4G1HxCREREREShWERERETEVaHY6/XSuXNnkpOTGTRoEG+88QY+n48mTZqwa9cuAI4cOUJERATb\nt28HYP369SQkJODxeBg5ciQnTpyos3p+9rOf1dmy6lpWVhabNm2q0XNWrVrF2rVrycvLo0OHDng8\nHgYNGsSXX35Jeno63bp1IzExkaSkJI4ePQrAD3/4QxITE0lMTGTmzJkATJw4sc63R0RE5HIpL9St\nOXPmcOTIkYtmgbvuuguPx8PAgQPZv38/AIMGDQLg6NGjJCUlOcuaNWsWGzduxOPx4PF4+Jd/+Rd+\n97vfUVRUxH333XdFdYZNm+JSKQ+l4Cvw1fr5cTFxpL+cXuXvjDHce++9LFq0iOLiYu666y66d+9O\nnz59WLNmDX369GHdunX06dMHgMOHD/PSSy+xdetWoqKiOHToEOfOnat1bRW9+uqrdbasuvajH/2o\nxs/JyMjgD3/4A3l5eQwbNowVK1bwzjvvsGTJEq699loeffRRJk+eTGZmJhkZGTz00EO0b9+e7Ozs\ncsuJj49n69atJCcn19XmiIhII5Sb+xkFBbV/fkwMxMd3rTRfeaHunD59mqNHj9KhQweMMVVmgbfe\ness5wXjllVf41a9+5Ty/ffv2TqZISEhg//79vPjiizz//PNs3bqVwsJCBg8ezF133UW7du04cOAA\n1113Xa1qDbsrxb4CHzldcmr9r7pAXXpDX0REBLNmzSItLY1u3bqxb98+ALZs2cKQIUOw1rJp0yYm\nTZpEVFQUAN///vfp2LFjpWV+8sknDBw4EI/HQ1paGsXFxQwZMoSEhAR+8pOfcO7cOQ4cOMCAAQNI\n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\nLKV0xL7SC2fr1q3jjjvuqLSNVQ1AEhMTwxdffHHxP3IFYReKg6ljx44cP36cjh070q1bN3Jzc4mO\njnbGDj969Cj9+vWrdjlz584lPT2drl27Yq3FGMOmTZuIjIxk3rx5bNmyhfz8fGbOnMndd99d6fnG\nGCZNmsRzzz1HYmIi06ZNY9GiReTk5GCtJSkpqcqD/MUXX2Tnzp2cPHnSGc1m/PjxTJ48mVOnTjF6\n9GhGjBiBMYbhw4ezZMkSunfvzttvv01qaipJSUlMmTKFuXPnkpmZSadOnRg3bhx5eXnk5uY6X2MA\nbNy4kZycHGffbNmyhRtuuKFSTdu3b+dnP/sZ7777LnfffTfnzp2jXbt2dOnShby8PN59911nBLvZ\ns2czYsQIrr32Wnbv3l39H0xERCQE3JQXKqouD3z88ceA/+Sh4rb06NGDb775hh07dpCRkcHq1atJ\nSEigc+fOzvJKc8Hf/vY355vkq666ik8//ZT27dvzySeflAvFa9euJS0trdp9Xapdu3bk5+fz3e9+\nt9rHuqpNcUX5+fnOcId33HEH06ZNKze8cPv27ascu7yiEydOlBv++PTp06SkpJCYmMiqVas4fvw4\nd955J7t37+aee+5h8+bNlZbRs2dPIiMjnYOsadOmtGzZklatWjnzKmratCnR0dHExsY627FhwwaS\nkpIYNWoUR44cKbd88L+wS9dVevDv37+fe+65h8TERD777DPy8/OZPXs2EydO5OGHH+bs2bPMnz+f\nqVOnMnXqVGes8lLWWlJTUxk0aBCdO3fmlltuAfxfj+zatYs77riDt956C2MMQ4cOJTs7m+zsbEaM\nGFHtvhUREQk1t+SFsqG49Er55eaBM2fOVNoWgB49egDQqVMnzpw5U6m20lxw4MABnnzyScDffnjm\nzJlMnjyZG2+8kXbt2jnrOH78uBOqZ8+eTWJiYrUj9FUV9qvi2lBcXFzMK6+84jRe79evH3379i13\nhnX77beTnp5OYWEhAIcOHaryoL/qqqvYv38/ACUlJWRlZdGzZ0+ys7MZO3YsJSUlREZG8sILL7B8\n+XIWLlxYaRkV/2ClXxecPn2aoqKqm5OUlJTw7bff8sUXXzgHX2pqKps3b2bNmjXllnmxnwG6du1K\nZmYm2dnZ7Nq1i/j4eJKTk3nzzTeJjY1lw4YN3HzzzSxfvpwhQ4aQnp7O9ddfj8/nc5b36KOPsmPH\nDp566ilnuaUvqDZt2nDs2LEqtwHg73//O927d7/o70VERELFTXmhTZs2zmNK668uD5TavHlzpW0p\nW6+1Fmst1113HXl5eZVqbN68uROae/ToQXZ2NitWrCA2NpbmzZsD/pvp/vVf/9V5zgsvvEB2dvYl\n2zV/9dVXdOzY8aK/L8t1zSdWrFjBBx98QFFRESkpKU6bFYClS5c6PxtjiI2NZdasWQwZMoSIiAha\nt27Nb3/720rLfPbZZ5k4cSJRUVGMHTuWMWPGkJqayvbt22nZsiVdu3Zl3bp1LF68mHPnzjFu3Dhn\nHRWVzps/f77zFceiRYuq3JZZs2bRv39/evTo4Zz5jRgxgsGDB9OtW7cq29dUta5nnnmG8ePHU1JS\nQlRUFKtXr2bMmDHOTQKZmZlMnTqVvLw8iouLWbp0KbGxscyYMYMHHngAuBCAy7r77rtp0aIFkZGR\nrFy5kq+//rpc84kRI0Ywe/ZsPvjgA1577bVL1ioiIhJMbswL9913H8OHD6dv375cc801AIwcOZLi\n4mKg6jyQm5uLMYaBAwdW2paydRpjMMbQtm1bioqKnNBcmgsKCwu5//77AXjjjTd46623iIiIYPHi\nxc52rF27lv/6r/+qcht37drF3Llz+eSTTxg2bBjr16/n7Nmzl9Vswtmn4TC8ctlhnuuz94nG5vz5\n8zRt2pTDhw8zefLkar8+qGtz5szhkUceoUOHDrVexrFjx3jmmWd44YUX6rAyERFxg/rqfaKxCXVe\nqGjVqlVEREQwatSoel1PWloa/fv3r9Te+2LDPIddKA5377zzDkuWLHGmBwwYwNNPP13v63311VdZ\nU+Y22dGjR9OhQweWLFnCyZMnSUtLY/DgwfVeh4iIiFRPeSF8KRSLiIiIiOtdLBS79kY7EREREZFS\nCsUiIiIi4noKxSIiIiLieq4KxV6vl86dO5OcnMygQYN444038Pl8NGnShF27dgFw5MgRIiIi2L59\nOwDr168nISEBj8fDyJEjOXHiRJ3VU9rnYTjKyspi06ZNNXrOqlWrWLt2LXl5eXTo0IHExET69+/v\njITzzDPP4PF4nDHjAVJSUvj73/8O+DvwLh0i+o9//COPPPIICxcupHfv3sTHxzNnzhwApk6dytmz\nZ+tqU0VERMpRXqhbc+bM4ciRI6Snp9OtWzcSExNJSkpyBv94/fXX6devHx6Ph8OHDwPwb//2byQm\nJjJw4EBuvvnmSst86qmn6NSpE/PmzXPmXWk+CLt+ilNSFhAYE6JW4uIgPX1Blb8zxnDvvfeyaNEi\niouLueuuu+jevTt9+vRhzZo1Tljr06cPAIcPH+all15i69atREVFcejQIafv3rrw6quv1tmy6tql\nOsK+mIyMDGfc9mHDhrFixQry8/OZPn06CQkJzJkzh7lz5/LNN98wZMgQ7rjjjnJ9Lz7xxBPMmzeP\nX//61zz//PNs2LCBl156iRdffJGkpCRuv/12Dh48yE9+8hMyMzO577776nKTRUSkgfn001yKi2vf\njWtERAw33FC5G1flhbpz+vRpjh49SocOHZzBviZPnkxmZiYZGRk88MADLF26lA8//JC//OUvPP30\n0yxevJjMzEzA3zfx7t27Ky333//937n11lvZunWrM+9K80HYhWKfD3JyFlzBEi793NJeLiIiIpg1\naxZpaWl069aNffv2AbBlyxaGDBmCtZZNmzYxadIkoqKiAPj+979f5TI/+eQT7r//fiIjIxk7dizT\np09n+PDhFBYW0q5dOycoTpgwgejoaIYNG8bcuXMZNGgQO3bswOPx0Lt3b7xeL9OmTWPatGls3LiR\n+fPnY4zhiSeeqHIs89WrV7Nw4UJ69uxJXl4e7733HsuWLWPFihWcPHmSJ598khEjRuDxeNi2bRtN\nmjQhMTGR7OxsHn/8cbZv305UVBQrV65k9erVrFy5khYtWvD888+zZ88ezp8/z7333ltpWw4fPsyE\nCROIiYkhLy+P9evX06pVK5o1a1apg/FTp07Rpk0bZ58DnD171hmysezfpH///qSlpfHQQw8xbtw4\nWrduXW5ZN910E19++SUej4cJEyYoFIuIuFxxcQGdOlU9itvlOHz44oHajXkhJSWF6Ohodu/ezYgR\nIzh+/Djbt29nxowZTJkyhX379nH//fdTXFzM0KFDWbhwYbV5wufzMWDAgEr7tTQfHDt2jM6dO2OM\n4cYbb2Tnzp2Vap81a1albWrfvj1//etfy8270nwQdqE4mDp27Mjx48fp2LEj3bp1Izc3l+joaGfs\n8KNHj1bq8Lkqc+fOJT09na5du2KtxRjDpk2biIyMZN68eWzZsoX8/HxmzpzJ3XffXen5xhgmTZrE\nc889R2JiItOmTWPRokXk5ORgrSUpKanKg/zFF19k586dnDx50hnNZvz48UyePJlTp04xevRoRowY\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#plot DMC energy results results vs min DMC energy \n", "typForPlotList=[2,5]\n", "molPerPlot=min(10, len(compoundList))\n", "colors=['r','g','b','y','c','m']\n", "opac=[1,0.3,0.3]\n", "error_config = {'ecolor': '0.0', 'capsize': 2}\n", "barwidth=1/(len(dfttypList)*len(typForPlotList)*1.0)\n", "#barwidth=0.2\n", "index = numpy.arange(molPerPlot)\n", "\n", "j=0\n", "for i in range(len(compoundList)):\n", " if compoundList[i] in ['H', 'O','S', 'Cl']:\n", " continue\n", " if j%molPerPlot==0:\n", " mycompoundList=[]\n", " fig, ax = plt.subplots(figsize=(12, 3))\n", " mycompoundList.append(compoundList[i])\n", " for dft in [1,2,3]:\n", " for tfp in range(len(typForPlotList)):\n", " typForPlot=typForPlotList[tfp]\n", " #print(\"{} {}\".format(compoundList[i], dfttypList[dft]))\n", " #print(\"{}+/-{}\".format(energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList]), error[i,typForPlot*(len(dfttypList))+dft]))\n", " if j==0:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList])), \n", " barwidth,\n", " label=typList[typForPlot]+\"(\"+dfttypList[dft]+\")\",\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " else:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList])), \n", " barwidth,\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " errorb=plt.errorbar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth+barwidth/2.0, \n", " (energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList])),\n", " yerr=error[i,typForPlot*(len(dfttypList))+dft],\n", " ecolor='k',\n", " elinewidth=0.5, capsize=2\n", " )\n", " plt.xticks(index+0.4, mycompoundList, rotation=45, ha='right', fontsize=8) \n", " plt.ylabel(r'$\\mathrm{\\mathsf{E_{DMC}-E_{DMC, min}}}$', fontsize=8)#, fontsize=12) \n", " if j" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAswAAADRCAYAAADYBuR2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGHRJREFUeJzt3X2UZVV55/HvI93QIELRsMAAsgpjECW8KEQ6YugCJkZN\nZEIyqCjYRIiGhUoYFAZFLNFoyAwMGhEMGBpxCCKKLiWaKFK8JBAdEjTjGzHQynurkSAvDd30M3/s\nU/SlrD7Ufak6l3O/n7V6Vd17q049fdbZ5/7OPnvvG5mJJEmSpNk9o+kCJEmSpGFmYJYkSZJqGJgl\nSZKkGgZmSZIkqYaBWZIkSaphYJYkSZJqDEVgjogTI+L6puuQJEmSZmo8MEfEZsDegAtCS5Ikaeg0\nHpiBY4CLgWi6EEmSJGmmRgNzRCwGlmfmNU3WIUmSJG3Moob//lHApRt7MSIcpiFJkqQFkZmzjnho\nOjDvBuwTEX8C7BERx2fmuZ0/kGlmliRJ0vyK2Pjo4BiWQBoR12XmgTOey2GpT5IkSe0VERvtYR6a\nwDwbA7MkSZIWQl1gHoZVMiRJkqShZWCWJEmSahiYJUmSpBoGZkmSJKmGgVmSJEmqYWCWJEmSahiY\nJUmSpBoGZkmSJKmGgVmSJEmqYWCWJEmSahiYJUmSpBoGZkmSJKmGgVmSJEmqYWCWJEmSahiYJUmS\npBoGZkmSJKlG44E5IvaPiH+s/p3bdD2SJElSp8YDM3A7cGBmvhTYOiL2abogSZIkadqipgvIzNUd\nDx8BHm+qFkmSJGmmYehhBiAi9gR2ysx/bboWSZIkaVrjPcwAEbEU+Chw+MzXJicnn/h+YmKCiYmJ\nBatLkiRJ7TQ1NcXU1NScfjYyc36reaoCIhYBXwTem5nfmPFaNl2fJEmS2i8iyMyY7bVhGJJxOLAv\ncGZEXBMRy5ouSJIkSZrWeA9zHXuYJUmStBCGvYdZkiRJGloGZkmSJKmGgVmSJEmqYWCWJEmSahiY\nJUmSpBoGZkmSJKmGgVmSJEmqYWCWJEmSahiYJUmSpBoGZkmSJKmGgVmSJEmqYWCWJEmSahiYJUmS\npBoGZkmSJKmGgVmSJEmqYWCWJEmSajQemCPi/Ii4ISI+3nQtkiRJ0kyNBuaIWAaszcyXAY9ExAFN\n1iNJkiTN1HQP80uAr1fffx3Yv8FaJEmSpF+yqJdfiogjgR2BbTPzlD7+/tbAd6vvfwFs1ce2JPXg\n6D89mlX3r+prG+Nj46w8Z+VA6pEkadj0FJiBXYE7gPv7/PsPsCEkb1U9fpKJ8fEnvh8fG2N8bKyr\nP7BqyRLGly3rvUJgYmKCiYmJvrYxNTXF1NRUz78/NjbG/ff3t7sHsQ33xQaD2BennHI0a9as6vn3\nV69ewvOf39/xfe+998KSvjbRt373AwxmXwzDcdFv+wC496abePaaNX1t4/MP3snYr+/c1zb6vZAa\nluPipu/fxJol/e3PtuyLtrSRtryPuC826GVfrFq1ilWrVs3pZyMzuy6qo4d5u8w8uesNbNjOMuD1\nmfn2iDgH+Exm/kPH6z1U92STy5cz2efBJM2Xft8ElywZ58wzVw6snqYMIgy0ZV8MwuTEBJPXXtvX\nNsb33pofHfaffW1j+e3LmVo51fPvn3DCBIcd1t//48orl/PhD/deA8DE0RNcu2t/dbRlX0htFhFk\nZsz2WqM9zJl5U0T8UURcD3yvMyxLo8CAV7gfNMzGx8bh9gFsQ9LTVq+B+RxgJ+A/+i0gM9/S7zYk\nSZovjs+X1GtgPhm4C9gU+MjgypEkSZKGS6/Lyt1DWRKu3yHGkiRJ0lDrtYd5T+DmQRYiSZIkDaNe\nA/NaYHPsYZYkSVLL9RqYv5eZ5w20EknSYIyPM9nvNtZ8H+hvWTlJaoteA/OzIuIdwPrMPHuQBUmS\n+jO5cmXf25g6eoIfcV//xUhSC/QamD8J7AbMurizJEmS1Ba9Bua3Ag8BzwT6++ghSZIkaYj1uqzc\nV4AbKJP/JEmSpNbqNTCPATcCl0XEGwdYjyRJkjRUeh2SsRx4LrAE+MXgypEkSZKGS6+B+TbKhL9N\ngaWDK0eSJEkaLj0F5uk1mCPiNZSxzJIkSVIrdRWYI2JZZt40/TgzLx98SZKkpo2PjcPtA9iGJLVA\ntz3MB0fErXSsv5yZPxtsSZKkpq08Z2XTJbBkyThXXtn/NiSpX90G5j2AV8947uIB1SJJ0hPOPHNl\n0yVIEtB9YL4qMy8d1B+PiLcAK4DFwEcz0/AtSZKkodLtOsyLASLioAH9/asy86XAbwInDmibkiRJ\n0sB028M8Vn3dDbim3z+emXdWX9dFxKP9bk+SpDZyPLfUrG4D8xYRcRKwqPpKZp7VbxER8WbgS/1u\nR5KkNnI8t9SsrgJzZn6olz8SETsAl814+p7MfH1E7A/8LvD7s/3uZMf3E9U/SZIkqR9TU1NMTU3N\n6WcjM+e84Sr4vo4StBP4VGau7qHG6e3tRAnSh2bmz2d5vYvqZje5fDmTc9wZkiRJGk0RQWbGbK91\nOyTjOOAD1ZjjRcC7gDP6qO09wPbA5yIC4JWZuaaP7UmSJEkD1W1gviMz18ETE/Xu6uePZ+af9PP7\nkiRJ0nx7ysAcEftm5s0RsQ2wXTXZbwvg4bn8viRJkvR0NpfAeyxwM3B6Zp4IEBGXZOZR81qZJEmS\nNAS6/eASSZIkaaTMpYd5v4h4L7Cs+gqw1zzWJEmSJA2NuQTmd1KWkLu2+gowNV8FSZIkScPkKQNz\nZk4tQB2SJEnSUOpqDHNE7DFfhUiSJEnDqNtJf78+L1VIkiRJQ8pVMiRJkqQaBmZJkiSphoFZkiRJ\nqtHtR1tfBxARrwV2AiIzzxp4VZIkSdKQ6CowZ+Y91bfbZObZ81CPJEmSNFR6HZKxdUS8IyL++0Cr\nkSRJkoZMt0Mypl0M7AbEAGuRJEmShk6vgfmtwEPAMykfmS1JkiS1Uq9DMr4CXA+sHUQREfGFiHj/\nILYlSZIkDVJXPcwR8QeZ+Tlg/+qpB/stICL2ApYAOdvrk8uX9/cHxsf7+31JkiSNtMicNacuXAER\nFwBfAvbLzPfMeC2brk+SJEntFxFk5qzz83oawxwRRwI7Attm5il9FLY7sBq4v9dtSJIkSfOp10l/\nuwJ3MMegGxE7AJfNePpe4AHgdOAFG/vdycnJJ76fmJhgYmKiu0olSZKkGaamppiamprTz/Y0JKOj\nh3m7zDy56w1s2M5XKGOXlwLbAn+Umdd3vO6QDEmSJM27gQ/JoMse5o3JzFcARMRy4JDOsCxJkiQN\ng14D8yOUHuHFgygiM6/F9ZwlSZI0hPpaJSMi3piZnxxgPTO375AMSZIkzbv5WCXjNMqHntzXT2GS\nJEnSsOv1k/42p3zK3y4DrEWSJEkaOr0G5i8DNwCPDbAWSZIkaej0GpjHgBuByyLijQOsR5IkSRoq\nva6SsRx4LrAE+MXgypEkSZKGS6+B+TYgKD3USwdXjiRJkjRc+l1WbktgbWY+OriSnrR9l5WTJEnS\nvKtbVq6rMcwRsWzGU6+ifICJJEmS1ErdDsk4OCJupQzHALg6M3824JokSZKkodFtYN4DePWM5y4e\nUC2SJEnS0Ok2MF+VmZfOSyWSJEnSEOpr0t98c9KfJEmSFsIgJ/2tqL4eNIjCJEmSpGHX7Sf9jVVf\ndxt0IZIkSdIw6mpIRkScCjxGGfu8DiAzz5qf0hySIUmSpIUxsCEZwF8Dj1PCcgKf6rM2SZIkaah1\nu0rGccAHMnNdRCwC3gWcMfiyJEmSpOHQbQ/zHZk5PRRjHXDX4EuSJEmShsdT9jBHxL6ZeXNEbANs\nFxEnAVsAD8/l9yVJkqSns7kE3mOBm4HTM/NEgIi4JDOPmtfKJEmSpCHQ7ZAMSZIkaaTMpYd5v4h4\nL7Cs+gqw1zzWJEmSJA2Np1yHOSImKEvIRfUVgMy8dl4rw3WYJUmStDDq1mHu6oNLFpqBWZIkSQth\nkB9cIkmSJI0UA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUM\nzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIk\nSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVIN\nA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7Mk\nSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJUw8AsSZIk1TAwS5IkSTUMzJIkSVINA7MkSZJU\nw8AsSZIk1VjUdAFPJSKaLkGSJEkjLDKz6RokSZKkoeWQDEmSJKmGgXmEheNdpFq2kQ3cF5qNx8UG\n7osN2rgvRiowR8TSpmsYFhGxTWZmGw/qbkXEM5uuYVhExN4RsUXTdQwL2whExAoo+6LpWpoWEYdG\nxAuarmOY2EZsI7Np43ExEoE5iquA10XE4unnGi6rMRHxcuBvI2KHNh7U3YiIY4CXR8TWTdfStIg4\nBHg9sG9ELGm6niZFxEkR8TfQzhP/XEXEIuDIiHhX07U0LSKeAxwAvDQintd0PU2zjRS2kSeLiOMi\n4kPQvuNiJAIz8FngW5n5scxcC6N5JVhdOJwB/CNwCXCBoZkHgD0pb4Ij2dNcHRfvBe4FfghMAL8x\nyqE5M88CfhoR51ePR6qNVMfEh4AXA79HuYh6d8NlNaLaF58G9qa8lzwb+C+jHpptI7aRjbgKYHpf\ntOm4GJXA/P+AvwKIiDMi4n0RsSIint1wXQumOmCvAMaAbTLzY8BXgAs7QvOoHA9ExGsBMvMzwDXA\nW4CDRq2nuTouLgW2AW7NzAuAfwMOYgRDczUkZXOAzHwb8IKI+GD1uDUn/jrV//EzwOPATzLzUeBI\nRjcQXAn8W2Z+KTO/AXwC2JYRDc22EdvIbKo7MGTmj4EzgP0i4q3Vc604LlodkCJik4jYlLLe9KnV\n7aNlwLeBHYG9mqxvgb0BuC0z356ZdwB0hObzI2LHzFzfaIULJCK2B14VEW+vntof2JlybPxmRIw1\nVtzCOwy4MzP/tOPuy2WU0HwAcMCohOaI+A1gEtinenwq8GNg24j4GIzMnanXAT/LzNMy8/aIeEZm\nPkI5h+w5fbt1FETEjpT2cVr1eFFm3gtcBCylnEee22SNC8k28gTbSIdqON8XImLX6qn/AQQwXh0j\nrTguWhuYI2KTzHw8Mx8D3g18BPjzzHx5Zn4W2JxyK2VUrAPWA0TEM6pxV2TmucDXgXMiYpMG61sQ\nERGZuRo4jdKYbwT2yMz9gL8DXk7pWW1t25hhCbB4+kF1gQnw98AvKG2k9fuiOi6+CZwHHBsRFwIv\nzsyjMvMtwNYRcXazVS6Y24FbASJis+rrJpTzxwpg+4jYrrnyFkZE/Er17X6xYaJfVuHobmCK0nZ+\n3kR9C616T/0m8FHgj0e8jdxG6VQY6TYCT5w7rwb+gtL59pfALsDhwHuAXSLipCZrHJTWvhFm5uMR\n8SsRcQ0wfbX3HYCIeD3wW5Rbba3WEYK/BTwQEdtQLvbWVa+/GbgYODYzH2+ozAUREYurW0ObV73s\n59Bx4svM64EvA7e0vbe944Lgi8BjEXEQQHWBCXAg5e7DxzPz4QZKXDAdx8Vmmfn3wNnA1pTwDEBm\nvgH4n03VuBA6bpk+BhwSEePVreaozg1/DOyTmcdk5k8bK3QBRMThwPZVMD4bODAinlN1wqyPiGOB\nXwU+kpkjEZir99TtKD3Kf0YZ3nd+x+uj0Eam308fZcTbCDzp3LmkujN5BuWO7dnVHct1lDsSn2qw\nzIFpXWCOiK9GxMuiTOA6izK57TvA7wMvjogJ4GDgrZn5g+YqnX/TvexVEPge8CzKKgi7Va+/qno8\nlpkPNFjqvKomZ7woM9dW46yujohTgBOBd1F6RiYBMvOrmfmTBsudd9Vt5fURsSWwFvhn4HkR8YfV\n64cBJwNr23xcwBNtZG1E7Ax8MiKuAHYALgSOiIhXRLWyTmbe02St82nGRcM/U3oRL4qI3YAtIuLV\nwGsoE0NbLSLeBPwOcHcVnJdQ2smKiDggIv4AOAL4v9PDmNps+vivPI8yF+aZlHA0Mm0EnnTR8ACl\nR3VlROzOiLWRadW5c0fg8xFxGfAI5b3jLyJi78xcm5n3ZeZ9zVY6GK36aOzq1sjVwH2URn0gcHVm\nXhERRwDPp/Qg/iAz72+u0oVT3Vb8P5SJbddQLhaWAM8BdqJcOHy3uQrnV9Vr9mng+8D7KUHoCuAe\nyjCd/wZsChwDnJOZP2uo1HlX7Yt9MvNfqguHy4G/AV5KGZO5AngQ2B14c2Z+v7Fi51m1Ly6h9KJ/\nDTiXcu74J+AdlJ6zxygTed7Z5l72jgvrnSmdDJtUX3cFllPeBHcFTm3zuWJaFf5OBbanzHd5DPgJ\nZYLX4ZTw/JG274uONvI5SqfTg5l5V0QcCLyP0k7WU3pV39HyNrJ4+uIoIpYBH6ccCztSOp0eZkTa\nSHVc3EzJUh+iDG/8FuU99n9TJtDvAhwPvKbjruXTXtsCcwBvooSff6Kc7DajBORroqyM8LU2hyIo\nveyUE9q/ABdQAsF6YCvgG8B3KbfTHhqBffFZSk/p66rH51JWTTkMOIEyBnE74LrpYSptVHPhcC/l\nNuprMnN11eu8uO23mSPiC8C/Ah+gBKAPAudXE3heBLw/M38vIrZoaxCYw0XDX1Xnzc2BzTPzPxor\ndgFExN9RllW8MjO/FhHvp1w83Eo5T3w5M++sxjC3esgWPKmNvI8SDo8HjsjMH0fEwcAnKZ1Sd2fm\nmuYqnT81Fw3LKfvlnZn5zSgf9rT5CLyfBmXFsa2BW4AbKeeNFdV+mKCE5tdSJsu26tzZiiEZEXFd\nNdB8WWZ+gjIuMyi9IwnsFRHLM/PTI3BAb0aZ0HgicCjwn8ADmbkS+Gn13HMz88cjsC8WA18Fvh0R\n49XEg92Bo4DrKY3+XODf2xyWK1cA6zPz9Kqn5EHKyiB/BhwH7BwRB2fmgyMQlp8H3FXNcF9TjT1c\nRVli8TmUIUuPR8SWbTvhz/B5yv/7CkoP6g8pofBm4EzgpIjYNjMfGYGwvAll8vOewAcj4mTKpNe9\nKCtCrAcOroasjEJY7mwjazPzUspdqPOqu5abATcAj7c1LFem28gXgX2ByyNil8y8ljIk5cqIeElm\nPtz299PKRZROluOB387MaygB+YyI2Dkzp4C3AY+28dy5qOkC+lVNXrqKMtTgtIiYAu6mTOS6GziF\nctB/q6kaF9hjlIP6GOAllB7l7SLioMy8tBqTd2eTBS6UanzVJcArKfskgVdRlkv7LeDtwHGZ+aPm\nqpx/HRcOSyNiHPhDyoXDiyi31bYC/hflQmIUPAr8WkT8amb+O0BmnlftpxMogfn0zHywySLnU2cg\n6nhuFeWi4WjK8LV1lH3VetWQlA8D3wNeSOlouIXSg/omyjj/Q6sJXqNgtjZyYdUh80HKWOZj23zu\nnKWNXFr1JJ8XZdLnZsB1lCGgrRcRS4G/zczLq8c/jIilmXlBRNxPGcf8XzPzhmYrnT9P+8BcTV76\nMPADyoluV2BLSoA+mDLT/dttH7McEddRLgouzcxPRFlreAdKL/uNlF729Vk+qGNkZOZDEfElyoTH\n3Skz36+mTPzbqu2T2mBOFw4nUC4cVjVW5ALKzDuq280vjIifd/Se3k8Zr3vqCEzmGvmLhpkyc02U\nVZUWA/tRLiYPpayGwSicK6Y9RRv5AXDCCOyPkb9o6FQdA5d3PLWeMrTxE5TjYkvKfKDWas0Y5oh4\nFnAI5bbJFZRxVa1e7WBa1cv+TsoFwjrK+qCrgYd4ci/7lW2/cNiYKKumvJJyAXFRtRLASInyASRH\nUC4czs3yiUyMyoVDp6qnfQVwB2WM6raUOw7Ht3myY6con8L1I+AfpgNRRLyR0nO2cgQuGmZVnSt+\nF3gZ8NeZeUvDJTViI23kbZQ20uoVpqZtpI28gTJp/mOjdt6EkjeqjsojKXe07wFOZxRWHmtLYAao\nJiy9knKiuygzb4mIyDb9JzeiCkOvoPSy70wZkzjdy34IpZf97uYqbF51fPw25eS3uul6muCFwwbV\nWMwDKOHoUeAvM/M7zVa1cLxo2DjPFYVtJMYZ8YuGjYmIF1ImCd8GHDMK54xWBWYY7RPdKPeyz9Wo\nXEDVGeU2MpvY8KmXbZ/4+UtGPRDV8VyxgW3ENjJTlTcuBN6dmT9sup6F0LrADKN9ohvlXnbNnceE\nOo1yIJLmwjbyyyJi02zROstP5Wk/6W82oxwEMvPBiPgyZSzz3dVzI7s/NDuPCXUyBEj1bCO/bJTC\nMrS0h1n2IEqSJA2KgVmSJEmq0YpP+pMkSZLmi4FZkiRJqmFgliRJkmoYmCVJkqQaBmZJkiSphoFZ\nkiRJqvH/AR5t25PkWI5FAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#plot DFT gaussian vs. DFT gamess\n", "typForPlotList=[0]\n", "typCompare=3\n", "molPerPlot=min(10, len(compoundList))\n", "colors=['r','g','b','y','c','m']\n", "opac=[1,0.3,0.3]\n", "error_config = {'ecolor': '0.0', 'capsize': 2}\n", "barwidth=1/(len(dfttypList)*len(typForPlotList)*1.0)\n", "#barwidth=0.2\n", "index = numpy.arange(molPerPlot)\n", "\n", "j=0\n", "for i in range(len(compoundList)):\n", " #if compoundList[i] in ['H', 'O','S', 'Cl']:\n", " # continue\n", " if j%molPerPlot==0:\n", " mycompoundList=[]\n", " fig, ax = plt.subplots(figsize=(12, 3))\n", " mycompoundList.append(compoundList[i])\n", " for tfp in range(len(typForPlotList)):\n", " typForPlot=typForPlotList[tfp]\n", " for dft in [0,1,3]:\n", " #print(\"{} {}\".format(compoundList[i], dfttypList[dft]))\n", " #print(\"{}+/-{}\".format(energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList]), error[i,typForPlot*(len(dfttypList))+dft]))\n", " if j==0:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " barwidth,\n", " label=typList[typForPlot]+\"(\"+dfttypList[dft]+\")\",\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " else:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " barwidth,\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " errorb=plt.errorbar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth+barwidth/2.0, \n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " yerr=sqrt(error[i,typForPlot*(len(dfttypList))+dft]**2+error[i,typCompare*(len(dfttypList))+dft]**2),\n", " ecolor='k',\n", " elinewidth=0.5, capsize=2\n", " )\n", " plt.xticks(index+0.4, mycompoundList, rotation=45, ha='right', fontsize=8) \n", " plt.ylabel(r'$\\mathrm{\\mathsf{E_{DFT, gaussian}-E_{DFT, gamess}}}$', fontsize=8)#, fontsize=12) \n", " if j" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n/UAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nqcL/B7toDDthC3+AAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#plot DMC energy based on gaussian vs. DMC energy based on gamess\n", "typForPlotList=[2]\n", "typCompare=5\n", "molPerPlot=min(10, len(compoundList))\n", "colors=['r','g','b','y','c','m']\n", "opac=[1,0.3,0.3]\n", "error_config = {'ecolor': '0.0', 'capsize': 2}\n", "barwidth=1/(len(dfttypList)*len(typForPlotList)*1.0)\n", "#barwidth=0.2\n", "index = numpy.arange(molPerPlot)\n", "\n", "j=0\n", "for i in range(len(compoundList)):\n", " if compoundList[i] in ['H', 'O','S', 'Cl']:\n", " continue\n", " if j%molPerPlot==0:\n", " mycompoundList=[]\n", " fig, ax = plt.subplots(figsize=(12, 3))\n", " mycompoundList.append(compoundList[i])\n", " for tfp in range(len(typForPlotList)):\n", " typForPlot=typForPlotList[tfp]\n", " for dft in [0,1,2,3]:\n", " #print(\"{} {}\".format(compoundList[i], dfttypList[dft]))\n", " #print(\"{}+/-{}\".format(energy[i,typForPlot*(len(dfttypList))+dft]-min([nanmin(energy[i,tt*(len(dfttypList))+0:tt*(len(dfttypList))+5]) for tt in typForPlotList]), error[i,typForPlot*(len(dfttypList))+dft]))\n", " if j==0:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " barwidth,\n", " label=typList[typForPlot]+\"(\"+dfttypList[dft]+\")\",\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " else:\n", " rects=plt.bar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth,\n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " barwidth,\n", " color=colors[dft],\n", " alpha=opac[tfp],\n", " linewidth=0.5,\n", " )\n", " errorb=plt.errorbar(j%molPerPlot+(len(dfttypList)*tfp+dft)*barwidth+barwidth/2.0, \n", " (energy[i,typForPlot*(len(dfttypList))+dft]-energy[i,typCompare*(len(dfttypList))+dft]), \n", " yerr=sqrt(error[i,typForPlot*(len(dfttypList))+dft]**2+error[i,typCompare*(len(dfttypList))+dft]**2),\n", " ecolor='k',\n", " elinewidth=0.5, capsize=2\n", " )\n", " plt.xticks(index+0.4, mycompoundList, rotation=45, ha='right', fontsize=8) \n", " plt.ylabel(r'$\\mathrm{\\mathsf{E_{DMC, gaussian}-E_{DMC, gamess}}}$', fontsize=8)#, fontsize=12) \n", " if j" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt4AAADGCAYAAADljoeAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucXHV9//HXhyQkARctgxA3BOkvGoKwsRigGhEWKxVq\nJzUlQMwqtLHVoGJbhRZqdXdsa/wpREAsUeqFSKLUWNDUIIJmaYVUSjaSNbpcgsGYDSITLIuwCSSf\n/nHOXHYyMzuze+bMZd/Px2Mfc25zzme+e3b2M9/5XszdERERERGR2jqk3gGIiIiIiEwESrxFRERE\nRGKgxFtEREREJAZKvEVEREREYqDEW0REREQkBkq8RURERERioMRbRCYMS9nxlrIDlrL1JfbvsJQ9\nM4bz3hCe98xw/YClbOt44xURkdYyud4BiIjEwVI2JW+11AQGHwAOjeBy7wB+E8F5RESkhSjxFpGG\nYin7K+DDwDHAz8LlW4AnvdtfGx5zP/C7wAzgTcBK4CRgN9Dj3f4VS9nxwGPAJmA/8BpgfniZl1rK\n7gDOBtYDXd7t+4AbgATw75ayPwO+BHwdOAWYBaS82z9tKbPw2D8HHgR+VfAyvgZsA+60lPUAHwP+\nFTgXaAM+4N2+xlI2NXxtfwxsBA4PX8/x3u2/GE85iohI41FTExFpGJaytwGfAX5BUPt8DHA7cAfQ\nYSl7laXslcCpwK3AywgS50nAVQSJ+hctZaflnfYNwL3A3+ZtWwDcDXwHOB+4LG9fYW14J3At8Dzw\nj5ayacBi4FLgR8BXCRL4QoXnOQP4JDAd+ES47YPh9e8AeoE3FnmeiIi0CCXeItJIzgsfu73bbwK+\nSFALPBBuv4Ag6YWgprgz3N8BXA28Ndx3NrkEts+7/Srv9i8BFm67z7v9GuCKcP2sMjF9ybv988Bm\nYArw8vC6AB/3bv8X4FsVvLaV4bE7gJnhtsx5Lvdu/xRBIm8HP1VERFqBmpqISDN4FHiIIOneC2z3\nbv9vS9n54f6bCWqeM0nrjrzlwSLny+yrpPJhT/j4YpHnHFJkWyXnUXItIjIBqcZbRBrJhvAxZSl7\nL/Bu4FngHmANQVvr3w+XCbc/S1BTfiIwB7gcaB/lOm+wlF0OfCpc760wPiOoSd8Yrn/UUvZ+YGGF\nzy+UOc+nLWV/R/Da1NRERKRFKfEWkYbh3b4B+GvgOOCzBJ0W3+7dniaXbEPQzATv9qeAJLCToIPl\nPwMHgMdHudS9wFuAPwK+GV4LDk56vWDZw+uuA24ETifoYHlPkeeWO0/GZ4F1BB8c3kzQnMUI2pOL\niEiLMXdVroiI1IOl7HCCxP0nwAnAdcAj3u0ddQ1MRERqQm28RUTqx4D3ECTd+4AfMHKEFRERaSGq\n8RYRERERiYHaeIuIiIiIxECJt4iIiIhIDJR4i4iIiIjEQIm3iIiIiEgMlHiLiIiIiMRAibeIiIiI\nSAyUeIuIiIiIxECJt4iIiIhIDJR4i4iIiIjEQIm3iIiIiEgMlHiLiIiIiMRAibeIiIiISAyUeIuI\niIiIxECJt4iIiIhIDCbXO4A4mJnXOwYRERERmRjc3YptnzA13u5e9OfGW27k2wPfLvpz4y03lnxe\nqZ/u7u6qn+Mefi7oKfFTJv5qfx566CGVRQVlEfXPWMsirh+VhcpCZaGyUFmoLFQW0fyUM2ESbxER\nERGRelLiLSIiIiISAyXeEevs7Kx3CA1DZZGjsshRWeSoLHJUFjkqixyVRY7KIqeZy0KJd8Sa+WaI\nmsoiR2WRo7LIUVnkqCxyVBY5KosclUVOM5eFEm8RERERkRg0VeJtZl8ys1+ZWX/etiPN7C4z22pm\nd5rZy+oZo4iIiIhIMU2VeANfBs4t2JYCvuPu84A7wnURERERkYbSVIm3u/8X8HTB5j8Cvhou3wK8\nLdagREREREQq0FSJdwkvd/c0gLs/BRxd53hERERERA4yIaaMB+jp6ckud3Z2NnWPWBERERFpDL29\nvfT29lZ0bCsk3r82s6Pc/SkzeznwZLGD8hNvEREREZEoFFboplKluxu2QlOTDcA7w+V3husiIiIi\nIg2lqWq8zexrwFnAUWa2E/gY0A3cambLgCeAC+sYooiIiIhIUU2VeLv7O0rsOifWQEREREREqtQK\nTU1ERERERBqeEm8RERERkRgo8RYRERERiYESbxERERGRGCjxFhERERGJgRJvEREREZEYKPEWERER\nEYmBEm8RERERkRgo8RYRERERiYESbxERERGRGCjxFhERERGJgRJvEREREZEYKPEWEREREYlBzRNv\nM7ur1tcQEREREWl0NU28zexQYEktryEiIiIi0gwiT7zN7Boz+1C4egzwpqivISIiIiLSbGpR473J\n3VcCuPtOYGoNriEiIiIi0lQm1+CcJ5vZdOBxYDZwInBrDa4jIiIiItI0alHj/QngcGApMB34SA2u\n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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#plot dissoc energy results DMC\n", "typForPlot=[2,5]\n", "molPerPlot=min(11, len(compoundListMol))\n", "colors=['r','g','b','y','c','m']\n", "edgecolors=['r','g','b','y','c','m']\n", "opac=[0.3,1,0.5,0.3,1,0.5]\n", "error_config = {'ecolor': '0.3'}\n", "barwidth=1/(4*len(typForPlot)*1.2)\n", "#barwidth=0.2\n", "index = numpy.arange(molPerPlot)\n", "\n", "for l in range(int(ceil(float(len(compoundListMol))/molPerPlot))):#range(int(len(compoundListMol)/molPerPlot)+1):\n", " a=l*(molPerPlot-1)\n", " b=min((l+1)*(molPerPlot-1), len(compoundListMol))\n", " fig, ax = plt.subplots(figsize=(13, 6))\n", " for i in range(len(typForPlot)):\n", " for j in range(4):\n", " if j==0:\n", " continue\n", " rects=plt.bar(index[0:b-a]+(i*(4)+j)*barwidth+0.1*4*len(typForPlot)*barwidth*i,\n", " (dissocEnergy[a:b,typForPlot[i]*(len(dfttypList))+j]-dissocEnergyExp[a:b]), \n", " barwidth,\n", " label=typList[typForPlot[i]]+\"(\"+dfttypList[j]+\")\",\n", " color=colors[j],\n", " alpha=opac[i],\n", " linewidth=1,\n", " yerr=dissocError[a:b,typForPlot[i]*(len(dfttypList))+j],\n", " error_kw=error_config,)\n", " for k in range(b-a):\n", " plt.axvline(x=k, color='0.85')\n", " plt.xticks(index+0.4, compoundListMol[a:b])\n", " #plt.xlabel('Molecules, Methods') \n", " plt.ylabel(r'$E_\\mathrm{dissoc.}-E_\\mathrm{dissoc.}^\\mathrm{exp}$', fontsize=14) \n", " if l==0:\n", " #plt.title('dissoc. energies grouped by molecules and methods') \n", " plt.legend(loc=2,bbox_to_anchor=(1.05, 1), prop={'size':10})#(loc='best',prop={'size':8})\n", " plt.autoscale( enable=True,axis=u'both', tight=True)\n", " ax.text(real(molPerPlot-4)/2.0, 15, \"overbinding\", fontsize=10,color='green',fontweight='bold')\n", " ax.text(real(molPerPlot-4)/2.0, -15, \"underbinding\", fontsize=10,color='green',fontweight='bold')\n", " ylim([-12,12])\n", " xlim([0,molPerPlot-1])\n", " fig.set_size_inches(12,2.5)\n", " plt.savefig('dissocE'+str(l)+'.svg', format='svg', dpi=300)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TiCl\n", "[-3.38605911 2.2683142 -2.94506171 -2.74637045]\n", "[ 0.28776394 0.28727159 0.28205585 0.30033113]\n", "VH\n", "[ 1.20240887 12.15519384 6.48548483 6.09073633]\n", "[ 0.27918955 0.26780422 0.3006649 0.26250677]\n", "VO\n", "[-38.72833669 -3.13511311 -9.92007854 -10.39158369]\n", "[ 0.30319147 0.29613164 0.3306483 0.28717471]\n", "VCl\n", "[-8.09858034 -0.48551726 -4.49204051 -4.53632494]\n", "[ 0.33057073 0.31211243 0.32185653 0.2532333 ]\n", "CrH\n", "[-9.68762182 3.96173197 4.39305426 3.79234459]\n", "[ 0.32116891 0.27486372 0.28869071 0.31185986]\n", "CrO\n", "[-44.42382179 -10.0726357 -10.90824671 -10.90424357]\n", "[ 0.30185449 0.2922492 0.29947285 0.29671405]\n", "CrCl\n", "[-16.3059254 -4.17800038 -3.25061329 -3.42497377]\n", "[ 0.32321632 0.2951339 0.30293556 0.32519956]\n", "MnS\n", "[-33.13462116 -12.16587305 -10.31876929 -9.92218119]\n", "[ 0.30000673 0.30997837 0.31506296 0.33005241]\n", "MnCl\n", "[ 3.50963106 2.18914782 2.86518945 3.17922941]\n", "[ 0.29848171 0.32611044 0.32365156 0.33809055]\n", "FeH\n", "[ -1.62943138 12.6363324 4.42297109 3.4428212 ]\n", "[ 0.29844711 0.27757636 0.29411368 0.30986224]\n", "FeCl\n", "[ 4.15634054 14.07711999 5.41855171 5.08583415]\n", "[ 0.28348514 0.30497209 0.31669699 0.30450954]\n", "CoH\n", "[-10.82767177 14.64150492 3.57874142 3.8680647 ]\n", "[ 0.27771704 0.28838239 0.30088159 0.29297857]\n", "CoCl\n", "[-16.29078683 5.36096853 -4.7398081 -4.97947536]\n", "[ 0.30229192 0.30707722 0.31882051 0.30943073]\n", "NiCl\n", "[-3.93201427 -4.60463437 -3.57777119 -6.1139573 ]\n", "[ 0.30001532 0.27752586 0.33344072 0.3279784 ]\n", "CuH\n", "[-1.85209013 -1.21275121 -1.10591506 -1.92235841]\n", "[ 0.3038847 0.29091825 0.29988018 0.29028049]\n", "CuCl\n", "[-4.99035501 -5.4351671 -4.55704145 -5.21175257]\n", "[ 0.28721018 0.30690405 0.30879696 0.30612749]\n", "ZnH\n", "[ 4.78675187 4.68985874 4.7191551 4.16605371]\n", "[ 0.29188698 0.30104094 0.29263703 0.29498234]\n", "ZnO\n", "[ -9.46445702 -9.64770075 -10.93051082 -10.25268526]\n", "[ 0.30028872 0.31321525 0.31806292 0.31862467]\n", "ZnS\n", "[-15.78114627 -7.25011282 -7.4650046 -7.5298173 ]\n", "[ 0.30519542 0.31915085 0.30822396 0.326366 ]\n", "ZnCl\n", "[-0.84242003 -2.13990326 -2.57152904 -2.68813947]\n", "[ 0.30618949 0.3060911 0.31219167 0.3127963 ]\n" ] } ], "source": [ "#print the energy differences for DMC for casino\n", "typ=2\n", "for compound in range(len(compoundListMol)):\n", " print(compoundListMol[compound])\n", " print(dissocEnergy[compound,typ*(len(dfttypList)):typ*len(dfttypList)+4]-dissocEnergyExp[compound])\n", " print(dissocError[compound,typ*(len(dfttypList)):typ*len(dfttypList)+4])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TiCl\n", "[-19.16654504 11.282936 -2.34635551 -6.58738547]\n", "[ 0. 0. 0. 0.]\n", "VH\n", "[ -9.74920951 20.40250338 12.53228215 3.97635421]\n", "[ 0. 0. 0. 0.]\n", "VO\n", "[-112.21813226 21.01968487 -11.40470231 -16.17582428]\n", "[ 0. 0. 0. 0.]\n", "VCl\n", "[-23.47155032 10.18316138 -5.02601527 -9.56482358]\n", "[ 0. 0. 0. 0.]\n", "CrH\n", "[-18.54811849 5.96092672 8.88583084 9.35019933]\n", "[ 0. 0. 0. 0.]\n", "CrO\n", "[-82.89547854 10.11396098 -7.6897659 -0.73901837]\n", "[ 0. 0. 0. 0.]\n", "CrCl\n", "[-26.23176818 -1.85423094 -4.76593934 0.20374179]\n", "[ 0. 0. 0. 0.]\n", "MnS\n", "[-46.82595253 18.91693349 -4.72888525 -4.27579144]\n", "[ 0. 0. 0. 0.]\n", "MnCl\n", "[-8.37509886 8.16363473 -4.75154909 -9.09333563]\n", "[ 0. 0. 0. 0.]\n", "FeH\n", "[-13.2417483 18.25742167 12.86366812 11.25653108]\n", "[ 0. 0. 0. 0.]\n", "FeCl\n", "[-8.06294778 6.80598086 -2.63883135 -5.26626164]\n", "[ 0. 0. 0. 0.]\n", "CoH\n", "[-22.87718252 16.65983521 11.03630709 8.50193486]\n", "[ 0. 0. 0. 0.]\n", "CoCl\n", "[-30.84999491 8.64287448 -3.82805261 -1.26231191]\n", "[ 0. 0. 0. 0.]\n", "NiCl\n", "[-72.65680374 -0.83410722 -9.39319652 -6.82026204]\n", "[ 0. 0. 0. 0.]\n", "CuH\n", "[-28.94151604 3.70372744 2.1072347 2.55673028]\n", "[ 0. 0. 0. 0.]\n", "CuCl\n", "[-28.99979769 -1.45622416 -8.05791333 -1.91607067]\n", "[ 0. 0. 0. 0.]\n", "ZnH\n", "[-2.26066594 0.82666178 1.09059321 -1.94406858]\n", "[ 0. 0. 0. 0.]\n", "ZnO\n", "[-31.52580987 1.00473236 -13.19655624 -8.64063205]\n", "[ 0. 0. 0. 0.]\n", "ZnS\n", "[-22.81708119 1.88064046 -8.08113337 -1.75540366]\n", "[ 0. 0. 0. 0.]\n", "ZnCl\n", "[-9.69912603 -3.80782424 -9.88158079 -8.02601091]\n", "[ 0. 0. 0. 0.]\n" ] } ], "source": [ "#print the energy differences for DFT\n", "typ=0\n", "for compound in range(len(compoundListMol)):\n", " print(compoundListMol[compound])\n", " print(dissocEnergy[compound,typ*(len(dfttypList)):typ*len(dfttypList)+4]-dissocEnergyExp[compound])\n", " print(dissocError[compound,typ*(len(dfttypList)):typ*len(dfttypList)+4])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TiCl\n", "7.62373713678\n", "VH\n", "6.70789469842\n", "VO\n", "16.5247638745\n", "VCl\n", "8.44526655783\n", "CrH\n", "1.50029149316\n", "CrO\n", "7.32630529124\n", "CrCl\n", "2.03881850517\n", "MnS\n", "11.0415001383\n", "MnCl\n", "7.32921179078\n", "FeH\n", "2.99421546107\n", "FeCl\n", "5.18380926682\n", "CoH\n", "3.40911277307\n", "CoCl\n", "5.37710956327\n", "NiCl\n", "3.58565120435\n", "CuH\n", "0.672180352608\n", "CuCl\n", "3.00954019916\n", "ZnH\n", "1.37257983748\n", "ZnO\n", "5.92045510379\n", "ZnS\n", "4.11599334423\n", "ZnCl\n", "2.54136352152\n", "TiCl\n", "2.41214125276\n", "VH\n", "2.77046068236\n", "VO\n", "3.31519126816\n", "VCl\n", "1.89921716527\n", "CrH\n", "0.252890643087\n", "CrO\n", "0.392970658947\n", "CrCl\n", "0.40242286574\n", "MnS\n", "0.9777086366\n", "MnCl\n", "0.413106784558\n", "FeH\n", "4.12230579753\n", "FeCl\n", "4.16232742926\n", "CoH\n", "5.14819772419\n", "CoCl\n", "4.81903527417\n", "NiCl\n", "1.04161966167\n", "CuH\n", "0.362328282948\n", "CuCl\n", "0.372628107845\n", "ZnH\n", "0.254110899719\n", "ZnO\n", "0.523986365292\n", "ZnS\n", "0.119542534153\n", "ZnCl\n", "0.235811070224\n", "TiCl\n", "7.52077372737\n", "VH\n", "6.79606666889\n", "VO\n", "16.8054668352\n", "VCl\n", "7.86162613879\n", "CrH\n", "1.49643609084\n", "CrO\n", "7.62287919273\n", "CrCl\n", "2.18395421098\n", "MnS\n", "11.2151186595\n", "MnCl\n", "7.38213613562\n", "FeH\n", "3.03968864484\n", "FeCl\n", "5.25863762273\n", "CoH\n", "3.42665800004\n", "CoCl\n", "5.65112483526\n", "NiCl\n", "4.39623921536\n", "CuH\n", "0.70628279025\n", "CuCl\n", "3.18630175704\n", "ZnH\n", "1.38132509168\n", "ZnO\n", "6.43034288666\n", "ZnS\n", "4.31799627331\n", "ZnCl\n", "2.63201796804\n", "TiCl\n", "1.54630442771\n", "VH\n", "3.20849058739\n", "VO\n", "3.33479281851\n", "VCl\n", "2.58686653794\n", "CrH\n", "0.0868280136181\n", "CrO\n", "0.365230880865\n", "CrCl\n", "0.259411896768\n", "MnS\n", "0.775912191667\n", "MnCl\n", "0.322879882503\n", "FeH\n", "4.65118940258\n", "FeCl\n", "4.14710394078\n", "CoH\n", "5.39331470265\n", "CoCl\n", "4.96822430139\n", "NiCl\n", "0.849612898132\n", "CuH\n", "0.448933146694\n", "CuCl\n", "0.476657184768\n", "ZnH\n", "0.250075781418\n", "ZnO\n", "0.193545825153\n", "ZnS\n", "0.126010172511\n", "ZnCl\n", "0.227423531103\n", "[ 63.17222639 0. 8.65558829 65.38109637 0. 9.40005168]\n" ] } ], "source": [ "#calculate variance in the dissoc energy for DFT and DMC after DFT (without HF):\n", "var=zeros(6)\n", "\n", "for typ in [0,2,3,5]:\n", " n=0\n", " molNan=0\n", " for compound in range(len(compoundListMol)):\n", " if any(np.isnan(dissocEnergy[compound, 1:4])) or any(np.isnan(dissocEnergy[compound, 11:14])):\n", " molNan+=1\n", " continue\n", " else:\n", " var[typ]+=sum((dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]\n", " -mean(dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]))**2)\n", " n+=1\n", " print(compoundListMol[compound])\n", " print(sqrt(sum((dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]\n", " -mean(dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]))**2)/3))\n", " var[typ]=var[typ]/(n*3-n)\n", "\n", "print(var)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "13\n", "13\n", "13\n", "13\n", "[ 43.44664505 0. 1.04878349 46.24181246 0. 0.53351063]\n" ] } ], "source": [ "#calculate variance in the dissoc energy for DFT and DMC after DFT (without HF) and without VO, VH, and FeH, FeCl, CoH, CoCl(bad PBE):\n", "var=zeros(6)\n", "for typ in [0,2,3,5]:\n", " n=0\n", " molNan=0\n", " for compound in range(len(compoundListMol)):\n", " if any(np.isnan(dissocEnergy[compound, 1:4])) or any(np.isnan(dissocEnergy[compound, 11:14])):\n", " molNan+=1\n", " continue\n", " if 'V' in compoundListMol[compound] or 'Fe' in compoundListMol[compound] or 'Co' in compoundListMol[compound]:\n", " continue\n", " else:\n", " var[typ]+=sum((dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]\n", " -mean(dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]))**2)\n", " n+=1\n", " #print(compoundListMol[compound])\n", " #print(sqrt(sum((dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]\n", " # -mean(dissocEnergy[compound, 1+typ*len(dfttypList):4+typ*len(dfttypList)]))**2)/3))\n", " print(n)\n", " var[typ]=var[typ]/(n*3-n)\n", "\n", "print(var)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n12DMpuKVBAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#analyze errorbars of dissocEnergy casino\n", "typ=2\n", "boxplot(dissocError[:,typ*len(dfttypList):4+typ*len(dfttypList)])\n", "plt.xticks([1,2,3,4], dfttypList);" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 30.9707263884\n", "20\n", "DFT_gaussian PBE: 8.58890011816\n", "20\n", "DFT_gaussian B3LYP: 7.21531964876\n", "20\n", "DFT_gaussian B97-1: 5.89563458859\n", "20\n", "DMC_casino_gaussian none: 11.6515235679\n", "20\n", "DMC_casino_gaussian PBE: 6.61537907074\n", "20\n", "DMC_casino_gaussian B3LYP: 5.43327690764\n", "20\n", "DMC_casino_gaussian B97-1: 5.51244736887\n", "20\n", "DFT_gamess none: 35.152901637\n", "20\n", "DFT_gamess PBE: 8.37499005305\n", "20\n", "DFT_gamess B3LYP: 7.94827286465\n", "20\n", "DFT_gamess B97-1: 6.26428939509\n", "20\n", "DMC_casino_gamess none: 11.1736197825\n", "20\n", "DMC_casino_gamess PBE: 6.3891722223\n", "20\n", "DMC_casino_gamess B3LYP: 5.29770708029\n", "20\n", "DMC_casino_gamess B97-1: 5.40296786968\n", "20\n" ] } ], "source": [ "#calculate all mean unsigned errors\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],nanmean(abs(dissocEnergy[:,j+i*len(dfttypList)]-dissocEnergyExp))))\n", " print(np.count_nonzero(~np.isnan(dissocEnergy[:,j+i*len(dfttypList)])))\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 81.63345496, 112.082936 , 98.45364449, 94.21261453,\n", " 0. , 0. , 0. , 0. ,\n", " 97.41394089, 103.0683142 , 97.85493829, 98.05362955,\n", " 80.63531622, 109.82825162, 95.97439137, 92.38551978,\n", " 0. , 0. , 0. , 0. ,\n", " 95.45375722, 99.74407792, 96.12512965, 96.96652928],\n", " [ 41.65079049, 71.80250338, 63.93228215, 55.37635421,\n", " 0. , 0. , 0. , 0. ,\n", " 52.60240887, 63.55519384, 57.88548483, 57.49073633,\n", " 41.65078869, 72.01942697, 63.80668985, 55.37302008,\n", " 0. , 0. , 0. , 0. ,\n", " 51.78369414, 64.10239242, 57.37063163, 57.22404839],\n", " [ 38.78186774, 172.01968487, 139.59529769, 134.82417572,\n", " 0. , 0. , 0. , 0. ,\n", " 112.27166331, 147.86488689, 141.07992146, 140.60841631,\n", " 38.77530606, 172.27378667, 138.73187277, 134.83614811,\n", " 0. , 0. , 0. , 0. ,\n", " 111.72533012, 147.74806345, 140.94666771, 140.42951462],\n", " [ 78.42844968, 112.08316138, 96.87398473, 92.33517642,\n", " 0. , 0. , 0. , 0. ,\n", " 93.80141966, 101.41448274, 97.40795949, 97.36367506,\n", " 78.42844328, 110.72414261, 96.47135436, 92.38317024,\n", " 0. , 0. , 0. , 0. ,\n", " 93.24051476, 102.5365585 , 97.15709155, 96.94691904],\n", " [ 28.25188151, 52.76092672, 55.68583084, 56.15019933,\n", " 0. , 0. , 0. , 0. ,\n", " 37.11237818, 50.76173197, 51.19305426, 50.59234459,\n", " 28.25187952, 52.7613349 , 55.66437287, 56.15095148,\n", " 0. , 0. , 0. , 0. ,\n", " 36.76078249, 50.59923606, 50.43820576, 50.39839676],\n", " [ 21.80452146, 114.81396098, 97.0102341 , 103.96098163,\n", " 0. , 0. , 0. , 0. ,\n", " 60.27617821, 94.6273643 , 93.79175329, 93.79575643,\n", " 11.54605638, 114.84692343, 96.26994162, 103.92775707,\n", " 0. , 0. , 0. , 0. ,\n", " 58.16415479, 94.88141964, 94.44453474, 93.98687079],\n", " [ 63.86823182, 88.24576906, 85.33406066, 90.30374179,\n", " 0. , 0. , 0. , 0. ,\n", " 73.7940746 , 85.92199962, 86.84938671, 86.67502623,\n", " 63.86822755, 88.28453435, 85.03955673, 90.34525638,\n", " 0. , 0. , 0. , 0. ,\n", " 74.06124992, 86.70932336, 86.54594705, 86.09583963],\n", " [ 23.67404747, 89.41693349, 65.77111475, 66.22420856,\n", " 0. , 0. , 0. , 0. ,\n", " 37.36537884, 58.33412695, 60.18123071, 60.57781881,\n", " 19.93033921, 89.41336459, 65.04080438, 66.25034904,\n", " 0. , 0. , 0. , 0. ,\n", " 48.88408639, 58.78830253, 60.32099811, 58.58135078],\n", " [ 72.32490114, 88.86363473, 75.94845091, 71.60666437,\n", " 0. , 0. , 0. , 0. ,\n", " 84.20963106, 82.88914782, 83.56518945, 83.87922941,\n", " 72.32489812, 88.88631945, 75.55157794, 71.6420775 ,\n", " 0. , 0. , 0. , 0. ,\n", " 83.25303113, 82.78906618, 83.56498484, 83.30966811],\n", " [ 23.6582517 , 55.15742167, 49.76366812, 48.15653108,\n", " 0. , 0. , 0. , 0. ,\n", " 35.27056862, 49.5363324 , 41.32297109, 40.3428212 ,\n", " 23.65824939, 55.16059341, 49.41996226, 48.18387463,\n", " 0. , 0. , 0. , 0. ,\n", " 35.3902437 , 49.83786664, 40.50986216, 39.50885935],\n", " [ 70.43705222, 85.30598086, 75.86116865, 73.23373836,\n", " 0. , 0. , 0. , 0. ,\n", " 82.65634054, 92.57711999, 83.91855171, 83.58583415,\n", " 70.43704814, 85.34905036, 75.51675423, 73.22636512,\n", " 0. , 0. , 0. , 0. ,\n", " 82.82446305, 92.5839022 , 83.79517159, 83.77798608],\n", " [ 22.62281748, 62.15983521, 56.53630709, 54.00193486,\n", " 0. , 0. , 0. , 0. ,\n", " 34.67232823, 60.14150492, 49.07874142, 49.3680647 ,\n", " 22.62281423, 62.21500509, 56.18195578, 54.14470266,\n", " 0. , 0. , 0. , 0. ,\n", " 34.35288979, 60.13442939, 49.3040957 , 48.16768259],\n", " [ 49.65000509, 89.14287448, 76.67194739, 79.23768809,\n", " 0. , 0. , 0. , 0. ,\n", " 64.20921317, 85.86096853, 75.7601919 , 75.52052464,\n", " 48.95059568, 87.79532383, 74.46372677, 77.90309639,\n", " 0. , 0. , 0. , 0. ,\n", " 62.510817 , 84.33580318, 73.95343107, 73.64649023],\n", " [ 15.34319626, 87.16589278, 78.60680348, 81.17973796,\n", " 0. , 0. , 0. , 0. ,\n", " 84.06798573, 83.39536563, 84.42222881, 81.8860427 ,\n", " 15.34319118, 86.99618036, 76.60244078, 79.36030058,\n", " 0. , 0. , 0. , 0. ,\n", " 83.51068322, 83.38633113, 84.82202885, 82.7994316 ],\n", " [ 33.65848396, 66.30372744, 64.7072347 , 65.15673028,\n", " 0. , 0. , 0. , 0. ,\n", " 60.74790987, 61.38724879, 61.49408494, 60.67764159,\n", " 33.6584814 , 66.3081675 , 64.61316716, 65.16068467,\n", " 0. , 0. , 0. , 0. ,\n", " 60.51814507, 60.6823894 , 61.71690691, 61.5225483 ],\n", " [ 58.70020231, 86.24377584, 79.64208667, 85.78392933,\n", " 0. , 0. , 0. , 0. ,\n", " 82.70964499, 82.2648329 , 83.14295855, 82.48824743,\n", " 58.70019723, 86.24145167, 79.26482865, 85.78321993,\n", " 0. , 0. , 0. , 0. ,\n", " 83.87868373, 81.97036116, 82.98269294, 82.98031035],\n", " [ 19.33933406, 22.42666178, 22.69059321, 19.65593142,\n", " 0. , 0. , 0. , 0. ,\n", " 26.38675187, 26.28985874, 26.3191551 , 25.76605371,\n", " 19.33933407, 22.42610905, 22.72397211, 19.656184 ,\n", " 0. , 0. , 0. , 0. ,\n", " 26.41860643, 25.75511184, 26.33191554, 26.22210162],\n", " [ 6.37419013, 38.90473236, 24.70344376, 29.25936795,\n", " 0. , 0. , 0. , 0. ,\n", " 28.43554298, 28.25229925, 26.96948918, 27.64731474,\n", " -44.10833591, 36.65324414, 20.9938439 , 27.3540946 ,\n", " 0. , 0. , 0. , 0. ,\n", " 23.90636093, 29.64468544, 29.20523409, 29.27090839],\n", " [ 11.48291881, 36.18064046, 26.21886663, 32.54459634,\n", " 0. , 0. , 0. , 0. ,\n", " 18.51885373, 27.04988718, 26.8349954 , 26.7701827 ,\n", " -5.97173463, 35.87492041, 25.4453971 , 32.18386993,\n", " 0. , 0. , 0. , 0. ,\n", " 27.22990955, 27.76480999, 27.88451736, 28.07104985],\n", " [ 43.80087397, 49.69217576, 43.61841921, 45.47398909,\n", " 0. , 0. , 0. , 0. ,\n", " 52.65757997, 51.36009674, 50.92847096, 50.81186053,\n", " 43.80087146, 49.70750833, 43.37817214, 45.48054971,\n", " 0. , 0. , 0. , 0. ,\n", " 51.71979041, 50.87115792, 51.35554559, 51.35162265]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dissocEnergy" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: -30.9707263884\n", "20\n", "DFT_gaussian PBE: 7.79366146239\n", "20\n", "DFT_gaussian B3LYP: -2.36372803808\n", "20\n", "DFT_gaussian B97-1: -2.3110854332\n", "20\n", "DMC_casino_gaussian none: -10.2860103347\n", "20\n", "DMC_casino_gaussian PBE: 0.582638169734\n", "20\n", "DMC_casino_gaussian B3LYP: -2.24496212254\n", "20\n", "DMC_casino_gaussian B97-1: -2.54993895923\n", "20\n", "DFT_gamess none: -35.152901637\n", "20\n", "DFT_gamess PBE: 7.4432819373\n", "20\n", "DFT_gamess B3LYP: -3.18726086127\n", "20\n", "DFT_gamess B97-1: -2.65844040466\n", "20\n", "DMC_casino_gamess none: -9.96564030787\n", "20\n", "DMC_casino_gamess PBE: 0.498264417584\n", "20\n", "DMC_casino_gamess B3LYP: -2.30622035775\n", "20\n", "DMC_casino_gamess B97-1: -2.68209357927\n", "20\n" ] } ], "source": [ "#calculate all mean signed errors\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],nanmean(dissocEnergy[:,j+i*len(dfttypList)]-dissocEnergyExp)))\n", " print(np.count_nonzero(~np.isnan(dissocEnergy[:,j+i*len(dfttypList)])))\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 6.25675474333\n", "20\n", "DFT_gaussian PBE: 1.57916722262\n", "20\n", "DFT_gaussian B3LYP: 0.869364368837\n", "20\n", "DFT_gaussian B97-1: 0.941925224734\n", "20\n", "DMC_casino_gaussian none: 2.86321876477\n", "20\n", "DMC_casino_gaussian PBE: 1.02660685355\n", "20\n", "DMC_casino_gaussian B3LYP: 0.659994244618\n", "20\n", "DMC_casino_gaussian B97-1: 0.630674895505\n", "20\n", "DFT_gamess none: 6.96470755771\n", "20\n", "DFT_gamess PBE: 1.58095802527\n", "20\n", "DFT_gamess B3LYP: 0.90972092385\n", "20\n", "DFT_gamess B97-1: 0.955697485044\n", "20\n", "DMC_casino_gamess none: 2.77523549907\n", "20\n", "DMC_casino_gamess PBE: 1.03660667931\n", "20\n", "DMC_casino_gamess B3LYP: 0.602394815594\n", "20\n", "DMC_casino_gamess B97-1: 0.673038129588\n", "20\n" ] } ], "source": [ "#calculate standard deviation of the mean of the errors\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " mue=nanmean(abs(dissocEnergy[:,j+i*len(dfttypList)]-dissocEnergyExp))\n", " n=0\n", " var=0\n", " for k in range(len(compoundListMol)):\n", " if isnan(dissocEnergy[k,j+i*len(dfttypList)]):\n", " continue\n", " n+=1\n", " var+=(abs(dissocEnergy[k,j+i*len(dfttypList)]-dissocEnergyExp[k])-mue)**2\n", " if not n==0:\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],sqrt(var/(n-1)/n)))\n", " print(np.count_nonzero(~np.isnan(dissocEnergy[:,j+i*len(dfttypList)])))\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 27.9810578493\n", "20\n", "DFT_gaussian PBE: 7.06225051522\n", "20\n", "DFT_gaussian B3LYP: 3.88791565187\n", "20\n", "DFT_gaussian B97-1: 4.21241766445\n", "20\n", "DMC_casino_gaussian none: 12.8047035849\n", "20\n", "DMC_casino_gaussian PBE: 4.59112542143\n", "20\n", "DMC_casino_gaussian B3LYP: 2.95158399145\n", "20\n", "DMC_casino_gaussian B97-1: 2.8204638761\n", "20\n", "DFT_gamess none: 31.1471190849\n", "20\n", "DFT_gamess PBE: 7.07025922815\n", "20\n", "DFT_gamess B3LYP: 4.06839565257\n", "20\n", "DFT_gamess B97-1: 4.27400908497\n", "20\n", "DMC_casino_gamess none: 12.411230459\n", "20\n", "DMC_casino_gamess PBE: 4.63584600175\n", "20\n", "DMC_casino_gamess B3LYP: 2.69399151392\n", "20\n", "DMC_casino_gamess B97-1: 3.00991801842\n", "20\n" ] } ], "source": [ "#calculate corrected sample standard deviation of the errors\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " mue=nanmean(abs(dissocEnergy[:,j+i*len(dfttypList)]-dissocEnergyExp))\n", " n=0\n", " var=0\n", " for k in range(len(compoundListMol)):\n", " if isnan(dissocEnergy[k,j+i*len(dfttypList)]):\n", " continue\n", " n+=1\n", " var+=(abs(dissocEnergy[k,j+i*len(dfttypList)]-dissocEnergyExp[k])-mue)**2\n", " \n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],sqrt(var/(n-1))))\n", " print(np.count_nonzero(~np.isnan(dissocEnergy[:,j+i*len(dfttypList)])))\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 15.206640811\n", "7\n", "DFT_gaussian PBE: 3.54217102304\n", "7\n", "DFT_gaussian B3LYP: 5.60964863756\n", "7\n", "DFT_gaussian B97-1: 4.02927041239\n", "7\n", "DMC_casino_gaussian none: 7.19608145412\n", "7\n", "DMC_casino_gaussian PBE: 5.7084728729\n", "7\n", "DMC_casino_gaussian B3LYP: 4.40672637686\n", "7\n", "DMC_casino_gaussian B97-1: 4.46940005357\n", "7\n", "DFT_gamess none: 17.7001654363\n", "7\n", "DFT_gamess PBE: 3.50041499013\n", "7\n", "DFT_gamess B3LYP: 5.96109790465\n", "7\n", "DFT_gamess B97-1: 4.08185574256\n", "7\n", "DMC_casino_gamess none: 5.77235242814\n", "7\n", "DMC_casino_gamess PBE: 5.51606111246\n", "7\n", "DMC_casino_gamess B3LYP: 4.24619557648\n", "7\n", "DMC_casino_gamess B97-1: 4.23013333378\n", "7\n" ] } ], "source": [ "#calculate mean errors for single Det character mols:\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],nanmean([abs(dissocEnergy[k,j+i*len(dfttypList)]-dissocEnergyExp[k]) for k in range(len(compoundListMol)) if compoundListMol[k] in ['CuCl', 'ZnH', 'ZnS', 'ZnCl', 'CrCl', 'MnCl', 'FeCl']])))\n", " print(np.count_nonzero(~np.isnan([dissocEnergy[k,j+i*len(dfttypList)]for k in range(len(compoundListMol)) if compoundListMol[k] in ['CuCl', 'ZnH', 'ZnS', 'ZnCl', 'CrCl', 'MnCl', 'FeCl']])))\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 39.4590801608\n", "13\n", "DFT_gaussian PBE: 11.3063696309\n", "13\n", "DFT_gaussian B3LYP: 8.07991173171\n", "13\n", "DFT_gaussian B97-1: 6.90059991423\n", "13\n", "DMC_casino_gaussian none: 14.0506077831\n", "13\n", "DMC_casino_gaussian PBE: 7.10371317726\n", "13\n", "DMC_casino_gaussian B3LYP: 5.98603488575\n", "13\n", "DMC_casino_gaussian B97-1: 6.07408823096\n", "13\n", "DFT_gamess none: 44.5505288219\n", "13\n", "DFT_gamess PBE: 10.9997612408\n", "13\n", "DFT_gamess B3LYP: 9.0182901508\n", "13\n", "DFT_gamess B97-1: 7.43944597722\n", "13\n", "DMC_casino_gamess none: 14.0819945118\n", "13\n", "DMC_casino_gamess PBE: 6.85930897375\n", "13\n", "DMC_casino_gamess B3LYP: 5.86390558235\n", "13\n", "DMC_casino_gamess B97-1: 6.03449415824\n", "13\n" ] } ], "source": [ "#calculate mean errors for multi Det character mols:\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],nanmean([abs(dissocEnergy[k,j+i*len(dfttypList)]-dissocEnergyExp[k]) for k in range(len(compoundListMol)) if not compoundListMol[k] in ['CuCl', 'ZnH', 'ZnS', 'ZnCl', 'CrCl', 'MnCl', 'FeCl']])))\n", " print(np.count_nonzero(~np.isnan([dissocEnergy[k,j+i*len(dfttypList)]for k in range(len(compoundListMol)) if not compoundListMol[k] in ['CuCl', 'ZnH', 'ZnS', 'ZnCl', 'CrCl', 'MnCl', 'FeCl']])))\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DFT_gaussian none: 30.2218939934\n", "11\n", "DFT_gaussian PBE: 10.6305994807\n", "11\n", "DFT_gaussian B3LYP: 5.72869803797\n", "11\n", "DFT_gaussian B97-1: 6.21025086886\n", "11\n", "DMC_casino_gaussian none: 12.3956729038\n", "11\n", "DMC_casino_gaussian PBE: 5.56270285122\n", "11\n", "DMC_casino_gaussian B3LYP: 5.08496061188\n", "11\n", "DMC_casino_gaussian B97-1: 5.09740111851\n", "11\n", "DFT_gamess none: 30.7171523752\n", "11\n", "DFT_gamess PBE: 10.2249667418\n", "11\n", "DFT_gamess B3LYP: 6.40856284863\n", "11\n", "DFT_gamess B97-1: 6.49119876679\n", "11\n", "DMC_casino_gamess none: 11.664227758\n", "11\n", "DMC_casino_gamess PBE: 5.3158910789\n", "11\n", "DMC_casino_gamess B3LYP: 5.30934743392\n", "11\n", "DMC_casino_gamess B97-1: 5.5019006771\n", "11\n" ] } ], "source": [ "#calculate mean errors for mols with exp error <1.2kcal/mol (['FeH', 'NiCl', 'CuCl', 'CoH', 'CrO', ZnH', 'ZnO', 'ZnS', 'ZnCl'])\n", "for i in [0,2,3,5]:#range(len(typList)):\n", " for j in range(len(dfttypList)):\n", " print(\"{} {}: {}\".format(typList[i],dfttypList[j],nanmean([abs(dissocEnergy[k,j+i*len(dfttypList)]-dissocEnergyExp[k]) for k in range(len(compoundListMol)) if not compoundListMol[k] in ['FeH', 'NiCl', 'CuCl', 'CoH', 'CrO','ZnH', 'ZnO', 'ZnS', 'ZnCl']])))\n", " print(np.count_nonzero(~np.isnan([dissocEnergy[k,j+i*len(dfttypList)]for k in range(len(compoundListMol)) if not compoundListMol[k] in ['FeH', 'NiCl', 'CuCl', 'CoH', 'CrO','ZnH', 'ZnO', 'ZnS', 'ZnCl']])))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 0 }