Grain Boundary Motion
Bill has a simple 1D model for grain boundary motion and hillock formation. The governing equation is given by
where
with two jump conditions at
.
We can include these conditions in the main equations if we write the equations in the weak form:
and
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:
where
where
The solution is good for small M in the vicinity of the groove and
.
For values of
,
and
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.
Another test is with an analytical solution for
. This looks like
where
and
The code for this comparison is source:trunk/boettinger/grainBoundary/gb.py@1553.
The image below is for
at t=10 using the first 14 terms in the power series.
The analytical solution does a good job in the region of the groove, but doesn't rise above
as it does when
. Obviously, the power series is not much good if the
argument is much above 1. If we use this as a boundary then we get
at
, which seems to correspond with the domain where the solutions are the same.
rss
![$$ z_t + v z_x =- B \left[ \left( 1 + z_x^2 \right)^{-1/2} \kappa_x \right]_x $$](https://matforge.org/wd15/tracmath/46cdcf652785aa08366922852c9a912e795f2fa9.png)



![$$ \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$$](https://matforge.org/wd15/tracmath/cc441b95d33bac6dcf49fb97deedae7c844d44c8.png)
![$$ \int \left[\kappa \left( 1 + z_x^2 \right)^{3 / 2} = z_{xx} - M \delta\left(x\right) \right] dx$$](https://matforge.org/wd15/tracmath/c4962d1919e178ef4ffe7028f1e92a1368c02a05.png)











