{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Finite Difference (finite_difference)\n", "## General Background" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we introduce the basic aspects of finite difference within the context of our PM code. Our class called **finite_difference** can be used to construct finite difference calculations for arbitrary numbers of variables, orders, and can be used for central, forward, or backward finite difference calculations. It will set up explicit grids for you to compute on, and it will also ensure that there are no redundant calculations due to overlapping deltas. If you collect and feed it the data, it will deliver the finite difference results. \n", "\n", "Let us get started by importing the class:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from general_finite_difference import finite_difference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The constructor only has one required parameter, which is called **order**. This variable *order* will be specified by a tuple of integers $\\large (n,m,\\dots)$; where this means we are taking the *n-th* derivative of the first variable, *m-th* derivative of the second variable, etc. You can instead simply supply an integer $\\large n$, and this will imply that you are dealing with the *n-th* derivative of a function with respect to a single variable (though the function may depend on many variables). Let us envision working with a some potential energy $\\large V(x,y,z)$, or any function you like. \n", "\n", "## Single Variable\n", "Let us begin by taking derivatives with respect to a single variable." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "fd=finite_difference(2)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given that we did not supply a variable name, via vname (tuple of strings), the code will name it using defaults." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['x']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.vname" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us look at one of the key dictionaries: stencil." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([((-2,), 1), ((0,), -2), ((2,), 1)])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This corresponds to the usual formula for a single variable, and you can find something similar on the [Wikipedia page](https://en.wikipedia.org/wiki/Finite_difference#Higher-order_differences), for example:\n", "\n", "$$\\Large\n", "V^{(n)}(2\\Delta)=\\frac{1}{(2\\Delta)^n}\\sum_{i = 0}^{n} (-1)^i \\binom{n}{i} V\\left(x + \\left(n - 2i\\right) \\Delta\\right)\n", "$$\n", "\n", "Mathematically, you can see that our stencil dictionary stores the following information:\n", "\n", "$$\\Large\\begin{aligned}\n", "\\left((n - 2i,)\\,\\,,\\,\\,(-1)^i \\binom{n}{i}\\right) && \\textrm{where} && i=1,..,n\n", "\\end{aligned}$$\n", "\n", "It is worth noting that we normally work with a rescaled function $\\large \\tilde{V}^{(n)}(\\Delta)=V^{(n)}(2\\Delta)$, which is just a different convention. Both functions will have the the same intercept as $\\large\\Delta\\rightarrow0$, and will therefore deliver the same derivative. However, the quadratic error tail will be renormalized by a factor of 4, though we typically never exploit the error tail in any way: we just use it to ensure we are properly extrapolating to zero. We will not use the tilde notation in the future, but it will always be understood that our central finite difference uses this $2\\Delta$ convention; though this difference does not occur with forward or backward differences.\n", "\n", "It might also be insightful to check out a 1st and 3rd derivative stencil." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([((-1,), -1), ((1,), 1)])\n", "OrderedDict([((-3,), -1), ((-1,), 3), ((1,), -3), ((3,), 1)])\n" ] } ], "source": [ "fd1=finite_difference(1)\n", "fd3=finite_difference(3)\n", "print fd1.stencil\n", "print fd3.stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the nice parts of the code is that it can do forward and backward finite difference as well. The type of finite difference is specified on the constructor as **fdtype**, and has a default of *central*; though it can also take values of *forward* or *backward*." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([((0,), 1), ((1,), -2), ((2,), 1)])\n", "OrderedDict([((-2,), 1), ((-1,), -2), ((0,), 1)])\n" ] } ], "source": [ "fdf=finite_difference(2,fdtype='forward')\n", "fdb=finite_difference(2,fdtype='backward')\n", "print fdf.stencil\n", "print fdb.stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multiple Variables\n", "Now let us move on to several variables: $\\large\\frac{\\partial^4V}{\\partial x^2\\partial y^2}$. In this case, we have *order=(2,2)*:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "fd=finite_difference((2,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again, the code will automatically supply names of the variables." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['x', 'y']" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.vname" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These names will suffice fine, but you can specify any names you like by supplying a list of names using the constructor variable name vnames. The only requirement for a name is that it must be a valid dictionary key. For example, if you are working with a function of strain, a rank two vector, you may prefer to choose different names:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['xx', 'yy']" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd=finite_difference((2,2),vname=['xx','yy'])\n", "fd.vname" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us examine the stencil in this case." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([((-2, -2), 1),\n", " ((-2, 0), -2),\n", " ((-2, 2), 1),\n", " ((0, -2), -2),\n", " ((0, 0), 4),\n", " ((0, 2), -2),\n", " ((2, -2), 1),\n", " ((2, 0), -2),\n", " ((2, 2), 1)])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, the code is simply evaluating the equation generalized to two variables with arbitrary order derivatives:\n", "\n", "$$\\Large\n", "V^{(n,m)}(2\\Delta)=\\frac{1}{(2\\Delta)^{n+m}}\\sum_{i = 0}^{n}\\sum_{j = 0}^{m} (-1)^{i+j} \\binom{n}{i}\\binom{m}{j} V\\left(x + \\left(n - 2i\\right) \\Delta,x + \\left(m - 2j\\right) \\Delta\\right)\n", "$$\n", "\n", "where the variable stencil is now storing:\n", "\n", "$$\\Large\\begin{aligned}\n", "\\left((n - 2i,m-2j)\\,\\,,\\,\\,(-1)^{i+j} \\binom{n}{i}\\binom{m}{j}\\right) && \\textrm{where} && i=1,..,n && j=1,..,m\n", "\\end{aligned}$$\n", "\n", "The code is general to arbitrary numbers of variables.\n", "\n", "It is also useful to explore what stencil looks like in the case of forward finite difference. Here we only have positive displacements:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([((0, 0), 1),\n", " ((0, 1), -2),\n", " ((0, 2), 1),\n", " ((1, 0), -2),\n", " ((1, 1), 4),\n", " ((1, 2), -2),\n", " ((2, 0), 1),\n", " ((2, 1), -2),\n", " ((2, 2), 1)])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd=finite_difference((2,2),fdtype='forward')\n", "fd.stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining Deltas\n", "\n", "Moving on, let us now actually define some $\\large\\Delta$ to work with. Let us stick with a single variable and a second derivative:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "fd=finite_difference((2,),delta=[0.01,0.02])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first dictionary we create is the so-called *delta_stencil*. For a given value of delta, it tells which which stencil lattice points you need to evaluate. Furthermore, it knows when the stencil point are overlapping.\n", "\n", "For this case below, the code knows not to add the 0 stencil point for a second time at the larger delta. This is a trivial case." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([(0.01, [(-2,), (0,), (2,)]), (0.02, [(-2,), (2,)])])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.delta_stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next dictionary is *delta_disp*: for a given value of delta, it tells us what the actual displacement it. This is basically changing from stencil lattice coordinates to stencil cartesian coordinates." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([(0.01, [(-0.02,), (0.0,), (0.02,)]), (0.02, [(-0.04,), (0.04,)])])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.delta_disp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, it might also be useful just to have a list of all displacements needed to be evaluated in order to perform FD, and this is stored in a list called **all_disp**." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(-0.04,), (-0.02,), (0.0,), (0.02,), (0.04,)]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.all_disp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us look at a slightly more interesting example with more deltas and a 4th order derivative. Here we see that the number of stencil points is cut in half every other delta due to the overlap." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "fd=finite_difference((4,),delta=[0.01,0.02,0.03,0.04,0.05,0.06])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([(0.01, [(-4,), (-2,), (0,), (2,), (4,)]),\n", " (0.02, [(-4,), (4,)]),\n", " (0.03, [(-4,), (-2,), (2,), (4,)]),\n", " (0.04, [(-4,), (4,)]),\n", " (0.05, [(-4,), (-2,), (2,), (4,)]),\n", " (0.06, [(-4,), (4,)])])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.delta_stencil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Performing Finite Difference with Data\n", "\n", "Our codes are set up to facilitate interacting with your data. One useful variable is **all_disp_named**, which includes the name of the variable along with the amplitude embedded in a table. This might be over the top, but I am paranoid of getting data mixed up." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(('x', -0.02), ('y', -0.02)),\n", " (('x', -0.02), ('y', 0.0)),\n", " (('x', -0.02), ('y', 0.02)),\n", " (('x', 0.0), ('y', -0.02)),\n", " (('x', 0.0), ('y', 0.0)),\n", " (('x', 0.0), ('y', 0.02)),\n", " (('x', 0.02), ('y', -0.02)),\n", " (('x', 0.02), ('y', 0.0)),\n", " (('x', 0.02), ('y', 0.02))]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd=finite_difference((2,2),delta=[0.01])\n", "fd.all_disp_named" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given that your function will probably have more values that you are actively probing in a given derivative, you may want to take your above displacement and embed it in a larger number of variables; or change the order. Let us assume that you have a function of three variables x,y,z, then you can simply do:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[(-0.02, -0.02, 0.0),\n", " (-0.02, 0.0, 0.0),\n", " (-0.02, 0.02, 0.0),\n", " (0.0, -0.02, 0.0),\n", " (0.0, 0.0, 0.0),\n", " (0.0, 0.02, 0.0),\n", " (0.02, -0.02, 0.0),\n", " (0.02, 0.0, 0.0),\n", " (0.02, 0.02, 0.0)]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.all_disp_fullarg(\"x y z\".split())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us do some simple tests. Consider the following function:\n", "\n", "$$\\Large\n", "E(x)=\\alpha_1x+\\frac{1}{2}\\alpha_2x^2+\\frac{1}{6}\\alpha_3x^3 +\\frac{1}{24}\\alpha_4x^4\n", "$$\n", "where we have:\n", "$$\\Large\n", "\\begin{align*}\n", "\\alpha_1=2&&\\alpha_2=3&&\\alpha_3=5&&\\alpha_4=160\n", "\\end{align*}\n", "$$\n", "\n", "We will use the static method **function_to_data**, which takes a function as its argument, evaluates it over the grid, and then returns a dictionary of the data. This result is directly fed into the method **eval_finite_difference**, which actually puts everything together and performs the finite difference. This is the method that you will normally feed your first-principles data into." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([(0.01, 0.0)])\n" ] } ], "source": [ "alp1=2;alp2=3;alp3=20;alp4=160\n", "def energy(x): \n", " return alp1*x+(1/2.)*alp2*x**2+(1/6.)*alp3*x**3+(1/24.)*alp4*x**4\n", "results=fd.eval_finite_difference(fd.function_to_data(energy))\n", "print results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will want to add a larger number of deltas so we have something interesting to look at. We do not have to reinstantiate the object in order to change the number of delta: we can simply call the method **make_unique_disp**; though there is nothing wrong with reinstantiating." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "fd.make_unique_disp(delta=np.arange(0.01,0.2,0.01))\n", "results=fd.eval_finite_difference(fd.function_to_data(energy))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What would be even more interesting is to do a comparison between central and forward finite difference for this test function. Let us do it and then make a comparison plot." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "delta=np.arange(0.01,0.2,0.01)\n", "fdc=finite_difference((2,),delta=delta)\n", "resultsc=fdc.eval_finite_difference(fdc.function_to_data(energy))\n", "fdf=finite_difference((2,),delta=delta,fdtype='forward')\n", "resultsf=fdf.eval_finite_difference(fdf.function_to_data(energy))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.figure(figsize=(12,6))\n", "plt.ylabel(r\"$\\frac{\\partial^2E}{\\partial x^2}$\",**{'size':42,'rotation':0,'ha':'right'})\n", "plt.xlabel(r\"$\\Delta$\",**{'size':42})\n", "plt.xticks(**{'size':22}) \n", "plt.yticks(**{'size':22})\n", "plt.ylim([2.9,5.5])\n", "plt.xlim([0,0.18])\n", "plt.plot(*zip(*resultsc.items()),marker='o')\n", "plt.plot(*zip(*resultsf.items()),marker='o')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Above you can see the major advantage of central finite difference: the error tail is quadratic instead of linear. The quadratic error tail is far more forgiving." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let us do a slightly more complicated function and a more complicated derivative. Consider the following function:\n", "\n", "$$\\Large\n", "V(x,y)=\\alpha_1x+\\frac{1}{2}\\alpha_2x^2+\\frac{1}{6}\\alpha_3x^3 +\\frac{1}{24}\\alpha_4x^4+\\alpha_5xy+\\frac{1}{2}\\alpha_6xy^2+\\frac{1}{6}\\alpha_7xy^3\n", "$$\n", "\n", "where we have:\n", "$$\\Large\n", "\\begin{align*}\n", "\\alpha_1=2&&\\alpha_2=3&&\\alpha_3=5&&\\alpha_4=160&&\\alpha_5=1.5&&\\alpha_6=2&& \\hspace{4mm}\\alpha_7=10\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def energy2d(x,y): return 5+2*x+0.5*3*x**2+(1/6.)*5*x**3+(1/24.)*160*x**4+1.5*x*y + 0.5*2*x*y**2+(1/6.)*10*x*y**3+(1/24.)*90*x*y**4" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "fdc2=finite_difference((1,2),delta=np.arange(0.01,0.2,0.01))\n", "resultsc2=fdc2.eval_finite_difference(fdc2.function_to_data(energy2d))\n", "fdf2=finite_difference((1,2),delta=np.arange(0.01,0.2,0.01),fdtype='forward')\n", "resultsf2=fdf2.eval_finite_difference(fdf2.function_to_data(energy2d))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0UAAAGhCAYAAACuzR8IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzs3Xl4VdXZ/vHvEwgQhiQIDkCI4IQKhCmggjNWrYrixKu21tpa60j9tQ71tVLFVn3V1gnRaq1Tq5XWkTpQxQlnAkgYnZVJZhJmCMnz+2PvmBBOQoaTs09y7s915dpn773O2k8ua+Vmrb2WuTsiIiIiIiKpKi3qAkRERERERKKkUCQiIiIiIilNoUhERERERFKaQpGIiIiIiKQ0hSIREREREUlpCkUiIiIiIpLSFIpERERERCSlKRSJiIiIiEhKUygSEREREZGUplAkIiIiIiIprWXUBUhy69y5s/fo0SPqMkRERESkGZs2bdpKd981qucrFEmNevToQUFBQdRliIiIiEgzZmbfRvl8TZ8TEREREZGUplAkIiIiIiIpTaFIRERERERSmkKRiIiIiIikNIUiERERERFJaQpFIiIiIiKS0hSKREREREQkpSkUiYiIiIhISlMoEhERERGRlKZQJCIiIiIiKU2hSEREREREUppCkYiIiIiIpDSFIhERERERSWkKRSIiIiIiktIUikREREREJKUpFImIiIiISEpTKBIRERERkZSmUCQiIiIiIilNoUhERERERFKaQpGIiIiIiKQ0hSIREREREUlpCkUiIiIiIpLSFIpERERERCSlKRSJiIiIiEhKUygSEREREZGUplAkIiIiIiIpTaFIRERERERSmkKRiIiIiIikNIWiJGBmj5qZ1/Azv479vbWT/l5trN9FRERERKSpaRl1AbKd94AvYlz/rp79TQKWxrg+q579iYiIiIg0OwpFyeWv7v5oHPu71d3fimN/IiIiIiLNjqbPiYiIiIhISlMoEhERERGRaBROgDv7MKhL2qAoy9D0ueRylJnlAe2BZcC7wGvuXlbP/k41s1OB1sAS4E13nxKfUkVEREREGqBwAkwcDSWboq5EoSjJ/CTGtblmdpa712dxhNFVzm80s/eAs919YT36ExERERGJj8ljkyIQgabPJYtPCALMgQSjRF2Bk4CZ4bXX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u1Ls3pjFooiIyAQpKRIREZmcy4C5KfZdaWa12SyMiIiMn5IiERGRyUlsOvdg3PMS4O1ZLIuIiEyAOedyXQYREZFpyczmAHuBSLBpN/A64Om4w37nnDsr22UTEZH0qaZIRERk4t7JUEIE8F/OuT8Cv4/bdqaZHZ/dYomIyHgoKRIREZm4jQnrNwfLH45xnIiIhIiaz4mIiEyAmZ0GPBm36Q/OuVODfY3AHoZ+fDwALHTODWS3lCIikg7VFImIiEzMxoT1wdoh59w+4P64fQ3ApVNfJBERmQglRSIiIuNkZhHgHXGbosB/JRx2c8L6xqksk4iITJySIhERkfF7PVAft/6Ac25vwjG3Ad1x61eYWd2Ul0xERMZNSZGIiMj4Jc5NlDiwAs65Y8CdcZuKGV67JCIiIaGBFkRERMbBzOYBLwNFwaYeYJ5zrjXJsW8Afhq36Unn3OlTX0oRERkP1RSJiIiMz58ylBAB3JUsIQrcDTTHra8zs5OmrGQiIjIhSopERETGZ2PC+oimczHOuT7gJ2OcLyIiOabmcyIiImkyszOA38VtOgo0OOd6RznnlcBv4zYdAhY45/qnppQiIjJeqikSERFJ38aE9VtHS4gCDwM749bnApdlsEwiIjJJSopERETSYGYlwNsTNqdsOhfjfJOMxDmMNmaoWCIikgFKikRERNLzBmBW3Ppu4ME0z01Mni43s/qkR4qISNYpKRIREUlP4txEP3Jpdsx1zj0LPBW3KQK8M1MFExGRyVFSJCIiMgYzawQuStg8ZtO5MY5PTLJERCRHlBSJiIiM7d1AYdz6Fufc0+O8xo+AaNz6KWZ26qRLJiIik6akSEREZGxXJ6yPt5YI59w+YFPC5o0TLZCIiGSOkiIREZFRmNk5wJq4TQ5f6zMRNyesv9PMIhO8loiIZIiSIhERkdFtTFh/wDm3Z4LXuh3oiluvBy6f4LVERCRDlBSJiIikYGZlwNsSNo+76VyMc+4YcGfCZg24ICKSY0W5LoCIiEiIvRGoSdjWYmYXTuKaOxLWX2tmc51zhyZxTRERmQRLc4oFERGRvGNm9wCTSYDS9X+cc1/LwuuIiEgSSopERESSMLNFwE6y09T8aefcyVl4HRERSUJ9ikRERJK7muz9P3mSmZ2epdcSEZEEqikSEREREZG8ppoiERERERHJa0qKREREREQkrykpEhERERGRvKakSERERERE8pqSIhERERERyWtKikREREREJK8pKRIRERERkbympEhERERERPKakiIREREREclrSopERERERCSvKSkSEREREZG8pqRIRERERETympIiERERERHJa0qKREREREQkrykpEhERERGRvPb/AZcC7v60aJ07AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(12,6))\n", "plt.ylabel(r\"$\\frac{\\partial^3V}{\\partial x\\partial y^2}$\",**{'size':42,'rotation':0,'ha':'right'})\n", "plt.xlabel(r\"$\\Delta$\",**{'size':42})\n", "plt.xticks(**{'size':22}) \n", "plt.yticks(**{'size':22})\n", "#plt.ylim([2.9,5.5])\n", "plt.xlim([0,0.18])\n", "plt.plot(*zip(*resultsc2.items()),marker='o')\n", "plt.plot(*zip(*resultsf2.items()),marker='o')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again we see the benefits of central finite difference.\n", "\n", "In order to make a connection with DFT, let us consider the possibility where we automatically have the first derivative using perturbation theory." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0.01, array([1.73472348e-14, 2.00150000e+00])),\n", " (0.02, array([0. , 2.006])),\n", " (0.03, array([7.70988212e-15, 2.01350000e+00]))]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def forcex(x,y): return 3*x+(3/6.)*5*x**2+(4/24.)*160*x**3+1.5*y + 0.5*2*y**2+(1/6.)*10*y**3+(1/24.)*90*y**4\n", "def forcey(x,y): return 1.5*x + 2*x*y+(3/6.)*10*x*y**2+(4/24.)*90*x*y**3\n", "def force_vec(x,y): return (forcex(x,y),forcey(x,y))\n", "fdc=finite_difference((1,1),delta=np.arange(0.01,0.2,0.01))\n", "results=fdc.eval_finite_difference(fdc.function_to_data(force_vec))\n", "results.items()[:3]" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.1,2.55,'$\\\\frac{\\\\partial^3V}{\\\\partial x\\\\partial y^2}$')" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0UAAAGhCAYAAACuzR8IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzs3Xd8VFX6x/HPA4QSqggqKFURCyJqZO2o2FaxLWtZseDiYu9tFbGCuhTL2hBU0DXWFRQ7ioqFxTWADVkrTaRK75Cc3x/PzS8hJJCESe5k5vt+veZ155a59yTq7nxzznmOhRAQERERERFJV9XiboCIiIiIiEicFIpERERERCStKRSJiIiIiEhaUygSEREREZG0plAkIiIiIiJpTaFIRERERETSmkKRiIiIiIikNYUiERERERFJawpFIiIiIiKS1hSKREREREQkrdWIuwGS3Jo0aRJat24ddzNEREREJIVNnDhxYQihaVzPVyiSzWrdujU5OTlxN0NEREREUpiZzYjz+Ro+JyIiIiIiaU2hSERERERE0ppCkYiIiIiIpDWFIhERERERSWsKRSIiIiIiktYUikREREREJK0pFImIiIiISFpTKBIRERERkbSmUCQiIiIiImlNoUhERERERNKaQpGIiIiIiKQ1hSIREREREUlrCkUiIiIiIpLWFIpERERERCStKRSJiIiIiEhaUygSEREREZG0plAkIiIiIiJpTaFIRERERETSmkKRiIiIiIikNYUiERERERFJawpFIiIiIiKS1hSKREREREQkrSkUiYiIiIhIWlMoEhERERGRtKZQJCIiIiIiaU2hSERERERE0ppCkYiIiIiIpDWFopiZ2eVm9pKZTTWz381svZktMLP3zexsM7Ny3LOamV1qZjlmtsLMlprZJ2b2l4r4GUREREREqrIacTdAuBHYDvgWGA+sBFoBRwJdgT+b2Z9CCHmluZmZVQdGAicBy4AxQK3oXs+Z2QEhhCsT/lOIiIiIiFRRCkXxOxOYHEJYWfigme0JjAVOBs4Dhpfyflfhgeg74MgQwrzofu2AT4ArzOyDEMJrCWq/iIiIiEiVpuFzMQshfFo0EEXHpwCPRLtHl+ZeUS/RDdHuxfmBKLrfj3ivFECf8rdYRERERCS1KBQltw3Rdm0prz8QH4r3awjh42LOvwys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K+3KwoiISNspKBIREemY+K5zL8a87gGc3YVlERGRdjDnXLrLICIi0i2Z2QDgEyA/WPUx8DlgccxurzvnDu3qsomISPLUUiQiItJ+M4kGRAB/cs69DSyMWTfFzA7o2mKJiEhbKCgSERFpv1lxy38M5nNa2U9EREJE3edERETawczGA2/GrPq3c25csG0vYCXRHx/XAuXOufquLaWIiCRDLUUiIiLtMytu+T+tQ8651cDzMdsGA8d1fpFERKQ9FBSJiIi0kZnlA+fErGoA/hS32x/jlmd1ZplERKT9FBSJiIi03YlA/5jlF5xzn8Tt8zBQG7N8kpn16/SSiYhImykoEhERabv4sYniEyvgnNsGPB6zqoDGrUsiIhISSrQgIiLSBmY2CFgF5AWrdgGDnHNVCfY9GXgsZtWbzrmJnV9KERFpC7UUiYiItM2XiAZEAE8kCogCTwKbY5YnmNnYTiuZiIi0i4IiERGRtpkVt9yk61yEc2438GArx4uISJqp+5yIiEiSzGwy8HrMqi3AYOdcXQvHTANeilm1HtjbObenc0opIiJtpZYiERGR5M2KW36opYAo8DJQGbM8EDghhWUSEZEOUlAkIiKSBDPrAZwdt7rZrnMRznfJiB/DaFaKiiUiIimgoEhERCQ5JwN9Y5Y/Bl5M8tj44OnzZtY/4Z4iItLlFBSJiIgkJ35sovtckg/mOufeBd6KWZUPzExVwUREpGMUFImIiLTCzPYCjo5b3WrXuVb2jw+yREQkTRQUiYiItO7LQG7M8iLn3OI2nuM+oCFm+RAzG9fhkomISIcpKBIREWndeXHLbW0lwjm3Gpgbt3pWewskIiKpo6BIRESkBWY2FRgTs8rhW33a449xyzPNLL+d5xIRkRRRUCQiItKyWXHLLzjnVrbzXI8ANTHL/YHPt/NcIiKSIgqKREREmmFmRcCZcavb3HUuwjm3DXg8brUSLoiIpFleugsgIiISYqcCfeLWbTWzozpwzuVxy8eb2UDn3PoOnFNERDrAkhxiQUREJOuY2TNARwKgZP23c+5nXXAdERFJQEGRiIhIAmY2FKika7qaL3bOHdwF1xERkQT0TJGIiEhi59F1/0+ONbOJXXQtERGJo5YiERERERHJamopEhERERGRrKagSEREREREspqCIhERERERyWoKikREREREJKspKBIRERERkaymoEhERERERLKagiIREREREclqCopERERERCSrKSgSEREREZGspqBIRERERESymoIiERERERHJagqKREREREQkqykoEhERERGRrKagSEREREREspqCIhERERERyWr/Hxy0g5I2CT44AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(12,6))\n", "plt.ylabel(r\"$\\frac{\\partial^3V}{\\partial x\\partial y^2}$\",**{'size':42,'rotation':0,'ha':'right'})\n", "plt.xlabel(r\"$\\Delta$\",**{'size':42})\n", "plt.xticks(**{'size':22}) \n", "plt.yticks(**{'size':22})\n", "#plt.ylim([2.9,5.5])\n", "plt.xlim([0,0.18])\n", "plt.plot(*zip(*resultsc2.items()),marker='o',color='blue')\n", "plt.plot(*zip(*[(s,ss[1]) for s,ss in results.items()]),marker='*',color='orange')\n", "plt.text(0.16,2.15,r\"$\\frac{\\partial^2F_y}{\\partial x\\partial y}$\",fontsize=35,color='orange')\n", "plt.text(0.1,2.55,r\"$\\frac{\\partial^3V}{\\partial x\\partial y^2}$\",fontsize=35,color='blue')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the two functions have the same intercept, but different values for the quadratic coefficient." ] } ], "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.17" } }, "nbformat": 4, "nbformat_minor": 2 }