Signed-distance functions for MaterialGrid Levelsets #2067
Replies: 1 comment 1 reply
-
Hi there! I am trying to implement something like idea 3 of the proposed tutorial 2011. PS |
Beta Was this translation helpful? Give feedback.
-
Hi there! I am trying to implement something like idea 3 of the proposed tutorial 2011. PS |
Beta Was this translation helpful? Give feedback.
-
We've recently added subpixel smoothing to
MaterialGrid
s. One nice side effect of this new feature is the ability to optimize when β=∞ (i.e. shape optimization).Often, shape optimization is used when we already have a good initial guess and just want to improve the performance of that device by perturbing the boundaries. In order to supply an initial guess as a
MaterialGrid
, however, the underlying design variables must be slowly varying, which is never the case when we are starting with a binary structure...Luckily, we can create a signed-distance function (e.g. using the fast-marching method) from our binary initial guess. The
scikit-fmm
python package does this rather well. For example, suppose we would like to supply a simple circle as our initial guess:If we want an equivalent representation which is amenable to subpixel smoothing, we can do the following:
which results in a nice, smoothly varying function:
Now, if we project the above signed-distance function..
we can even verify that the difference between the projected levelset and the initial starting condition is indeed 0:
cc @oskooi this might make a nice tutorial someday (assuming we combine it with some actual shape optimization).
Beta Was this translation helpful? Give feedback.
All reactions