拓扑优化是一种优化技术,可以将模拟域划分为需要保留或删除的区域。优化使用要删除区域中物理场的近似表示,因此我们应从几何图形中删除这些区域并进行新的仿真以验证优化结果。借助 COMSOL  软件,我们可以根据拓扑优化结果图创建几何图形以进行进一步分析,并可以将其轻松导出到 CAD 软件中。本篇文章摘自 COMSOL 博客,最初发布于 2017 年。为最新版本包括了关于过滤器数据集的更多信息。

在设计工作流程中使用拓扑优化结果

拓扑优化是一项有用的功能,它可以帮助我们找到我们无法合理想到的设计。但是,在开发设计时,这只是第一步。构建通过拓扑优化找到的特定设计可能是不合理的,也可能无法完成,因为该设计的生产成本太高或根本无法制造。MBB 梁的拓扑优化结果。为了解决这些问题,我们可以基于拓扑优化的结果提出新的设计,然后对其进行进一步的仿真分析。但是,我们该怎么做呢?我们可能需要一个可以剖分网格的几何形状,或者需要一个代表拓扑优化结果的导入网格。事实证明,COMSOL 使我们可以从二维和三维模拟中轻松获得这些。在 COMSOL 中,我们可以直接使用它们,也可以将其导出到各种 CAD 软件平台。下面,我们首先研究如何创建几何结构,然后再讨论如何跳过创建几何的步骤,直接通过导入和修改网格进行仿真。

如何在COMSOL Multiphysics®中生成拓扑优化结果的几何

在 COMSOL Multiphysics 5.5 版本中,使用 “过滤器” 数据集生成拓扑优化结果的几何操作,二维和三维几何操作步骤相同。但是,创建二维几何还有一些额外的步骤。下面,我们通过  最小化微通道中的流速案例教程 来演示此过程。除了原始教程之外,我们还将展示:在新创建的几何体上进行验证研究时,如何导入添加的域和边界选择,以及如何重复利用这些选择。您可以点击本文末尾的链接,下载带有附加选择和验证研究的 MPH 文件,自己使用 COMSOL 创建几何结构。该案例教程的目标是寻找多孔填充材料的最佳分布,以最大程度地减小微通道中心的水平流速。优化后的水平速度(表面图)和速度场(流线)。黑色轮廓代表填充材料。在上图所示的结果中,黑色轮廓线是设计变量等于 0.5 的等值线。它代表通道与填充材料之间的边界,就是我们希望合并到几何图形中的结果。在其他应用中,绘制的表达式和等值线水平可能有所不同,但是原理是相同的,即找到一个轮廓线来描述固体和非固体材料(通常是某种流体)之间的界限。

添加和设置过滤器数据集

下面,我们将使用“过滤器”数据集,根据上述结果创建几何图形。对于三维拓扑优化研究,将使用默认绘图自动设置此类数据集。但是,对于二维拓扑优化,需要通过在“结果”功能区上的“更多数据集”菜单中手动设置添加“过滤器”数据集。“结果”功能区上的“更多数据集”菜单提供了一种添加过滤器数据集的方式。在“过滤器”节点的设置 窗口中,“表达式”处输入 dtopo1.theta,设置“下界水平:0.5。单击“绘制”按钮将可视化显示此水平表示的区域。“过滤器”数据集的设置以及该数据集定义的域。

基于过滤器数据集创建网格零件

右键单击“模型开发器”树中的“过滤器”节点,然后从菜单中选择“创建网格零件”。

使用“创建网格零件”属性作为从拓扑优化结果导出创建几何的第一步。

根据“过滤器”数据集的可视化结果设置“网格零件”。如下图所示,在“网格零件”>“导入”操作的“设置”窗口中,有一个复选框“导入选择”。导入的选择也列在导入设置的下方,并根据实体级别进行分类。在此示例中,原始几何图形上的选择是基于坐标的选择,用于定义拓扑优化研究的材料和物理场设置。

网格零件的 导入节点的设置窗口。所选设置“ 导入选择” 位于“设置”窗口底部列出了 选择列表。正如在“模型开发器”树中看到的那样,选择在“几何”序列和“组件1”中的“定义”下定义的。

