拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了
链接:https://www.zhihu.com/question/52008623/answer/187927508
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
不知道这个问题提出来有多久了,我是拓扑优化方向的PhD,下面是我自己的一点感受,未必准确。
-------------------------------------------------------
首先说结论:从现在的情形来看,水平集法以及其余所有方法都不能在短时间内超越变密度法。
- 变密度法源于均一化方法,相对于均一化方法,变密度法所需要的设计变量数目大大减少了。目前通常所说的变密度法均是指基于单元(或者节点)伪密度方法的拓扑优化方法。
- 这种方法思路清晰,程序设计流程简单,也比较容易与现有商业有限元软件进行集成。因此现有的所有商业软件中的拓扑优化功能都是基于变密度方法来实现的。
- 变密度法相对于其余所有方法的最大优势是:适用于任意形状的设计域。对于复杂几何形状的设计域的天然普适性是目前所有其他拓扑优化方法所不具备的。这一点可能在学术界做research的时候感受还不明显(因为做research的时候大家都会用非常规则化的可行设计域,不是一块平板就是一个立方体),但一旦到了工业界这个问题就会非常重要。
- 很多水平集相关的论文均所称赞的,水平集方法相对于变密度法的优势是,水平集方法能够获得显式(explicit)、清晰(crisp)的拓扑边界。而这种称赞的后面一般都跟着鄙视一下变密度法所得结果所具有的模糊边界。对这个问题,我从两个角度谈我的看法。(1)拓扑优化方法本身在产品设计的周期中多用于概念设计阶段,也就是产品设计的初期。因此,工程师在使用拓扑优化方法的时候可能并不需要知道这根梁的直径到底是10.1mm还是10.5mm。在这个产品的大致形状确定之后,还有一系列的工作要做,在强度校核等过程中,产品的尺寸是会精确地确定下来的。也就是说,即使你用水平集方法得到了显式清晰的边界,这个边界也绝不会直接被当做最终产品的尺寸。(2)在2010年以后到现在这七年里,变密度法又得到了一些发展,现在用变密度法的时候大多会配合使用一些投影(projection)技术,这样,通过变密度法得到的设计结果也可以得到很清晰的拓扑构型。
- 从计算量的角度,水平集和变密度法的计算量都不小,从设计变量的个数上来说,二者没什么差别,都取决于网格的规模:或者等于节点数目,或者等于网格数目。但水平集法所需要求解的是扩散方程,而变密度法所需要求解的是一个优化问题,一般均认为水平集法所求解的数学问题要比变密度法更难一些。值得注意的是,近年来不断有学者从各个角度尝试降低拓扑优化中的设计变量数目,思路很多,比如大连理工的郭旭老师所提出的MMC方法等等。我自己在这方面也有一些思考,这一块确实还是大有可为的。
- 我曾经跟圈内很多人聊过关于变密度法和水平集方法的对比问题,我记得周明老师是这么说的,变密度法和水平集方法,这两者的共同点要远远多于它们的不同点。近年来不断有人提出类似的观点,从这两种方法的发展来看,它们均在不断地借鉴对方的一些优点。所以,如果将来这两种方法在更高层次的数学模型中得到了完全统一,我也不会表示很惊奇。
链接:https://www.zhihu.com/question/52008623/answer/156931579
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
SIMP 法:
优点: 结构设计变量(单元密度)和优化问题直接挂钩对应,即拓扑结构explicitly dependent on设计变量。优化算法收敛好,灵敏度简单易算。可以直接进行基于有限元的离散设计灵敏度计算。适用于结合更复杂的非线性结构拓扑,比如几何非线性和材料非线性问题。
缺点:优化出来的拓扑结构边界不够清晰,特别是当过滤半径比较大的时候。 这些灰度区域没有物理意义,设计如果无后处理无法直接用于制造。
Level-set 法:
优点:用一个高纬度的水平集implicitly表达拓扑结构的边界,从而解决了SIMP法的灰度区域问题。拓扑结果边界清晰,无灰度区域,设计可以直接用于制造。
缺点:由于设计变量间接与优化问题挂钩,中间涉及一些被水平集切割的有限单元的近似,从而影响优化精度。水平集方程需要用PDE方程来更新,中间还需要重置水平集方程来保证PDE的持续更新,从而大大降低优化收敛速度或者甚至无法收敛。PDE需要连续形状灵敏度来更新,相比SIMP的离散设计灵敏度更难。线弹性体的连续形状灵敏度已经发展很成熟,但是非线性结构连续形状灵敏度非常难求,需要很高的数学基础。
PS: 水平集是高维的,但是实现起来并不复杂。在原来有限元网格基础上再增加一个水平集网格就好了。
拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了的更多相关文章
- lua中 table 重构index/pairs元方法优化table内存占用
转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...
- Python中os和shutil模块实用方法集…
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- .Net中的AOP系列之《方法执行前后——边界切面》
返回<.Net中的AOP>系列学习总目录 本篇目录 边界切面 PostSharp方法边界 方法边界 VS 方法拦截 ASP.NET HttpModule边界 真实案例--检查是否为移动端用 ...
- 在.net中读写config文件的各种方法
阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...
- 【跟着子迟品 underscore】如何优雅地写一个『在数组中寻找指定元素』的方法
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- iOS中UI阶段常用的一些方法
UI 即 UserInterface(用户界面 1.iOS系统版本,每年都有更新.对我们开发者而言,主要的是观察API的变化. 2.iPhone新手机发布,会产生不同尺寸的屏幕,现在市面上有4种尺寸, ...
- 不修改代码就能优化ASP.NET网站性能的一些方法
阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不 ...
- Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片 自定义ADPager 自定义水平滚动的ScrollView效仿ViewPager 当遇到要在Vie ...
随机推荐
- Python入门到精通学习书籍推荐!
1.Python基础教程(第2版 修订版)<Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合 ...
- 【ajax】1、ajax原理
Ajax核心XMLHttpRequest对象 XMLHttpRequest对象方法 XMLHttpRequest对象属性 onreadystatechange 状态改变的事件触发器.每次 readyS ...
- PHP会话(Session)实现用户登陆功能 转自#落人间#
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用. 由于 Session 是以文本文件形式存储在 ...
- CSS 实现隐藏滚动条同时又可以滚动
方法1: 利用 css 3 的新特性 -webkit-scrollbar, 但是这种方式只兼容chrome,不兼容 火狐 和 IE. /* for Chrome */ .content::-webk ...
- SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
物料号:1301002696 工厂代码:2160 MB5B,如下查询条件, 查询结果中,期初与期末库存数量都是0,期间的出库入库数量都是0.事实上该物料期初应该是有库存的.并且我用MB51相同时间段查 ...
- Tars --- Hello World
服务端开发 1,创建一个 webapp maven 项目,pom.xml 导入依赖 <dependency> <groupId>com.tencent.tars</gro ...
- Code::Blocks + GDAL
[root@server20 ~]# yum install cmake cmake-gui [root@server20 ~]# yum install cairo-devel libcurl-de ...
- Units in Android
一般使用dp,不使用px.sp啥时候用呢?给TextView设置文字大小的时候用.
- [20180503]珅与分隔符.txt
[20180503]珅与分隔符.txt --//今天再次遇到分隔符问题,以前也遇到过做一次,链接.http://blog.itpub.net/267265/viewspace-763696/--//这 ...
- sql server自定义函数学习笔记
sql server中函数分别有:表值函数.标量函数.聚合函数.系统函数.这些函数中除系统函数外其他函数都需要用户进行自定义. 一.表值函数 简单表值函数 创建 create function fu_ ...