{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# ces_01\n",
    "%reset -f\n",
    "\n",
    "from math import exp, pi, sin, cos, tan, atan, sqrt, floor, log10, nan, log   # math functions\n",
    "import numpy as np\n",
    "import scipy.linalg as la             # linear algebra functions\n",
    "from scipy.integrate import solve_ivp\n",
    "import matplotlib\n",
    "from matplotlib import pyplot as plt  # general plotting \n",
    "from matplotlib.colors import ListedColormap\n",
    "import time;\n",
    "\n",
    "# function to make a numpy N-by-1 column vector\n",
    "# c=eda_cvec(v1, v2, ...) from a list of several\n",
    "# array-like entities v1, v2, including a number\n",
    "# a list of numbers, a tuple of numbers, an N-by-0 np array\n",
    "# and a N-by-1 np array. The function\n",
    "# also insures that, if v is an np array, that\n",
    "# c is a copy, as contrasted to a view, of it\n",
    "# It promotes integers to floats, and integers\n",
    "# and floats to complex, by context.\n",
    "# This version concatenates many argments,\n",
    "# whereas c=eda_cvec1(v1) takes just one argiment.\n",
    "# I recommend always using eda_cvec(v1, v2, ...)\n",
    "def gda_cvec(*argv):\n",
    "    t = int;\n",
    "    Nt = 0;\n",
    "    for a in argv:\n",
    "        v = gda_cvec1(a);\n",
    "        N,M = np.shape(v);\n",
    "        Nt = Nt + N;\n",
    "        if( N==0 ):\n",
    "            continue; # skip vector of zero length\n",
    "        if (t==int) and isinstance(v[0,0],float):\n",
    "            t=float;\n",
    "        elif isinstance(v[0,0],complex):\n",
    "            t=complex;\n",
    "    w = np.zeros((Nt,1),dtype=t);\n",
    "    Nt = 0;\n",
    "    for a in argv:\n",
    "        v = gda_cvec1(a);\n",
    "        N,M = np.shape(v);\n",
    "        w[Nt:Nt+N,0:1] = v;  # patch 20230418 was #w[Nt:Nt+N,0] = v[0:N,0];\n",
    "        Nt = Nt + N;\n",
    "    return w;\n",
    "\n",
    "# function to make a numpy N-by-1 column vector\n",
    "# c=gda_cvec1(v) from entity v that is array-like,\n",
    "# including a number, a list of numbers, a tuple\n",
    "# of numbers, an N-by-0 np array and a N-by1 np array.\n",
    "# It promotes integers to floats, and integers\n",
    "# and floats to complex, by context. The function\n",
    "# also insures that, if v is an np array, that\n",
    "# c is a copy, as contrasted to a view, of it.\n",
    "# This version takes just one input argment.\n",
    "# whereas c=gda_cvec(v1,v2,...) concatenates\n",
    "# many argiments.\n",
    "def gda_cvec1(v):\n",
    "    if isinstance(v, int) or isinstance(v, np.int32):\n",
    "        w = np.zeros((1,1),dtype=int);\n",
    "        w[0,0] = v;\n",
    "        return w;\n",
    "    elif isinstance(v, float):\n",
    "        w = np.zeros((1,1),dtype=float);\n",
    "        w[0,0] = v;\n",
    "        return w;\n",
    "    elif isinstance(v, complex):\n",
    "        w = np.zeros((1,1),dtype=complex);\n",
    "        w[0,0] = v;\n",
    "        return w;\n",
    "    elif isinstance(v, np.ndarray):\n",
    "        s = np.shape(v);\n",
    "        if len(s) == 1:\n",
    "            return np.copy(np.reshape(v,(s[0],1)));\n",
    "        else:\n",
    "            [r,c]=s;\n",
    "            if( c==1 ):\n",
    "                return(np.copy(v));\n",
    "            elif(r==1):\n",
    "                return(np.copy(v.T));\n",
    "            else:\n",
    "                raise TypeError(\"gda_cvec: %d by %d ndarray not allowed\" % (r, c));\n",
    "    elif isinstance(v, list):\n",
    "        r = len(v);\n",
    "        t = int;\n",
    "        for vi in v:\n",
    "            if isinstance(vi,int) or isinstance(vi, np.int32): #patch v->vi 20230418\n",
    "                pass;\n",
    "            elif isinstance(vi,float):\n",
    "                t=float;\n",
    "            elif isinstance(vi,complex):\n",
    "                t=complex;\n",
    "                break;\n",
    "            else:\n",
    "                raise TypeError(\"gda_cvec: list contains unsupported type %s\" % type(vi));\n",
    "        w = np.zeros((r,1),dtype=t);\n",
    "        w[:,0] = np.array(v); # patch v -> np.array(v)\n",
    "        return w;\n",
    "    elif isinstance(v, tuple):\n",
    "        r = len(v);\n",
    "        t = int;\n",
    "        for vi in v:\n",
    "            if isinstance(vi,int) or isinstance(vi, np.int32): #patch v->vi 20230418\n",
    "                pass;\n",
    "            elif isinstance(vi,float):\n",
    "                t=float;\n",
    "            elif isinstance(vi,complex):\n",
    "                t=complex;\n",
    "                break;\n",
    "            else:\n",
    "                raise TypeError(\"gda_cvec: tuple contains unsupported type %s\" % type(vi));\n",
    "        w = np.zeros((r,1),dtype=t);\n",
    "        w[:,0] = np.array(list(v)); # patch v -> np.array(list(v));\n",
    "        return w;\n",
    "    else:\n",
    "        raise TypeError(\"gda_cvec: %s not supported\" % type(v));\n",
    "\n",
    "        \n",
    "# gda_draw function makes a \"pictorial matrix equation\"\n",
    "# arguments are vectors, matrices and strings\n",
    "# which are plotted in the order that the appear\n",
    "# except that strings starting with 'title ' are plotted\n",
    "# under the subseqeunt matrix or vector\n",
    "# always returns a status of 1\n",
    "def gda_draw(*argv):\n",
    "    DOCOLOR=True;\n",
    "    if( DOCOLOR ):\n",
    "        bwcmap = matplotlib.colormaps['jet'];\n",
    "    else:\n",
    "        bw = np.zeros((256,4));\n",
    "        v = 0.9*(256 - np.linspace( 0, 255, 256 ))/255;\n",
    "        bw[:,0] = v;\n",
    "        bw[:,1] = v;\n",
    "        bw[:,2] = v;\n",
    "        bw[:,3] = np.ones(256);\n",
    "        bwcmap = ListedColormap(bw);\n",
    "    # size of plot\n",
    "    W = 16;\n",
    "    H = 4;\n",
    "    fig1 = plt.figure(1);\n",
    "    # figsize width and height in inches\n",
    "    fig1.set_size_inches(W,H);\n",
    "    ax1 = plt.subplot(1,1,1);\n",
    "    plt.axis([0, W, -H/2, H/2]);\n",
    "    plt.axis('off');\n",
    "    LM = W/6;    # matrix width and heoght\n",
    "    LV = W/40;   # vector width\n",
    "    FS = 0.12;    # character width\n",
    "    TO = 0.4;    # title vertical offset\n",
    "    SP = 0.2;    # space between objects\n",
    "    LS = 0.2;    # leading space\n",
    "    p = LS; # starting x-position\n",
    "    istitle=0; # flags presence of a title\n",
    "    for a in argv:\n",
    "        if isinstance(a,np.ndarray):\n",
    "            sh = np.shape(a);\n",
    "            if len(sh) == 1:  # conversion to nx1 array\n",
    "                n = sh[0];\n",
    "                m = 1;\n",
    "                ap = a;\n",
    "                a = np.zeros((n,1));\n",
    "                a[:,0] = ap;\n",
    "            else:\n",
    "                n = sh[0];\n",
    "                m = sh[1];\n",
    "            if m==1:\n",
    "                pold=p;\n",
    "                left=p;\n",
    "                right=p+LV;\n",
    "                bottom=-LM/2;\n",
    "                top=LM/2;\n",
    "                plt.imshow( a, cmap=bwcmap, vmin=np.min(a), vmax=np.max(a), extent=(left,right,bottom,top) );\n",
    "                p = p+LV;\n",
    "                pm = (p+pold)/2;\n",
    "                if istitle:\n",
    "                    plt.text(pm,-(LM/2)-TO,titlestr,horizontalalignment='center');\n",
    "                    istitle=0;\n",
    "                p = p+SP;\n",
    "            else:\n",
    "                pold=p;\n",
    "                left=p;\n",
    "                right=p+LM;\n",
    "                bottom=-LM/2;\n",
    "                top=LM/2;\n",
    "                plt.imshow( a, cmap=bwcmap, vmin=np.min(a), vmax=np.max(a), extent=(left,right,bottom,top) );\n",
    "                p = p+LM;\n",
    "                pm = (p+pold)/2;\n",
    "                if istitle:\n",
    "                    plt.text(pm,-(LM/2)-TO,titlestr,horizontalalignment='center');\n",
    "                    istitle=0;\n",
    "                p = p+SP;\n",
    "        elif isinstance(a,str):\n",
    "            ns = len(a);\n",
    "            istitle=0;\n",
    "            if( ns>=6 ):\n",
    "                if 'title ' in a[0:6]:\n",
    "                    istitle=1;\n",
    "                    titlestr=a[6:];\n",
    "            if( istitle != 1):\n",
    "                plt.text(p,0,a);\n",
    "                p = p + ns*FS + SP;\n",
    "    plt.show();\n",
    "    return 1;\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 25880 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Initial conditions, C0\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 21776 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Source, S (assumed time-indpendent)\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 20872 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 0.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 21760 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 8.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 22292 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 16.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 22500 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 24.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 23024 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 32.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 23224 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 40.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 23816 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 48.0000\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 23832 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: C at time t = 56.0000\n",
      " \n",
      "done\n"
     ]
    }
   ],
   "source": [
    "# Makes figures for lecture\n",
    "# not part of group assignments\n",
    "\n",
    "kappa = 1.0; # diffusivity\n",
    "PLOTSTEP = 8; # plot every PLOTSTEP time slice\n",
    "\n",
    "# standard set-up of position x-axis \n",
    "Nx=64;\n",
    "Dx=1.0;\n",
    "x=gda_cvec(Dx*np.linspace(0,Nx-1,Nx));\n",
    "xmin = 0.0;\n",
    "xmax = Dx*(Nx-1);\n",
    "ixmid = int(floor(Nx/2));\n",
    "xmid=x[ixmid,0];\n",
    "\n",
    "# kx-axis\n",
    "Nkx=int(Nx/2+1);\n",
    "kxmax=2.0*pi/(2.0*Dx);\n",
    "Dkx=kxmax/(Nx/2);\n",
    "kxp = gda_cvec( Dkx*np.linspace(0,Nkx-1,Nkx));\n",
    "kxn = -np.flipud(kxp[1:Nkx-1,0:1]);\n",
    "kx = gda_cvec(kxp,kxn);\n",
    "\n",
    "# standard set-up of position y and wavenumber ky-axis\n",
    "Ny=64;\n",
    "Dy=1.0;\n",
    "y=gda_cvec(Dy*np.linspace(0,Ny-1,Ny));\n",
    "ymin = 0.0;\n",
    "ymax = Dy*(Ny-1);\n",
    "iymid = int(floor(Ny/2));\n",
    "ymid=y[iymid,0]\n",
    "\n",
    "# ky-axis\n",
    "Nky=int(Ny/2+1);\n",
    "kymax=2.0*pi/(2.0*Dy);\n",
    "Dky=kymax/(Ny/2);\n",
    "kyp = gda_cvec( Dky*np.linspace(0,Nky-1,Nky));\n",
    "kyn = -np.flipud(kyp[1:Nky-1,0:1]);\n",
    "ky = gda_cvec(kyp,kyn);\n",
    "\n",
    "# time axis\n",
    "Nt = 64;\n",
    "Dt = 1.0;   \n",
    "t = Dt*np.linspace(0.0, Nt-1, Ny);  # note is an (Nt,) array\n",
    "t0 = t[0];\n",
    "tmax = t[Nt-1];\n",
    "\n",
    "# order of variables in arrays: x, y, t\n",
    "C = np.zeros((Nx,Ny,Nt));\n",
    "Ct = np.zeros((Nx,Ny,Nt),dtype=complex);\n",
    "\n",
    "# initial condition\n",
    "C0 = np.zeros((Nx,Ny));\n",
    "Csx = 5.0;\n",
    "Csy = 10.0;\n",
    "# CA = 0.0;\n",
    "CA = 1.0;\n",
    "for ix in range(Nx):\n",
    "    for iy in range(Ny):\n",
    "        r2 = ((x[ix,0]-xmid)/Csx)**2 + ((y[iy,0]-ymid)/Csy)**2;\n",
    "        C0[ix,iy] = CA*exp(-0.5*r2);\n",
    "\n",
    "fig2 = plt.figure(figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "if( 0 ): # check prientation of plot\n",
    "    C0=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; C0[ix,iy]=1.0\n",
    "    ix=38; iy=2; C0[ix,iy]=2.0;\n",
    "    ix=2; iy=38; C0[ix,iy]=3.0; # to check orientation\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(C0));\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "plt.imshow(np.flipud(C0.T), cmap=mycmap, vmin=-dmax, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.show();\n",
    "print('Caption: Initial conditions, C0');\n",
    "print(\" \");\n",
    "\n",
    "# source (assumed time-independent)\n",
    "S = np.zeros((Nx,Ny));\n",
    "Ssx = 10.0;\n",
    "Ssy = 5.0;\n",
    "SA = 0.05;\n",
    "# SA = 0.0;\n",
    "for ix in range(Nx):\n",
    "    for iy in range(Ny):\n",
    "        r2 = ((x[ix,0]-xmid)/Ssx)**2 + ((y[iy,0]-ymid)/Ssy)**2;\n",
    "        S[ix,iy] = SA*exp(-0.5*r2);\n",
    "\n",
    "fig1 = plt.figure(figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "if( 0 ): # check prientation of plot\n",
    "    C0=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; S[ix,iy]=1.0\n",
    "    ix=38; iy=2; S[ix,iy]=2.0;\n",
    "    ix=2; iy=38; S[ix,iy]=3.0; # to check orientation\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(S));\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "plt.imshow(np.flipud(S.T), cmap=mycmap, vmin=-dmax, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.show();\n",
    "print('Caption: Source, S (assumed time-indpendent)');\n",
    "print(\" \");\n",
    "\n",
    "# Fourier Transforms\n",
    "C0t = np.fft.fft2(C0);\n",
    "St = np.fft.fft2(S);\n",
    "\n",
    "# function for differential equation du/dt = f(u,t)\n",
    "# here u=C(kx,ky,t) and f=-k(kx**2+ky**2)+S\n",
    "def myfun( t, u ):\n",
    "    f = np.zeros((1,),dtype=complex);\n",
    "    f[0] =  -b * u[0] + St[ikx,iky];\n",
    "    return f;\n",
    "\n",
    "for ikx in range(Nx):\n",
    "    kx0 = kx[ikx,0];\n",
    "    for iky in range(Ny):\n",
    "        ky0 = ky[iky,0];\n",
    "        b = kappa*(kx0**2 + ky0**2);\n",
    "        u0 = np.zeros((1,),dtype=complex);\n",
    "        u0[0] = C0t[ikx,iky];\n",
    "        sol=solve_ivp(myfun, [t0, tmax], u0, method = 'RK45', t_eval=t);\n",
    "        Et = np.sum( np.power((t-sol.t)/tmax,2) );\n",
    "        Ct[ikx,iky,0:Nt]=sol.y[0];\n",
    "        \n",
    "for i in range(Nt):\n",
    "    C[0:Nx,0:Ny,i] = np.real(np.fft.ifft2( Ct[0:Nx,0:Ny,i] ));\n",
    "    \n",
    "dmax = np.max(np.abs(C));    \n",
    "for i in range(0,Nt,PLOTSTEP):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    figi = plt.figure(figsize=(12,5));   # smallish figure\n",
    "    ax1 = plt.subplot(1, 1, 1);\n",
    "    if( 0 ): # check prientation of plot\n",
    "        C0=np.zeros((Nx,Ny));\n",
    "        ix=2; iy=2; Ci[ix,iy]=1.0\n",
    "        ix=38; iy=2; Ci[ix,iy]=2.0;\n",
    "        ix=2; iy=38; Ci[ix,iy]=3.0; # to check orientation\n",
    "    plt.axis([0,xmax,0,ymax]);\n",
    "    mycmap=matplotlib.colormaps['jet'];\n",
    "    left=0; right=xmax;\n",
    "    top=ymax; bottom=0;\n",
    "    plt.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=-dmax, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "    plt.colorbar();\n",
    "    plt.xlabel(\"x\");\n",
    "    plt.ylabel(\"y\");\n",
    "    plt.show();\n",
    "    print(\"Caption: C at time t = %.4f\" % (t[i]) );\n",
    "    print(\" \");\n",
    "    \n",
    "print('done');\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video width=\"640\" height=\"480\" controls autoplay loop>\n",
       "  <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAIGZ0eXBNNFYgAAACAE00ViBpc29taXNvMmF2YzEAAAAIZnJlZQAAeSNtZGF0AAACoQYF//+d\n",
       "3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSAtIEguMjY0L01QRUctNCBBVkMgY29kZWMg\n",
       "LSBDb3B5bGVmdCAyMDAzLTIwMjAgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwg\n",
       "LSBvcHRpb25zOiBjYWJhYz0xIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDM6MHgxMTMg\n",
       "bWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5n\n",
       "ZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTEgY3FtPTAgZGVhZHpvbmU9MjEsMTEg\n",
       "ZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz0xNSBsb29rYWhlYWRfdGhy\n",
       "ZWFkcz0yIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVy\n",
       "YXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9h\n",
       "ZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBr\n",
       "ZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xv\n",
       "b2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFw\n",
       "bWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAABjbZYiEACv//vZzfApr\n",
       "RzOVLgV292al3928h7d9iapTwAAAAwAAAwAAHLPQtdMUxLfKQAAAE7AEouTg8lHiACyExK3NYKAo\n",
       "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\n",
       "ZGF0YQAAAAEAAAAATGF2ZjU4LjQ1LjEwMA==\n",
       "\">\n",
       "  Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "[encoded data, 27236 characters]",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# animation of result\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from matplotlib import animation, rc\n",
    "from IPython.display import HTML\n",
    "\n",
    "fig, ax = plt.subplots();\n",
    "\n",
    "ax.set_xlim(( xmin, xmax));\n",
    "ax.set_ylim(( ymin, ymax));\n",
    "\n",
    "i=0;\n",
    "Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "dmin = 0.0;\n",
    "dmax = np.max(C);\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "im = ax.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=dmin, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.xlabel('y');\n",
    "plt.ylabel('x');\n",
    "plt.colorbar(mappable=im);\n",
    "\n",
    "def init():\n",
    "    im.set_data([[]]);\n",
    "    return (im,)\n",
    "\n",
    "def animate(i):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    im.set_data(Ci);\n",
    "    return (im,)\n",
    "\n",
    "anim = animation.FuncAnimation(fig, animate, init_func=init,\n",
    "                               frames=int(Nt), interval=int(20), \n",
    "                               blit=True)\n",
    "HTML(anim.to_html5_video())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "animation written\n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 27236 characters]",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# write animation as file\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from matplotlib import animation, rc\n",
    "from IPython.display import HTML\n",
    "\n",
    "fig, ax = plt.subplots();\n",
    "\n",
    "ax.set_xlim(( xmin, xmax));\n",
    "ax.set_ylim(( ymin, ymax));\n",
    "\n",
    "i=0;\n",
    "Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "dmin = 0.0;\n",
    "dmax = np.max(C);\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "im = ax.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=dmin, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.xlabel('y');\n",
    "plt.ylabel('x');\n",
    "plt.colorbar(mappable=im);\n",
    "\n",
    "def init():\n",
    "    im.set_data([[]]);\n",
    "    return (im,)\n",
    "\n",
    "def animate(i):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    im.set_data(Ci);\n",
    "    return (im,)\n",
    "\n",
    "anim = animation.FuncAnimation(fig, animate, init_func=init,\n",
    "                               frames=int(Nt), interval=int(20), \n",
    "                               blit=True)\n",
    "HTML(anim.to_html5_video())\n",
    "\n",
    "writer = animation.PillowWriter(fps=15);\n",
    "anim.save('Lec17_chemical_diffusion.gif', writer=writer);\n",
    "print(\"animation written\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 40156 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved file: Lec17_d.txt\n"
     ]
    }
   ],
   "source": [
    "# Part 1\n",
    "# make uncorrelated Normally-distrumeted random noise\n",
    "# and save in file\n",
    "\n",
    "dfilename='Lec17_d.txt';\n",
    "\n",
    "# standard set-up of position x-axis \n",
    "Nx=64;\n",
    "Dx=1.0;\n",
    "x=gda_cvec(Dx*np.linspace(0,Nx-1,Nx));\n",
    "xmin = 0.0;\n",
    "xmax = Dx*(Nx-1);\n",
    "ixmid = int(floor(Nx/2));\n",
    "xmid=x[ixmid,0];\n",
    "\n",
    "# standard set-up of position y and wavenumber ky-axis\n",
    "Ny=64;\n",
    "Dy=1.0;\n",
    "y=gda_cvec(Dy*np.linspace(0,Ny-1,Ny));\n",
    "ymin=0.0;\n",
    "ymax = Dy*(Ny-1);\n",
    "iymid = int(floor(Ny/2));\n",
    "ymid=y[iymid,0]\n",
    "\n",
    "d = np.random.normal(loc=0.0,scale=1.0,size=(Nx,Ny));     # random noise\n",
    "\n",
    "if( 0 ): # check prientation of plot\n",
    "    d=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; d[ix,iy]=1.0\n",
    "    ix=Nx-5; iy=2; d[ix,iy]=2.0;\n",
    "    ix=2; iy=Ny-5; d[ix,iy]=3.0; # to check orientation\n",
    "\n",
    "fig1 = plt.figure(1,figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "plt.axis([xmin,xmax,xmin,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(d));\n",
    "left=xmin; right=xmax;\n",
    "top=ymax; bottom=ymin;\n",
    "plt.imshow(np.flipud(d.T), cmap=mycmap, vmin=0, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.title(\"2D field of uncorrelated noise\");\n",
    "plt.show();\n",
    "\n",
    "# save matrix to file of tab-separated values\n",
    "np.savetxt(dfilename,d,delimiter=\"\\t\");\n",
    "print(\"saved file: %s\" % (dfilename) );"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 7744 characters]",
      "text/plain": [
       "<Figure size 1600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Exponential autocovariance, (left) target, (right) actual.\n",
      " \n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 52312 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved file: Lec17_C0.txt\n"
     ]
    }
   ],
   "source": [
    "# Part2: Make C0.txt from d.txt\n",
    "dfilename='Lec17_d.txt'\n",
    "C0filename='Lec17_C0.txt';\n",
    "A = 1.0;  # 0 < C0 < A\n",
    "\n",
    "# TYPE=1 Gaussian\n",
    "# TYPE=2 Exponential\n",
    "# TYPE=3 Gaussian, Oscillatory\n",
    "# TYPE=4 Exponential, Oscillatory\n",
    "TYPE = 2;\n",
    "\n",
    "# EXACT=1: exactly satisfy c(x,y) on only approximately EXACT=0\n",
    "EXACT = 1;\n",
    "\n",
    "# field should have variance gamma2\n",
    "sigmad=1.0;\n",
    "sigmad2=sigmad**2;\n",
    " \n",
    "# field should have autocorrelation with scale factor, s\n",
    "sx = 0.1;   # scale factor\n",
    "sy = 0.1;   # scale factor\n",
    "sx2 = sx**2;\n",
    "sy2 = sy**2;\n",
    "\n",
    "# autocorrelation oscilation frequency (only some types)\n",
    "# Lx = wavelength in x, Ly = wavelength in y;\n",
    "Lx = 0.5;\n",
    "Ly = 0.5;\n",
    "kx0 = 2.0*pi/Lx;\n",
    "ky0 = 2.0*pi/Ly;\n",
    " \n",
    "# standard set-up of position x-axis \n",
    "Nx=64;\n",
    "xmin = -1.0;\n",
    "xmax = 1.0;\n",
    "x=gda_cvec(np.linspace(xmin,xmax,Nx));\n",
    "Dx = x[1,0]-x[0,0];\n",
    "ixmid = int(floor(Nx/2));\n",
    "xmid=x[ixmid,0];\n",
    "\n",
    "# kx-axis\n",
    "Nkx=int(Nx/2+1);\n",
    "kxmax=2.0*pi/(2.0*Dx);\n",
    "Dkx=kxmax/(Nx/2);\n",
    "kxp = gda_cvec( Dkx*np.linspace(0,Nkx-1,Nkx));\n",
    "kxn = -np.flipud(kxp[1:Nkx-1,0:1]);\n",
    "kx = gda_cvec(kxp,kxn);\n",
    "\n",
    "# standard set-up of position y and wavenumber ky-axis\n",
    "Ny=64;\n",
    "ymin = -1.0;\n",
    "ymax = 1.0;\n",
    "y=gda_cvec(np.linspace(ymin,ymax,Ny));\n",
    "Dy = y[1,0]-y[0,0]\n",
    "iymid = int(floor(Ny/2));\n",
    "ymid=y[iymid,0]\n",
    "\n",
    "# ky-axis\n",
    "Nky=int(Ny/2+1);\n",
    "kymax=2.0*pi/(2.0*Dy);\n",
    "Dky=kymax/(Ny/2);\n",
    "kyp = gda_cvec( Dky*np.linspace(0,Nky-1,Nky));\n",
    "kyn = -np.flipud(kyp[1:Nky-1,0:1]);\n",
    "ky = gda_cvec(kyp,kyn);\n",
    "\n",
    "c = np.zeros((Nx,Ny));\n",
    "if( TYPE==1 ):\n",
    "    covname = 'Gaussian';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r2 = (xi/sx)**2 + (yi/sy)**2;\n",
    "            c[ix,iy] = exp(-0.5*r2);\n",
    "elif( TYPE==2 ):\n",
    "    covname = 'Exponential';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r = abs(xi/sx) + abs(yi/sy);\n",
    "            c[ix,iy] = exp(-r);\n",
    "elif( TYPE==3 ):\n",
    "    covname = 'Gaussian-Oscillatory';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r2 = (xi/sx)**2 + (yi/sy)**2;\n",
    "            c[ix,iy] = exp(-0.5*r2)*cos(kx0*xi)*cos(ky0*yi);\n",
    "elif( TYPE==4 ):\n",
    "    covname = 'Exponential-Oscillatory';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r = abs(xi/sx) + abs(yi/sy);\n",
    "            c[ix,iy] = exp(-r)*cos(kx0*xi)*cos(ky0*yi);\n",
    "        \n",
    "# make m(x,y) with desired autocovariance, c using fact that\n",
    "# amplitude spectrum of autocorrelation is power spectrum of data\n",
    "\n",
    "casd = np.sqrt(np.abs(np.fft.fft2(c)));  # target amplitude spectral denisty\n",
    "d = np.genfromtxt(dfilename, delimiter=\"\\t\");\n",
    "dt = np.fft.fft2(d);\n",
    "dasd = np.abs(dt);\n",
    "\n",
    "if( EXACT ):\n",
    "    dasd = np.abs(dt);\n",
    "    dt = np.multiply(casd, np.divide(dt,dasd));\n",
    "else:\n",
    "    dt = np.multiply(casd, dt);\n",
    "    \n",
    "d = np.real(np.fft.ifft2(dt)); # shape spectrum on n into d\n",
    "sigmad_est = np.std(d);    # sqrt variance\n",
    "d = (sigmad/sigmad_est)*d; # normalize to correct variance\n",
    " \n",
    "cest = np.fft.ifft2(np.power(np.abs(np.fft.fft2(d)),2)); # autocorrelation of m\n",
    "cest = np.real(cest);\n",
    "\n",
    "# put into more reasonable order, with origin in the center\n",
    "cest2=np.zeros((Nx,Ny));\n",
    "cest2[Nx-Nkx:Nx,Ny-Nky:Ny] = cest[0:Nkx,0:Nky];\n",
    "cest2[0:Nkx-2,Ny-Nky:Ny] = cest[Nkx:Nx,0:Nky];\n",
    "cest2[0:Nkx-2,0:Nky-2] = cest[Nkx:Nx,Nky:Ny];\n",
    "cest2[Nkx-2:Nx,0:Nky-2] = cest[0:Nkx,Nky+0:Ny];\n",
    " \n",
    "gda_draw(\"title true\",c.T,\"title est\",cest2.T,);\n",
    "print(\"Caption: %s autocovariance, (left) target, (right) actual.\" % (covname) );\n",
    "print(' ');\n",
    "print(' ');\n",
    "\n",
    "# rescale to go from zero to A\n",
    "dmin=np.min(d);\n",
    "dmax=np.max(d);\n",
    "Dd = dmax-dmin;\n",
    "d = A*(d - dmin)/Dd;\n",
    "    \n",
    "if( 0 ): # check prientation of plot\n",
    "    d=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; d[ix,iy]=1.0\n",
    "    ix=Nx-5; iy=2; d[ix,iy]=2.0;\n",
    "    ix=2; iy=Ny-5; d[ix,iy]=3.0; # to check orientation\n",
    "\n",
    "fig1 = plt.figure(1,figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "plt.axis([xmin,xmax,xmin,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(d));\n",
    "left=xmin; right=xmax;\n",
    "top=ymax; bottom=ymin;\n",
    "plt.imshow(np.flipud(d.T), cmap=mycmap, vmin=0, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.title(\"2D field with %s autocovariance\" % (covname));\n",
    "plt.show();\n",
    "\n",
    "# save matrix to file of tab-separated values\n",
    "np.savetxt(C0filename,d,delimiter=\"\\t\");\n",
    "print(\"saved file: %s\" % (C0filename) );\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 7328 characters]",
      "text/plain": [
       "<Figure size 1600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Gaussian autocovariance, (left) target, (right) actual.\n",
      " \n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 53732 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved file: Lec17_S.txt\n"
     ]
    }
   ],
   "source": [
    "# Part 3: Make S.txt from d.txt\n",
    "\n",
    "dfilename='Lec17_d.txt'\n",
    "Sfilename='Lec17_S.txt';\n",
    "A = 0.01;  # -A < S < A  (in 2023 version was 0.05)\n",
    "\n",
    "# TYPE=1 Gaussian\n",
    "# TYPE=2 Exponential\n",
    "# TYPE=3 Gaussian, Oscillatory\n",
    "# TYPE=4 Exponential, Oscillatory\n",
    "TYPE = 1;\n",
    "\n",
    "# EXACT=1: exactly satisfy c(x,y) on only approximately EXACT=0\n",
    "EXACT = 1;\n",
    "\n",
    "# field should have variance gamma2\n",
    "sigmad=1.0;\n",
    "sigmad2=sigmad**2;\n",
    " \n",
    "# field should have autocorrelation with scale factor, s\n",
    "sx = 0.1;   # scale factor\n",
    "sy = 0.1;   # scale factor\n",
    "sx2 = sx**2;\n",
    "sy2 = sy**2;\n",
    "\n",
    "# autocorrelation oscilation frequency (only some types)\n",
    "# Lx = wavelength in x, Ly = wavelength in y;\n",
    "Lx = 0.5;\n",
    "Ly = 0.5;\n",
    "kx0 = 2.0*pi/Lx;\n",
    "ky0 = 2.0*pi/Ly;\n",
    " \n",
    "# standard set-up of position x-axis \n",
    "Nx=64;\n",
    "xmin = -1.0;\n",
    "xmax = 1.0;\n",
    "x=gda_cvec(np.linspace(xmin,xmax,Nx));\n",
    "Dx = x[1,0]-x[0,0];\n",
    "ixmid = int(floor(Nx/2));\n",
    "xmid=x[ixmid,0];\n",
    "\n",
    "# kx-axis\n",
    "Nkx=int(Nx/2+1);\n",
    "kxmax=2.0*pi/(2.0*Dx);\n",
    "Dkx=kxmax/(Nx/2);\n",
    "kxp = gda_cvec( Dkx*np.linspace(0,Nkx-1,Nkx));\n",
    "kxn = -np.flipud(kxp[1:Nkx-1,0:1]);\n",
    "kx = gda_cvec(kxp,kxn);\n",
    "\n",
    "# standard set-up of position y and wavenumber ky-axis\n",
    "Ny=64;\n",
    "ymin = -1.0;\n",
    "ymax = 1.0;\n",
    "y=gda_cvec(np.linspace(ymin,ymax,Ny));\n",
    "Dy = y[1,0]-y[0,0]\n",
    "iymid = int(floor(Ny/2));\n",
    "ymid=y[iymid,0]\n",
    "\n",
    "# ky-axis\n",
    "Nky=int(Ny/2+1);\n",
    "kymax=2.0*pi/(2.0*Dy);\n",
    "Dky=kymax/(Ny/2);\n",
    "kyp = gda_cvec( Dky*np.linspace(0,Nky-1,Nky));\n",
    "kyn = -np.flipud(kyp[1:Nky-1,0:1]);\n",
    "ky = gda_cvec(kyp,kyn);\n",
    "\n",
    "c = np.zeros((Nx,Ny));\n",
    "if( TYPE==1 ):\n",
    "    covname = 'Gaussian';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r2 = (xi/sx)**2 + (yi/sy)**2;\n",
    "            c[ix,iy] = exp(-0.5*r2);\n",
    "elif( TYPE==2 ):\n",
    "    covname = 'Exponential';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r = abs(xi/sx) + abs(yi/sy);\n",
    "            c[ix,iy] = exp(-r);\n",
    "elif( TYPE==3 ):\n",
    "    covname = 'Gaussian-Oscillatory';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r2 = (xi/sx)**2 + (yi/sy)**2;\n",
    "            c[ix,iy] = exp(-0.5*r2)*cos(kx0*xi)*cos(ky0*yi);\n",
    "elif( TYPE==4 ):\n",
    "    covname = 'Exponential-Oscillatory';\n",
    "    for ix in range(Nx):\n",
    "        xi = x[ix,0];\n",
    "        for iy in range(Ny):\n",
    "            yi = y[iy,0];\n",
    "            r = abs(xi/sx) + abs(yi/sy);\n",
    "            c[ix,iy] = exp(-r)*cos(kx0*xi)*cos(ky0*yi);\n",
    "        \n",
    "# make m(x,y) with desired autocovariance, c using fact that\n",
    "# amplitude spectrum of autocorrelation is power spectrum of data\n",
    "\n",
    "casd = np.sqrt(np.abs(np.fft.fft2(c)));  # target amplitude spectral denisty\n",
    "d = np.genfromtxt(dfilename, delimiter=\"\\t\");\n",
    "dt = np.fft.fft2(d);\n",
    "dasd = np.abs(dt);\n",
    "\n",
    "if( EXACT ):\n",
    "    dasd = np.abs(dt);\n",
    "    dt = np.multiply(casd, np.divide(dt,dasd));\n",
    "else:\n",
    "    dt = np.multiply(casd, dt);\n",
    "    \n",
    "d = np.real(np.fft.ifft2(dt)); # shape spectrum on n into d\n",
    "sigmad_est = np.std(d);    # sqrt variance\n",
    "d = (sigmad/sigmad_est)*d; # normalize to correct variance\n",
    " \n",
    "cest = np.fft.ifft2(np.power(np.abs(np.fft.fft2(d)),2)); # autocorrelation of m\n",
    "cest = np.real(cest);\n",
    "\n",
    "# put into more reasonable order, with origin in the center\n",
    "cest2=np.zeros((Nx,Ny));\n",
    "cest2[Nx-Nkx:Nx,Ny-Nky:Ny] = cest[0:Nkx,0:Nky];\n",
    "cest2[0:Nkx-2,Ny-Nky:Ny] = cest[Nkx:Nx,0:Nky];\n",
    "cest2[0:Nkx-2,0:Nky-2] = cest[Nkx:Nx,Nky:Ny];\n",
    "cest2[Nkx-2:Nx,0:Nky-2] = cest[0:Nkx,Nky+0:Ny];\n",
    " \n",
    "gda_draw(\"title true\",c.T,\"title est\",cest2.T,);\n",
    "print(\"Caption: %s autocovariance, (left) target, (right) actual.\" % (covname) );\n",
    "print(' ');\n",
    "print(' ');\n",
    "\n",
    "# rescale to go from -A to A\n",
    "d = d - np.mean(d);\n",
    "dmax=np.max(np.abs(d));\n",
    "d = A*d/dmax;\n",
    "dmax = A;\n",
    "dmin = -A;\n",
    "    \n",
    "if( 0 ): # check orientation of plot\n",
    "    d=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; d[ix,iy]=1.0\n",
    "    ix=Nx-5; iy=2; d[ix,iy]=2.0;\n",
    "    ix=2; iy=Ny-5; d[ix,iy]=3.0; # to check orientation\n",
    "\n",
    "fig1 = plt.figure(1,figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "plt.axis([xmin,xmax,xmin,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "left=xmin; right=xmax;\n",
    "top=ymax; bottom=ymin;\n",
    "plt.imshow(np.flipud(d.T), cmap=mycmap, vmin=dmin, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.title(\"2D field with %s autocovariance\" % (covname));\n",
    "plt.show();\n",
    "\n",
    "# save matrix to file of tab-separated values\n",
    "np.savetxt(Sfilename,d,delimiter=\"\\t\");\n",
    "print(\"saved file: %s\" % (Sfilename) );"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "[encoded data, 38972 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Initial conditions, C0\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 44584 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Caption: Source, S (assumed time-independent)\n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 41560 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 34740 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 33336 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 32452 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 32200 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31928 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31696 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31588 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31724 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31652 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31456 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31516 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31500 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31516 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31556 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31416 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31468 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31388 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31540 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31524 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31264 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31344 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31320 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31304 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31500 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31428 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31512 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31448 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31592 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31536 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31384 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "[encoded data, 31480 characters]",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done\n"
     ]
    }
   ],
   "source": [
    "# PART 4: Solve equation to obtain C(t)\n",
    "\n",
    "C0filename = 'Lec17_C0.txt';\n",
    "Sfilename = 'Lec17_S.txt';\n",
    "\n",
    "kappa = 1.0; # diffusivity\n",
    "PLOTSTEP = 2; # plot every PLOTSTEP time slice\n",
    "\n",
    "# standard set-up of position x-axis \n",
    "Nx=64;\n",
    "Dx=1.0;\n",
    "x=gda_cvec(Dx*np.linspace(0,Nx-1,Nx));\n",
    "xmin = 0.0;\n",
    "xmax = Dx*(Nx-1);\n",
    "ixmid = int(floor(Nx/2));\n",
    "xmid=x[ixmid,0];\n",
    "\n",
    "# kx-axis\n",
    "Nkx=int(Nx/2+1);\n",
    "kxmax=2.0*pi/(2.0*Dx);\n",
    "Dkx=kxmax/(Nx/2);\n",
    "kxp = gda_cvec( Dkx*np.linspace(0,Nkx-1,Nkx));\n",
    "kxn = -np.flipud(kxp[1:Nkx-1,0:1]);\n",
    "kx = gda_cvec(kxp,kxn);\n",
    "\n",
    "# standard set-up of position y and wavenumber ky-axis\n",
    "Ny=64;\n",
    "Dy=1.0;\n",
    "y=gda_cvec(Dy*np.linspace(0,Ny-1,Ny));\n",
    "ymin=0.0;\n",
    "ymax = Dy*(Ny-1);\n",
    "iymid = int(floor(Ny/2));\n",
    "ymid=y[iymid,0]\n",
    "\n",
    "# ky-axis\n",
    "Nky=int(Ny/2+1);\n",
    "kymax=2.0*pi/(2.0*Dy);\n",
    "Dky=kymax/(Ny/2);\n",
    "kyp = gda_cvec( Dky*np.linspace(0,Nky-1,Nky));\n",
    "kyn = -np.flipud(kyp[1:Nky-1,0:1]);\n",
    "ky = gda_cvec(kyp,kyn);\n",
    "\n",
    "# time axis\n",
    "Nt = 64;\n",
    "Dt = 1.0;   \n",
    "t = Dt*np.linspace(0.0, Nt-1, Ny);  # note is an (Nt,) array\n",
    "t0 = t[0];\n",
    "tmax = t[Nt-1];\n",
    "\n",
    "# order of variables in arrays: x, y, t\n",
    "C = np.zeros((Nx,Ny,Nt));\n",
    "Ct = np.zeros((Nx,Ny,Nt),dtype=complex);\n",
    "\n",
    "# initial condition\n",
    "# read into C0\n",
    "C0 = np.genfromtxt(C0filename, delimiter=\"\\t\");\n",
    "\n",
    "fig1 = plt.figure(figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "if( 0 ): # check prientation of plot\n",
    "    C0=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; C0[ix,iy]=1.0\n",
    "    ix=38; iy=2; C0[ix,iy]=2.0;\n",
    "    ix=2; iy=38; C0[ix,iy]=3.0; # to check orientation\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(C0));\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "plt.imshow(np.flipud(C0.T), cmap=mycmap, vmin=0.0, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.show();\n",
    "print('Caption: Initial conditions, C0');\n",
    "print(\" \");\n",
    "\n",
    "# source (assumed time-independent)\n",
    "# read into S\n",
    "S = np.genfromtxt(Sfilename, delimiter=\"\\t\");\n",
    "\n",
    "fig2 = plt.figure(figsize=(12,5));   # smallish figure\n",
    "ax1 = plt.subplot(1, 1, 1);\n",
    "if( 0 ): # check prientation of plot\n",
    "    C0=np.zeros((Nx,Ny));\n",
    "    ix=2; iy=2; S[ix,iy]=1.0\n",
    "    ix=38; iy=2; S[ix,iy]=2.0;\n",
    "    ix=2; iy=38; S[ix,iy]=3.0; # to check orientation\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "dmax = np.max(np.abs(S));\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "plt.imshow(np.flipud(S.T), cmap=mycmap, vmin=-dmax, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.colorbar();\n",
    "plt.xlabel(\"x\");\n",
    "plt.ylabel(\"y\");\n",
    "plt.show();\n",
    "print('Caption: Source, S (assumed time-independent)');\n",
    "print(\" \");\n",
    "\n",
    "# Fourier Transforms\n",
    "C0t = np.fft.fft2(C0);\n",
    "St = np.fft.fft2(S);\n",
    "\n",
    "# function for differential equation du/dt = f(u,t)\n",
    "# here u=C(kx,ky,t) and f=-k(kx**2+ky**2)+S\n",
    "def myfun( t, u ):\n",
    "    f = np.zeros((1,),dtype=complex);\n",
    "    f[0] =  -b * u[0] + St[ikx,iky];\n",
    "    return f;\n",
    "\n",
    "for ikx in range(Nx):\n",
    "    kx0 = kx[ikx,0];\n",
    "    for iky in range(Ny):\n",
    "        ky0 = ky[iky,0];\n",
    "        b = kappa*(kx0**2 + ky0**2);\n",
    "        u0 = np.zeros((1,),dtype=complex);\n",
    "        u0[0] = C0t[ikx,iky];\n",
    "        sol=solve_ivp(myfun, [t0, tmax], u0, method = 'RK45', t_eval=t);\n",
    "        Et = np.sum( np.power((t-sol.t)/tmax,2) );\n",
    "        Ct[ikx,iky,0:Nt]=sol.y[0];\n",
    "        \n",
    "for i in range(Nt):\n",
    "    C[0:Nx,0:Ny,i] = np.real(np.fft.ifft2( Ct[0:Nx,0:Ny,i] ));\n",
    "    \n",
    "dmax = np.max(np.abs(C));    \n",
    "for i in range(0,Nt,PLOTSTEP):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    figi = plt.figure(figsize=(12,5));   # smallish figure\n",
    "    ax1 = plt.subplot(1, 1, 1);\n",
    "    if( 0 ): # check prientation of plot\n",
    "        C0=np.zeros((Nx,Ny));\n",
    "        ix=2; iy=2; Ci[ix,iy]=1.0\n",
    "        ix=38; iy=2; Ci[ix,iy]=2.0;\n",
    "        ix=2; iy=38; Ci[ix,iy]=3.0; # to check orientation\n",
    "    plt.axis([0,xmax,0,ymax]);\n",
    "    mycmap=matplotlib.colormaps['jet'];\n",
    "    left=0; right=xmax;\n",
    "    top=ymax; bottom=0;\n",
    "    plt.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=-dmax, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "    plt.colorbar();\n",
    "    plt.xlabel(\"x\");\n",
    "    plt.ylabel(\"y\");\n",
    "    plt.title(\"C at time t = %.4f\" % (t[i]) );\n",
    "    plt.show();\n",
    "\n",
    "print('done');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video width=\"640\" height=\"480\" controls autoplay loop>\n",
       "  <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAIGZ0eXBNNFYgAAACAE00ViBpc29taXNvMmF2YzEAAAAIZnJlZQAA0CBtZGF0AAACoQYF//+d\n",
       "3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSAtIEguMjY0L01QRUctNCBBVkMgY29kZWMg\n",
       "LSBDb3B5bGVmdCAyMDAzLTIwMjAgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwg\n",
       "LSBvcHRpb25zOiBjYWJhYz0xIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDM6MHgxMTMg\n",
       "bWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5n\n",
       "ZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTEgY3FtPTAgZGVhZHpvbmU9MjEsMTEg\n",
       "ZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz0xNSBsb29rYWhlYWRfdGhy\n",
       "ZWFkcz0yIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVy\n",
       "YXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9h\n",
       "ZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBr\n",
       "ZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xv\n",
       "b2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFw\n",
       "bWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAEjvZYiEACf//vWxfApq\n",
       "yfOKDOgyLuGY7/fGwOl6F8frsAAAAwAAAwAABvx8PGxaakp+wAAACDACEv7weSjoAFV8erN7kHn0\n",
       "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\n",
       "AAEAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA\n",
       "AEAAAAACgAAAAeAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAABQAAAAIAAAEAAAAABMxtZGlh\n",
       "AAAAIG1kaGQAAAAAAAAAAAAAAAAAADIAAABAAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAA\n",
       "AAAAAAAAAFZpZGVvSGFuZGxlcgAAAAR3bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYA\n",
       "AAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAEN3N0YmwAAAC3c3RzZAAAAAAAAAABAAAAp2F2\n",
       "YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAACgAHgAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAA\n",
       "AAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAA1YXZjQwFkAB//4QAYZ2QAH6zZQKA9oQAAAwABAAAD\n",
       "AGQPGDGWAQAGaOvjyyLA/fj4AAAAABx1dWlka2hA8l8kT8W6OaUbzwMj8wAAAAAAAAAYc3R0cwAA\n",
       "AAAAAAABAAAAQAAAAQAAAAAUc3RzcwAAAAAAAAABAAAAAQAAAghjdHRzAAAAAAAAAD8AAAABAAAC\n",
       "AAAAAAEAAAUAAAAAAQAAAgAAAAABAAAAAAAAAAEAAAEAAAAAAQAABQAAAAABAAACAAAAAAEAAAAA\n",
       "AAAAAQAAAQAAAAABAAAFAAAAAAEAAAIAAAAAAQAAAAAAAAABAAABAAAAAAEAAAUAAAAAAQAAAgAA\n",
       "AAABAAAAAAAAAAEAAAEAAAAAAQAABQAAAAABAAACAAAAAAEAAAAAAAAAAQAAAQAAAAABAAAFAAAA\n",
       "AAEAAAIAAAAAAQAAAAAAAAABAAABAAAAAAEAAAUAAAAAAQAAAgAAAAABAAAAAAAAAAEAAAEAAAAA\n",
       "AQAABQAAAAABAAACAAAAAAEAAAAAAAAAAQAAAQAAAAABAAAFAAAAAAEAAAIAAAAAAQAAAAAAAAAB\n",
       "AAABAAAAAAEAAAUAAAAAAQAAAgAAAAABAAAAAAAAAAEAAAEAAAAAAQAABQAAAAABAAACAAAAAAEA\n",
       "AAAAAAAAAQAAAQAAAAABAAAFAAAAAAEAAAIAAAAAAQAAAAAAAAABAAABAAAAAAEAAAUAAAAAAQAA\n",
       "AgAAAAABAAAAAAAAAAEAAAEAAAAAAQAABQAAAAABAAACAAAAAAEAAAAAAAAAAQAAAQAAAAABAAAF\n",
       "AAAAAAEAAAIAAAAAAQAAAAAAAAABAAABAAAAAAEAAAQAAAAAAgAAAQAAAAAcc3RzYwAAAAAAAAAB\n",
       "AAAAAQAAAEAAAAABAAABFHN0c3oAAAAAAAAAAAAAAEAAAEuYAAAQzwAADScAAA6FAAAAhwAACtoA\n",
       "AADmAAAAfwAAAGMAAAjKAAAAbwAAAIoAAAB7AAAHLAAAAIgAAACJAAAAfAAABkIAAACCAAAAagAA\n",
       "AEsAAAVPAAAAnAAAAFYAAABiAAAFLQAAAJUAAABkAAAAZAAABHIAAACGAAAAWQAAAEMAAAQ2AAAA\n",
       "cgAAAEQAAAA/AAADmAAAAGUAAAA+AAAARQAAA28AAABsAAAAWQAAAEgAAAMaAAAAggAAADoAAAAy\n",
       "AAADFQAAAHIAAAA9AAAAJQAAArgAAAB2AAAARAAAADwAAAH6AAAAXgAAADEAAAAgAAAA3gAAADoA\n",
       "AAAkAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAA\n",
       "AABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU4\n",
       "LjQ1LjEwMA==\n",
       "\">\n",
       "  Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "[encoded data, 25744 characters]",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# PART 5, animation of result\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from matplotlib import animation, rc\n",
    "from IPython.display import HTML\n",
    "\n",
    "fig, ax = plt.subplots();\n",
    "\n",
    "ax.set_xlim(( xmin, xmax));\n",
    "ax.set_ylim(( ymin, ymax));\n",
    "\n",
    "i=0;\n",
    "Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "dmin = np.min(C);\n",
    "dmax = np.max(C);\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "im = ax.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=dmin, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.xlabel('y');\n",
    "plt.ylabel('x');\n",
    "plt.colorbar(mappable=im);\n",
    "\n",
    "def init():\n",
    "    im.set_data([[]]);\n",
    "    return (im,)\n",
    "\n",
    "def animate(i):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    im.set_data(Ci);\n",
    "    return (im,)\n",
    "\n",
    "anim = animation.FuncAnimation(fig, animate, init_func=init,\n",
    "                               frames=int(Nt), interval=int(20), \n",
    "                               blit=True)\n",
    "HTML(anim.to_html5_video())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "animation written\n"
     ]
    },
    {
     "data": {
      "image/png": "[encoded data, 25744 characters]",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# write animation as file\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from matplotlib import animation, rc\n",
    "from IPython.display import HTML\n",
    "\n",
    "fig, ax = plt.subplots();\n",
    "\n",
    "ax.set_xlim(( xmin, xmax));\n",
    "ax.set_ylim(( ymin, ymax));\n",
    "\n",
    "i=0;\n",
    "Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "dmin = np.min(C);\n",
    "dmax = np.max(C);\n",
    "plt.axis([0,xmax,0,ymax]);\n",
    "mycmap=matplotlib.colormaps['jet'];\n",
    "left=0; right=xmax;\n",
    "top=ymax; bottom=0;\n",
    "im = ax.imshow(np.flipud(Ci.T), cmap=mycmap, vmin=dmin, vmax=dmax, extent=(left,right,bottom,top) );\n",
    "plt.xlabel('y');\n",
    "plt.ylabel('x');\n",
    "plt.colorbar(mappable=im);\n",
    "\n",
    "def init():\n",
    "    im.set_data([[]]);\n",
    "    return (im,)\n",
    "\n",
    "def animate(i):\n",
    "    Ci = np.squeeze( C[0:Nx,0:Ny,i] );\n",
    "    im.set_data(Ci);\n",
    "    return (im,)\n",
    "\n",
    "anim = animation.FuncAnimation(fig, animate, init_func=init,\n",
    "                               frames=int(Nt), interval=int(20), \n",
    "                               blit=True)\n",
    "HTML(anim.to_html5_video())\n",
    "\n",
    "writer = animation.PillowWriter(fps=15);\n",
    "anim.save('Lec17_chemical_diffusion_random.gif', writer=writer);\n",
    "print(\"animation written\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