网格导入 操作支持导入任何类型的模型选择。最常见的选择类型有“ 定义”下添加的选择,“几何”操作序列中添加的选择以及在 LiveLink™ 同步和网格导入时创建的选择。从 COMSOL Multiphysics 5.5 版本开始,我们在导入 CAD 文件时,还可以根据材质、颜色、对象(实体)和图层自动创建选择。导入网格之后,可以使用例如“分割实体”操作来创建更多的实体,或者使用“连接实体”来减少实体,从而对其进行修改。也可以在创建几何之前使用自适应操作修改网格,如 导出和导入拓扑优化的钢钩教程 中所示。对于三维网格,我们可以直接将网格导出为与 COMSOL Multiphysics 和 CAD 软件兼容的格式,甚至可以直接用于 3D 打印。支持外部软件使用的文件格式是STL、3MF和PLY格式,它们是 3D 扫描和 3D 打印的常见文件格式。

如何创建几何并重复使用导入的选择

当网格符合要求后,右键单击“网格零件”节点,然后从菜单中选择“基于网格创建几何”,这项设置在“模型开发器”几何操作序列的“导入”节点设置新组件。在 COMSOL 官网的文章:《改进后的 STL 和 NASTRAN® 文件导入功能及其操作技巧》中,我们详细地讨论了三维案例中涉及的过程和导入设置。导入的选择现在可以用于在验证研究中设置材料和物理场,如下图所示。根据拓扑优化结果创建的几何。使用通过 网格零件导入的一个边界选择来设置入口边界条件。我们还可以复制 MPH 文件,清除几何操作序列,添加导入操作,然后直接指向新创建的网格零件。这样,只需确保选择已正确更新,就可以再次使用物理场设置。

替代过程:直接在过滤器数据集创建的网格上运行验证研究

从 COMSOL Multiphysics 5.5 版本开始,我们直接使用从“ 过滤器数据集”创建的网格,而不必生成几何。这种操作可以适应曲面网格以提高网格质量,在需要时创建域并构建自由的四面体网格,所有这些都基于导入的网格。以教程 导出和导入拓扑优化钢钩 的已求解结果开始,按照以下步骤进行操作:添加一个新的三维组件 然后来到组件3 的网格 4。注意,也可以转到两个现有组件中的任何网格,然后选择“删除序列”以重复使用已经设置的物理场。在选择的组件中,添加一个网格导入操作并设置源:过滤器数据集和数据集:过滤器1,如下图所示。默认情况下,将选中“导入选择”复选框,以方便设置验证研究的物理场,这在上一节中已进行了讨论。这些选择列在“域选择”和“边界选择”下。对于此用途,建议仅导入边界网格单元并单独创建域网格(请参见下面的步骤),因为这样可以得到质量更好的网格。导入后将生成网格和导入的选择,如下图所示。用“过滤器” 数据集定义的拓扑优化结果创建的网格。原始组件的选择转移到了新网格。从“过滤器”数据集导入的网格是用于可视化的网格,因此对于模拟而言并不理想。为提高网格的质量,我们可以添加自适应 操作,并进行以下设置:解:无,表达式类型:绝对大小,大小表达式:meshsz/2,其中 meshsz 是一个已定义的参数,用于定义拓扑优化研究中的网格尺寸。表面网格大小适应表达式 meshsz / 2 设置

使用自适应操作之前(左)和之后(右)创建的表面网格实体信息也从过滤器 数据集转换过来,因此即使我们仅转换了面网格,也存在域。如果从文件导入表面网格,则还需要在继续下一步之前添加“创建域”操作,否则将没有域来画网格。最后,我们添加了一个自由的四面体 操作来构建域网格。要确保在“自由四面体 ”节点下方的“ 大小” 操作中设置适当的尺寸。这里,我们将预定义的网格大小设置为较细化并构建网格。现在,我们可以在验证研究中设置物理场了。

两种方式的比较

