4.2 A Problem and its Decomposition

We will model a Belusov-Zhabotinsky oscillator in which we've crafted the initial conditions to prevent oscillations, resulting in a travelling wave solution instead.

The system can be thought of as a reactant ( \bgroup\color{Green}$ \phi_{{1}}^{}$\egroup ) turning into a product ( \bgroup\color{Green}$ \phi_{{2}}^{}$\egroup ) in a temperature field ( \bgroup\color{Green}$ \phi_{{0}}^{}$\egroup ). The temperature, reactants, and products diffuse in space, from regions of higher concentration to regions of lower concentration. The initial conditions are such that the reactant is unevenly distributed in space, so it starts diffusing while simultaneously producing products. These products are produced only where the reactant is present, so they too start diffusing the moment they are produced.

The reaction term for the reactant is such that it is always positive (think of the reactant being produced from an infinite substrate), so it does not run out. It also diffuses out, thus forming a traveling wave. The same thing is reflected in the product; however its production gets shut off when it reaches a certain level, vis-a-vis the reactant concentration.

This system can be described by the following PDE on domain \bgroup\color{Green}$ \mathcal {D}$\egroup

$\displaystyle {\frac{{\partial \mathbf{\Phi}}}{{\partial t}}}$ = D($\displaystyle \Phi$,$\displaystyle \nabla$$\displaystyle \Phi$,$\displaystyle \nabla^{2}_{}$$\displaystyle \Phi$,...;kD) + R($\displaystyle \Phi$;kR)  
$\displaystyle \Phi$(x, t = 0) = $\displaystyle \Phi$(0)  
$\displaystyle \Phi$(x, t) = q(x)   $\displaystyle \mbox{on
$\partial {\mathcal{D}}$}$ (4.1)

This equation consists of two terms (on the right hand side): D , which includes spatial derivatives and R , which is a local term. Each of these terms are dependent on parameters kD and kR . Initial and Dirichlet boundary conditions are also prescribed. We further define D and R to be

D = $\displaystyle \left(\vphantom{ \begin{array}{c} \epsilon \nabla^2 \phi_0 \  \epsilon \nabla^2 \phi_1 \  \epsilon \nabla^2 \phi_2 \end{array} }\right.$$\displaystyle \begin{array}{c} \epsilon \nabla^2 \phi_0 \  \epsilon \nabla^2 \phi_1 \  \epsilon \nabla^2 \phi_2 \end{array}$$\displaystyle \left.\vphantom{ \begin{array}{c} \epsilon \nabla^2 \phi_0 \  \epsilon \nabla^2 \phi_1 \  \epsilon \nabla^2 \phi_2 \end{array} }\right)$,   R = $\displaystyle \left(\vphantom{ \begin{array}{c} 0 \  \frac{1}{\epsilon} \left(...
...\phi_1) (\phi_1 - \phi_{th}) \right) \  (\phi_1 - \phi_2) \end{array} }\right.$$\displaystyle \begin{array}{c} 0 \  \frac{1}{\epsilon} \left( \phi_1 ( 1 - \phi_1) (\phi_1 - \phi_{th}) \right) \  (\phi_1 - \phi_2) \end{array}$$\displaystyle \left.\vphantom{ \begin{array}{c} 0 \  \frac{1}{\epsilon} \left(...
...\phi_1) (\phi_1 - \phi_{th}) \right) \  (\phi_1 - \phi_2) \end{array} }\right)$ (4.2)

where kD = \bgroup\color{Green}$ \epsilon$\egroup , kR = {0,\bgroup\color{Green}$ \epsilon$\egroup, 1} and \bgroup\color{Green}$ \phi_{{th}}^{}$\egroup = (\bgroup\color{Green}$ \phi_{2}^{}$\egroup + q)/f , q = 0.01, f = 0.3 . \bgroup\color{Green}$ \nabla^{2}_{}$\egroup is the Laplacian operator.

We wish to solve this equation on the 2D unit square defined on 0 \bgroup\color{Green}$ \leq$\egroup x \bgroup\color{Green}$ \leq$\egroup 1, 0 \bgroup\color{Green}$ \leq$\egroup y \bgroup\color{Green}$ \leq$\egroup 1 . q(x) = {0.1, 0.1, 0.1},\bgroup\color{Green}$ \epsilon$\egroup = 10-3 . The initial condition for \bgroup\color{Green}$ \phi_{0}^{}$\egroup,\bgroup\color{Green}$ \phi_{2}^{}$\egroup are 0.1, while for \bgroup\color{Green}$ \phi_{1}^{}$\egroup ,

$\displaystyle \phi_{1}^{}$(x, 0) = 0.1 + 0.01$\displaystyle \left(\vphantom{ \exp( - a(\mathbf{x}- \mathbf{x}_1)^2 ) + \exp( - a (\mathbf{x}- \mathbf{x}_2)^2) }\right.$exp(- a(x - x1)2) + exp(- a(x - x2)2)$\displaystyle \left.\vphantom{ \exp( - a(\mathbf{x}- \mathbf{x}_1)^2 ) + \exp( - a (\mathbf{x}- \mathbf{x}_2)^2) }\right)$ (4.3)

where a = (0.03)-2,x1 = {0.35, 0.35},x2 = {0.65, 0.65}

While this equation can be solved in many ways, we will use second-order centered finite-difference stencils for \bgroup\color{Green}$ \nabla^{2}_{}$\egroup , i.e.

$\displaystyle \nabla^{2}_{}$$\displaystyle \phi$ = $\displaystyle {\frac{{ \phi_{i+1,j} - 2\phi_{ij} + \phi_{i-1,j} }}{{ (\Delta x)^2}}}$ + $\displaystyle {\frac{{ \phi_{i,j+1} - 2\phi_{ij} + \phi_{i,j-1} }}{{ (\Delta y)^2}}}$ (4.4)

where \bgroup\color{Green}$ \phi_{{ij}}^{}$\egroup = \bgroup\color{Green}$ \phi$\egroup(i\bgroup\color{Green}$ \Delta$\egroupx, j\bgroup\color{Green}$ \Delta$\egroupy) . We will use a conventional RK2 time-integrator to solve this set of equations. We will use a Nx x Ny mesh (i.e. there will be Nx x Ny grid cells) to discretize \bgroup\color{Green}$ \mathcal {D}$\egroup and a time step of \bgroup\color{Green}$ \Delta$\egroupt ; Nx , Ny and \bgroup\color{Green}$ \Delta$\egroupt will be inputs into the code. Note, that Nx , Ny and \bgroup\color{Green}$ \Delta$\egroupt are not independent; \bgroup\color{Green}$ \Delta$\egroupt \bgroup\color{Green}$ \propto$\egroup min{Nx-2, Ny-2} for stability. \bgroup\color{Green}$ \Phi$\egroup will be stored at cell-centers, and each cell will be \bgroup\color{Green}$ \Delta$\egroupx x \bgroup\color{Green}$ \Delta$\egroupy in size, \bgroup\color{Green}$ \Delta$\egroupx = 1/Nx and \bgroup\color{Green}$ \Delta$\egroupy = 1/Ny . Fig. 4.1 depicts the mesh.
Figure 4.1: 2D central differences stencil.
Image mesh

Solving this equation requires the following functionalities:

These functionalities, implemented as components, can be used to solve the PDE and form a starting point for a PDE-solving toolkit.

David E. Bernholdt [bek] 574-3147 2009-08-21