网站公告:
THE LATEST INFORMATION
| 九天资讯 |
水平集法(level-set)在本人刚接触拓扑优化那会就听闻,但是一直搞不懂具体原理与细节,比如下图文章中对水平集的讲解
上面文章为Fabrication-constrained nanophotonic inverse design,看了半天,最重要的问题, 函数是啥?怎么取?这才是最关键的问题,然而一直似乎没有文章或者资料详细解释这个!!(有相关资料的朋友求提供)
不过没关系,最近总算成功理解了这个所谓的水平集法的各种细节(感谢各方大佬的耐心教导),写下本文作为记录。
首先从无人细谈的 开始,它其实就是一个自定义函数,有多自定义呢?就是你随便random一个矩阵都可以,没错就是形如 randn(Nx,Ny) 这样生成的矩阵。接下来,再来看方程
首先是 ,说明 不仅是 x 跟 y 的函数,还是时间 t 的函数,不过这不重要。接着是 ,这个要怎么求呢?这里就需要使用到计算物理的知识了,因为
计算物理里面,微分和积分都是用数值的方式做的,因此上面的表达式也是用数值进行计算
所以这里直接对生成进行差分就可以了,而函数 就是对目标函数求导得到的梯度(这个近期可能也会写一篇文章谈谈),所以最后就是求出了
然后就是用这个求出来的 更新
因为水平集法的 用和材料介电常数分布之间的关系为
所以使用水平集一个好处是结构始终是二值化的,无需再对介电常数进行处理。