# Bistability Ginzburg Landau equation

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.

• I am pretty sure that the theoretical prediction you mentioned above has been done for the boundary conditions fixed in infinity. But in your case the boundary condition u=0 is fixed at a finite distance. This should lead to the step with u=0 at the left boundary and making a step with the width ~1 coming to the horizontal asymptote u=3. To be able to solve this equation correctly you need to have the number of mesh points such that the distance between them in the kink region does not exceed 1. This is Fixed with MaxPoints or MinPoints – Alexei Boulbitch May 14 '18 at 13:14

Increasing the number of spatial grid points gets your wave moving when steep=5. E.g., add the following to your NDSolve:
Method -> {"MethodOfLines", "SpatialDiscretization" ->

• So what is the criterion that made you pick 1000? Is it from paper? – Joshhh May 13 '18 at 17:31