我们研究了基于过滤器 数据集创建几何或网格的可能性。那么,在选择这两种方式时,需要考虑什么呢?通过创建几何,可以确保非平面用弯曲单元表示,而直接从“过滤器”数据集创建的网格只能使用边界的分段线性表示。如果我们要解决的物理场高度依赖于弯曲边界的平滑性,则可能需要考虑创建几何。此外,通过创建几何图形,我们可以自由地对边界进行网格重划分,而直接在拓扑优化结果创建的网格求解时,则只能适应边界网格。另一方面,与仅使用网格相比,创建几何更加耗时且消耗更多计算机内存。此外,根据拓扑优化结果的形状,有时可能无法根据结果创建几何。例如,一个典型的情况是,代表较小或狭窄区域的粗糙网格,我们可能需要考虑直接在导入的网格上求解。

将二维几何图形导出到 CAD 软件

DXF 格式是大多数 CAD 软件平台都可以读取的二维格式。DXF 还描述了点之间的高阶多边形,因此与仅导出点相比,它通常可以更好的表示图形。从这个几何导出优化的拓扑结构到DXF文件,我们可以按照以下步骤操作。请注意,如果要在 DXF 文件中排除域,有一个可选择步骤。

  1. 从“ 几何”工具栏上的“ 布尔操作和分割”菜单中添加并集
  2. 输入所有对象
  3. 使用“删除实体”功能删除任何不需要的域(可选)
  4. 单击“几何”工具栏上的“导出”按钮,输入二维几何的 DXF 格式

如何将三维绘图数据以 STL,PLY 和 3MF 格式导出

在三维模式下执行拓扑优化后,我们通常通过创建设计变量图来查看最终形状,例如等值面图。在 COMSOL Multiphysics 中,可以从以下绘图功能中导出 STL、PLY 和 3MF 文件:

  • 等值面
  • 表面
  • 切面
  • 多切面
  • 辐射方向图

如果想要导出变形图,COMSOL 软件支持在绘图特征上添加“变形”节点。支架的拓扑优化结果。体图中的颜色表示总位移。该绘图数据可以直接用多种格式导出,以进一步在 CAD 软件中使用和进行3D打印。将数据导出为适当的文件格式非常简单,“ 支架—拓扑优化案例教程 中对此进行了演示。右键单击Plot Feature节点,选择添加要导出的绘图数据。在绘图 节点的结果“设置”窗口中,从文件类型下拉列表中选择STL二进制文件(* .stl),STL文本文件(* .stl),PLY二进制文件(* .ply),PLY文本文件(* .ply)或3MF文件(* .3mf)。绘制数据导出设置。支持在 CAD 软件和 3D 打印中使用的输出文件格式为 STL、PLY 和 3MF。3MF 和 PLY 文件还将包含所有网格节点的颜色数据。大多数 CAD 软件和 3D 打印平台都可以轻松读取导出的文件。

结语

如果要将实际的 CAD 工程图与优化的结果进行比较,则需要以可以导入到正在使用的 CAD 软件中的格式导出数据。DXF 格式(用于 2D)和 STL,3MF 和 PLY 格式(用于 3D)是广泛使用的格式,应该可以在许多软件平台中导入。本篇文章中,我们讨论了以 DXF,STL,3MF 和 PLY 格式导出拓扑优化结果所需的步骤。这将使我们将 COMSOL Multiphysics 和 CAD 软件联合使用更有效地分析模型几何。

推荐阅读

COMSOL 免费开放 15 个专题培训视频资料借助拓扑优化找出结构的最优设计如何在仿真研究中使用声学拓扑优化在 COMSOL 中将变形物体用作几何输入

本文内容来自 COMSOL 博客,点击“”,延伸文章。

