I am sorry for the typos in the above equation, the correct version I implemented is
Then I substitute the first and third equations into the second and fourth ones, respectively, which yields
We further introduce the intermediate vectors G_w and G_{\phi}, like
We eventually get the following equation
In Dedalus, they are implemented as
-------
tau_ph1 = dist.Field(name='tau_ph1', bases=xbasis)
tau_ph2 = dist.Field(name='tau_ph2', bases=xbasis)
tau_w1 = dist.Field(name='tau_w1', bases=xbasis)
tau_w2 = dist.Field(name='tau_w2', bases=xbasis)
ex, ez = coords.unit_vector_fields(dist)
lift_basis = zbasis.derivative_basis(1)
lift = lambda A: d3.Lift(A, lift_basis, -1)
grad_ph = d3.grad(ph) - ez*lift(tau_ph1)
grad_w = d3.grad(w) - ez*lift(tau_w1)
problem = d3.IVP([ph, w, tau_ph1, tau_ph2, tau_w1, tau_w2], namespace=locals())
problem.add_equation("dt(ph) - div(grad_w) + lift(tau_w2) = 0")
problem.add_equation("w + div(grad_ph) - lift(tau_ph2) + ph = ph**3 ")
problem.add_equation("dz(ph)(z=-Lz/2) = 0")
problem.add_equation("dz(ph)(z=Lz/2) = 0")
problem.add_equation("dz(w)(z=-Lz/2) = 0")
problem.add_equation("dz(w)(z=Lz/2) = 0")
----------
Note that in the above code snippet, we consider the Neumann boundary conditions for both \phi and w:
Is my understanding of the tau method for this fourth-order equation right? Thanks in advance.
Best,
Guangpu