Posts for the month of May 2012

Grain Boundary Motion

Bill has a simple 1D model for grain boundary motion and hillock formation. The governing equation is given by

$$ z_t + v z_x =- B \left[ \left( 1 + z_x^2 \right)^{-1/2} \kappa_x \right]_x $$

where

$$\kappa = \frac{z_{xx}}{\left(1 + z_x^2\right)^{3/2}}$$

with two jump conditions at $x=0$.

$$z_x^+ - z_x^- = M$$

$$\kappa^+_x - \kappa^-_x = 2 j$$

We can include these conditions in the main equations if we write the equations in the weak form:

$$ \int \left[z_t - v z_x =- B \left[\frac{1}{\sqrt{ 1 + z_x^2}} \kappa_x\right]_x + \frac{B 2 j \delta\left(x\right)}{\sqrt{ 1 + z_x^2}} \right] dx$$

and

$$ \int \left[\kappa \left( 1 + z_x^2 \right)^{3 / 2} = z_{xx} - M \delta\left(x\right) \right] dx$$

The fipy script is in source:trunk/boettinger/grainBoundary/gb.py.

Version 1551 (source:trunk/boettinger/grainBoundary/gb.py@1551) compares against an analytical solution given by:

$$ z_a = \frac{M}{2} \left(Bt\right)^{1/4}P\left(\frac{|x|}{\left(Bt\right)^{1/4}}\right) $$

where

$$P\left(u\right) = \sum_{n=0}^{\infty} a_n u^n$$

where

$$ a_i = (-7.803e-1, 10e-1, -2.866e-1, 0.0, 8.13e-3, 0.0, -2.004e-4, 0.0, 3.625e-6, 0.0, -4.969e-8, 0.0, 5.339e-10, 0.0, -4.655e-12,...$$

The solution is good for small M in the vicinity of the groove and $j=0$.

For values of $j=0$, $M=0.01$ and $B=1$ with a box size of 40 and 200 grid points. The analytical and numerical solutions are in good agreement in the location of the groove at t=10.

source:trunk/boettinger/grainBoundary/plot99.png@1552

Another test is with an analytical solution for $j\ne0$. This looks like

$$z = z_a + j \left(Bt\right)^{3 / 4} W\left(\frac{|x|}{\left(Bt\right)^{1/4}}\right) $$

where

$$ W\left(u\right) = \sum_{n=0}^{\infty} b_n u^n$$

and

$$ b_0 = \frac{1}{\sqrt{2} \Gamma\left(7 / 4\right)} $$
$$ b_1 = 0 $$
$$ b_2 = \frac{-1}{2^{3 / 2} \Gamma\left(5 / 4\right)} $$
$$ b_3 = 1 / 6 $$
$$ b_{n + 4} = b_n \frac{n - 3}{4 \left(n + 1\right) \left(n + 2\right) \left(n + 3\right) \left(n + 4\right)}$$

The code for this comparison is source:trunk/boettinger/grainBoundary/gb.py@1553.

The image below is for $j=0.1$ at t=10 using the first 14 terms in the power series.

source:trunk/boettinger/grainBoundary/plot99.png@1553

The analytical solution does a good job in the region of the groove, but doesn't rise above $z=0$ as it does when $j=0$. Obviously, the power series is not much good if the $u$ argument is much above 1. If we use this as a boundary then we get $x=1.77$ at $t=10$, which seems to correspond with the domain where the solutions are the same.

  • Posted: 2012-05-30 16:43 (Updated: 2012-05-30 18:23)
  • Author: wd15
  • Categories: (none)
  • Comments (0)