Chris,
>
> James: I understand the mechanics of the PSI way, but there's a
> >>major<< snag: it doesn't work. The good new is I know why: Defining
> a PSI function on a regular grid works fine, but I still need to
> actively map my patches to physical boundaries, ie. the grid is
> stretched/shrinked to fit my boundaries. Whenever I'm calling a slab
> of fortran to do that, it seems to defeat the PSI machinery. It
> runs... without any boundary...
The level-set approach is not meant to be used with a body-fitted
grid. Unfortunately, as you have found, there is no error check
to inform the end-user. I've made a mental note to add one.
>
> I've been wrestling with this since your last post. I finally found
> this minutes ago by taking your own script and sending the grid to a
> fortran double-loop that recreates the regular rectangular grid --> No
> go... Commenting out the 'grid code/rectgrid' call --> works fine.
> (And yes, the grid is identical in both cases)
>
> Too bad, would have been an easy way to get there... Let me know if
> you think of something that might be done to make it work.
Without seeing your geometry, it's hard to comment. But as the level-set
approach is just a distance function, there is no intrinsic reason why it
couldn't cope with your set up. There are, however, a few gotchas to be
aware of. For instance, the method fails on a thin plate: owing to the
way the flow reflection is handled, the upper-surface interferes with the
lower-surface, and vice versa. Anyhow, if you post your geometry, I'll
take a look at it and let you know if the approach is suitable or not.
James