# How can I modify the Eikonal equation to have smooth iso-contours?

I am solving the Eikonal Equation in 2D:

$| \nabla T(x,y)|=1/V(x,y)$

for the traveltime, T(x,y), from a starting point: $T(x_0,y_0) = 0$.

The curves $T(x,y)=C$ forms closed contours around the starting point.

However the Eikonal equation do not impose any smoothness requirements on the contours.

As an example consider the following case:

Figure: Black circle: starting point, color: velocity, V(x,y), red=fast, blue=slow.

The contours would have no problem getting trough the narrow red "gap".

The way I look at this: the Eikonal equation models sound, and sound have no problems getting trough narrow spaces.

I would like instead to model something more "viscous" so that the contours were smooth and could NOT get trough such a narrow gap.

What would be the PDE for that?

And how would I solve it numerically? Today I am using the Fast Marching Method. Would it possible to adapt this method to the new equation?

You could model shear viscosity without changing the PDE, just by pre-processing the data $V$. The idea is that since a slow-moving layer of fluid will slow down its neighbors, the velocity $V$ must be continuous, and more precisely Lipschitz continuous: $$|V(x,y)-V(x',y')|\le L\sqrt{(x-x')^2+(y-y')^2}\tag1$$ for all pairs of points $(x,y)$ and $(x',y')$. So, the picture of velocity field should look like this:

where purple color indicates intermediate values between red and blue. The velocity being Lipschitz should make iso-contours $C^{1,1}$-smooth.

A natural way to preprocess $V$ is $$\widetilde V(x,y) = \min_{x',y'}\left\{V(x',y')+L\sqrt{(x-x')^2+(y-y')^2} \right\} \tag2$$ This guarantees $\widetilde V(x,y)\le V(x,y)$, which means that viscous fluid will not move faster than inviscous one would (makes sense). The value of $L$ is for you to choose: the smaller values of $L$ correspond to greater viscosity. In your example, $\widetilde V$ will be the same as $V$ in the blue region and also in most of the red region, except for some boundary layer in which $\widetilde{V}<V$ due to viscosity.

The cost of pre-processing can be reduced by observing that in (2) you only need to consider $(x',y')$ such that $\sqrt{(x-x')^2+(y-y')^2}\le (\max V-\min V)/L$.

Also, check out Computational Science SE with its supply of fluid modeling questions.

• Thanks! Could I first choose an influence-range, dmax, then find L: L=(maxV-minV)/dmax, and finally loop over all points within a distance = dmax from the point being preprocessed and apply your equation 2? – Andy Mar 19 '13 at 18:57
• And in the picture of the preprocessed velocity you used an influence range >= half the width of the gap? – Andy Mar 19 '13 at 19:02
• @Andy Yes, that choice of L makes sense. The loop should over distance $\le$ dmax, rather than $=$. This ensures $\widetilde V\le V$, because $x'=x$, $y'=y$ is one of the points over while minimum runs. As for the picture, it was made in Paint by adding purple rectangles to your picture. :) To prevent the contours from going through at the middle of the gap, influence range should be strictly greater than half-width. Try setting it equal to the total width of the gap, or even more. – user67506 Mar 19 '13 at 19:47