gridap / GridapEmbedded.jl

Embedded finite element methods in Julia
Other
42 stars 14 forks source link

(Re-)Computing the Level Set Function #53

Closed ConnorMallon closed 3 years ago

ConnorMallon commented 3 years ago

In the context of an optimisation on the discrete level set function (a vector which gives the distance to the boundary at each node of a mesh), a gradient-based method would give an update only for values in the vicinity of the boundary since it is only the level set values within the vicinity of the boundary for which we can have a sensitivity to. i.e. changing a level set value far away from the boundary by a small pertubation would have no effect on the boundary location since the boundary is computed based only on the level set values close to zero. With this update, it is possible to recompute a new location for the boundary. However, the level set function we just updated is no longer the correct level set function as, for example, a value on a node with an original distance of 4 away now may be a distance of 4.3 away but the value has not been updated and is still 4. Is it possible to recompute the level set field based on our new location for the boundary?

Note that an alternative (probably more precise) name for the level set function in this particular context would be the signed distance function

ConnorMallon commented 3 years ago

SignedDistanceFields.jl or something similar seems like what is needed here.