On Mon, Aug 9, 2010 at 9:31 AM, Ryan Paul <[email protected]> wrote:
>
> Hello,
>
> In FiPy code, how do I solve for the phase field interface velocity
> using the advection equation?

The advection equation is just

   \phi_t + | \nabla \phi | u = 0,

so the normal velocity is

  - \phi_t / | \nabla \phi |

or (back solving using the advection equation),

    -(phi - phi.getOld()) / dt / ((phi.getGrad().getMag() - epsilon) *
(phi.getGrad().getMag() != 0) + epsilon)

in fipy.

> I found the following post, but I am in
> need of some more detailed instruction:
>
> http://www.mail-archive.com/[email protected]/msg00115.html
>
> After looking through the level set examples, I think I can set up the
> advection equation, but I am not sure how to solve for the velocity

You don't need to solve the advection equation, you have already
solved the phase field equation for the phase field variable. You are
back solving the advection equation for the velocity, solving the
advection equation canonically gives you the phase field assuming you
know the velocity, which you don't unless you back solve using the
advection equation (chicken and egg problem).

> only in the interface region (where the derivative of the phase field
> variable is not zero).  Before I try and solve my own problem, I would
> like to compare the velocity as calculated using the advection
> equation

The advection equations does not calculate velocities. It calculates a
field based on a velocity. Back solving using the advection equation
when you know the evolution of a field can give you the normal
component of a velocity (not all the components).

> to the velocities already found in examples/phase/simple, so
> that I know I am correctly solving for it.

Hope this helps. Cheers.

-- 
Daniel Wheeler


Reply via email to