拓扑优化中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 ...
随机推荐
- CentOS6.5安装mysql以及常见问题的解决
前言 最近在学习Linux系统,今天在安装MySQL数据库时出现很多问题,花费了两个小时终于解决,故记录下来以供大家参考.(本人目前还在学习阶段,下面写到的是自己结合网上查到的资料以及各位前辈给出的解 ...
- Bootstrap 、AngularJs
SPA 全称:single-page application单页面应用 说明:类似原生客户端软件更流畅的用户体验的页面.所有的资源都是按需加载到页面上. JSR 全称:Java Specificati ...
- Oracle总结二
1 where子句 Where子句的作用:用where子句来指定查询条件 1.1 用法示例 select * from emp where deptno=10; select * from emp w ...
- element-ui 的el-button组件中添加自定义颜色和图标
我使用的element-ui的版本是V1.4.13. 如上图所示,如果使用el-button,加颜色是可以通过设置type属性的值,加图标就设置icon属性的值. 现在产品给了一个需求,就是自定义的很 ...
- 中软高科WEB前端面试题
一个朋友面试的题目,百度了一下这个中软高科貌似是一个培训机构...以下答案是我本人的理解,仅供参考 HTML+CSS 1.你能解释一下css的盒子模型吗? 有两种盒子模型:IE盒子模型,W3C盒子模型 ...
- kvm 安装操作系统问题
1.出现error processing drive: 解决: --ram 设置到1024 2.分区的时候磁盘文件大小为0 解决:创建虚拟机的时候添加参数ormat=qcow2,size=7,bus= ...
- Salesforce的数据安全防护措施
通过Salesforce,我们可以配置或开发出功能强大的网络应用.与此同时,无论作为管理员还是开发者,我们都要面对数据安全的问题. 常见的数据安全隐患有: SQL注入 跨站脚本攻击 跨站请求伪造 点击 ...
- winsock编程学习笔记
以下部分转自博客http://blog.csdn.net/phunxm/article/details/5085869 套接字地址(sockaddr.sockaddr_in) /* * Structu ...
- 洗礼灵魂,修炼python(62)--爬虫篇—模仿游戏
前言 <模仿游戏>这个电影相信如果你是搞IT的,即使没看过也听过吧?电影讲述了计算机之父——阿兰-图灵的一些在当时来讲算是计算机史里的里程碑事迹了.而[模仿游戏]这个名字咋一看,貌似和电影 ...
- sklearn datasets模块学习
sklearn.datasets模块主要提供了一些导入.在线下载及本地生成数据集的方法,可以通过dir或help命令查看,我们会发现主要有三种形式:load_<dataset_name>. ...