I am trying to solve the Ginzburg-Landau equation with a third order polynomial as the reaction term: $$ \frac{\partial u}{\partial t} = -K(u-u_1)(u-u_2)(u-u_3) + \frac{\partial^2u}{\partial x^2} $$ on a spatial axis $[x_{min},x_{max}]$ with a smooth step-function initial condition and boundary conditions: $$ u(0,x) = \frac{u_3 + u_1e^{-x/x_0}}{1+e^{-x/x_0}},\ u(t,x_{min}) = u_1,\ u(t,x_{max}) = u_3 $$
So, I used NDSolve
to approach the problem. The code is:
K = 1; u1 = 0; u2 = 1; u3 = 3; xmin = -500; xmax = 500; steep = 1; \
tmin = 0; tmax = 500;
sol = NDSolve[{D[u[t, x],
t] == -K*(u[t, x] - u1)*(u[t, x] - u2)*(u[t, x] - u3) +
D[u[t, x], x, x],
u[t, xmin] == u1, u[t, xmax] == u3,
u[0, x] == (u3 + u1*Exp[-x/steep])/(1 + Exp[-x/steep])},
u, {x, xmin, xmax}, {t, tmin, tmax}]
Animate[Plot[u[t, x] /. sol, {x, xmin, xmax},
PlotRange -> {{xmin, xmax}, {u1 - 0.5, u3 + 0.5}}], {t, tmin, tmax}]
Theory tells us that the step-function should propagate left (for $u_1=0,u_2 = 1,u_3=3$) and that $u_3$ will sweep out the space.
For steep = 1
, I do get that the step function propagates left. But, when I play with steep
, the solution is stuck on this (steep = 5
):
for every t
.
I don't understand why. steep = 1
is resolved, so steep =5
should be resolved. The spatial size is xmax - xmin = 1000
, which is much greater than the shock-width.