comsol如何定义狄利克雷边界_如何使用拓扑优化结果创建几何模型相关推荐

  1. comsol如何定义狄利克雷边界_在变分问题中指定边界条件和约束

    在本博客系列的第一部分中,我们讨论了变分问题,并演示了如何在 COMSOL Multiphysics® 软件中使用简单的内置边界条件解决它们.今天,我们将讨论更通用的边界条件和约束,并展示如何使用第一 ...

  2. comsol如何定义狄利克雷边界_有限元分析(FEA)是个什么东东

    一.有限元能干什么 二.偏微分方程如何求解(有限元发明以前) 三.有限元法的基本思路 四.有限元法的数学基础--降维 五.如何获得"弱形式"的解 六.二维.三维有限元计算 一.有限 ...

  3. comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用

    在将真实的物理问题转化为仿真模型时,为了用有限的计算资源获得尽可能高的计算精度,考虑模型简化是必要的.模型简化的前提是所模拟的物理问题具有结构.材料属性及边界条件的对称性或均匀性,以此为基础,可通过特 ...

  4. comsol如何定义狄利克雷边界_COMSOL与Visual C++三维电阻抗有限元联合建模与仿真研究...

    COMSOL 与 Visual C++ 三维电阻抗有限元联合建模与仿 真研究 张 涛,章伟睿,徐灿华,代 萌,杨 滨,史学涛,董秀珍,付 峰 [摘 要] [ 摘要 ] 目的:充分利用 COMSOL 软 ...

  5. comsol with matlab 传热结构的拓扑优化

    想利用comsol with matlab 做一下传热结构的拓扑优化,已经在comsol中建好了几何模型以及物理场,请问接下来该如何在matlab中操作呀.

  6. 黑马程序员|C++教程(56 指针-指针的定义和使用_)

    黑马程序员|C++教程(56 指针-指针的定义和使用_) 一.56 指针-指针的定义和使用_ 来自 一.56 指针-指针的定义和使用_ 因为我通过了指针来间接的找到了之前a那块内存,是不是,那么也就是 ...

  7. 出“圈”的信域安全云网 重定义安全边界

    关注我们牛年牛气冲天 几年前,一家国外大牌的安全厂商在故宫里的某个庭院举办了一场战略发布会.就像故宫依靠其高墙深院保护着内部至高无上的皇权一样,传统的网络安全也是凭借由防火墙等筑起的安全边界,保护着内 ...

  8. 对极限定义的理解_宏观区间和微观区间_20160326

    对极限定义的理解_宏观区间和微观区间

  9. 双目标帕累托优化_结构力学中的优化分析(3) —— 结构优化分析

    引言 上文中,我们主要介绍了优化分析的基本类型. 蒙特遇见卡罗:结构力学中的优化分析(1) -- 优化方法基本概念​zhuanlan.zhihu.com 蒙特遇见卡罗:结构力学中的优化分析(2) -- ...

最新文章

  1. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
  2. Git分支高级管理[四]
  3. 电气期刊论文实现:基于改进遗传算法的电力机组组合(程序讲解)
  4. oracle设置临时表空间,Oracle临时表空间查看、添加临时表空间数据文件、修改默认临时表空间 方法!...
  5. Java讲课笔记28:Path接口和Files工具类
  6. 红魔5S将配备320Hz游戏肩键:让小白瞬间成为操控高手
  7. 【Spark】Spark 3.0 支持 event logs 滚动
  8. 玩转Go语言之数据类型转换
  9. [转]MySQL游标特性
  10. python定义字典对象时_python字典对与list对象组合使用小问题
  11. 利用Dbgview和OutputDebugString
  12. numpy随机抽样及各种分布函数详解
  13. python人民币转大写_Python人民币大写转换代码
  14. html 视频类插件,科技常识:HTML5视频播放插件 video.js介绍
  15. 5 steps to autotools GNU diction
  16. Android 圆圈统计图(支付宝饼图)
  17. VCC、 VDD、VSS、VEE 电压符号的解释
  18. 用python绘制熊猫图案_python – 有没有办法在ggplot中绘制一个熊猫系列?
  19. 场效应三极管及其放大电路(1)MOSFET详解
  20. Git 04 ---用Idea合并git分支

热门文章

  1. 什么是c语言内存编码,c语言内存泄露示例解析
  2. linux添加Mib库,Linux SNMP中的管理信息库(MIB)学习
  3. java 抽象接口_JAVA中的“抽象接口”
  4. php mysql占位符代码,php – 使用命名占位符设置PDO / MySQL LIMIT
  5. java可视化插件_java的WindowBuilder可视化插件
  6. 第二章简答_微观 第二章 效用论
  7. python将对象放入列表根据某个属性排升序_对python 对象列表根据某个属性排序的方法...
  8. 棋魂桌面壁纸图片|大火影视壁纸找高图
  9. 推荐:万能模板,十分钟打造电商首焦Banner
  10. 极其良心的设计导航网站