octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Package for level-set method?


From: Julien Bect
Subject: Re: Package for level-set method?
Date: Wed, 12 Mar 2014 14:37:14 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

On 12/03/2014 14:28, Juan Pablo Carbajal wrote:
On Wed, Mar 12, 2014 at 1:28 PM, Daniel Kraft <address@hidden> wrote:
Hi all!

For my PhD, I'm working on shape optimisation with the level-set method.
  The basic idea here is to describe geometries / domains via a level-set
function phi, such that the domain is given as the open set

   { x | phi(x) < 0 }.

By calculating the viscosity solutions of the level-set equation

   phi_t(x, t) + F(x) | gradient phi(x, t) | = 0,

one can perform "changes" of the geometry('s level-set function) that
correspond to movement of the boundary in normal direction according to
the given speed-field F.

Using a proper discretisation scheme, this equation can be propagated in
time.  However, it is also possible to find the resulting geometries by
solving the stationary Eikonal equation

   F(x) | gradient d(x) | = 0

first, whose solution d can be used to find the evolved geometries at
arbitrary times t >= 0.  d can be calculated numerically using the Fast
Marching method, as described, for instance, by Sethian.  I'm working on
a theoretical paper about this at the moment, but also have working
implementations already.

I would be interested to polish my code and release it as free software
to Octave Forge if there is interest.  (Will have to ask my employer
(University of Graz) first for permission, but I think that should be ok.)

What I have and could release:

* Implementation of the Fast Marching method to solve the equation for d
given arbitrary F (need not be strictly positive or something like
this).  It works on structured (rectangular) grids of any dimension and
with the possibility to exclude certain grid points from the possible
domain.

* Calculation of the level-set function for evolved domains based on
this.  I'm currently using this on a structured grid in two dimensions,
but I think the code should handle arbitrary dimensions just fine.  (Or
I can extend it to do so.)

* Determining geometrical properties from the level-set function,
including a polygonal approximation of the boundary and calculation of a
triangle mesh for the described domain.  This works in 2D and my mesh
structure is currently a bit different from the one used in the msh and
fem-fenics packages, but it shouldn't be hard to rewrite the code to
generate meshes fitting to msh / fem-fenics.

In the future, I may also work on allowing more general meshes (for
instance, finer where the boundary movements must be resolved, but
coarser in the interior for more efficient PDE solving), and can
maintain the package accordingly.

Would you be interested in this package to be relased on Octave Forge,
or do you think it is not of general interest?

Yours,
Daniel

--
http://www.domob.eu/
OpenPGP: 901C 5216 0537 1D2A F071  5A0E 4D94 6EED 04F7 CF52
Namecoin: id/domob -> https://nameid.org/?name=domob
--
Done:  Arc-Bar-Cav-Hea-Kni-Ran-Rog-Sam-Tou-Val-Wiz
To go: Mon-Pri

Very interesting!

If you prepare a package and uploaded it somewhere I can check it and
test the instalation. Best place would be bitbucket, github etc...

I agree : level-set methods are useful and can serve many purposes. Having them in Octave would be great.

There is a Matlab toolbox for levet-set methods Ian Mitchell

http://www.cs.ubc.ca/~mitchell/ToolboxLS <http://www.cs.ubc.ca/%7Emitchell/ToolboxLS>

but unfortunately the licence is not compatible with the GPL.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]