0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在 CFD 设计中利用网格维护几何形状并减少运行时间?

jf_pJlTbmA9 来源:Cadence楷登PCB及封装资源中 作者:Cadence楷登PCB及封装 2023-11-24 17:07 次阅读

尽管计算机的处理能力不断提升,但依然有必要提高数值仿真的效率。在 CFD 仿真中,求解的质量在很大程度上取决于网格划分。网格间距如果不能求解流体变量的局部变化,就会引入离散化误差。另一方面,如果网格过于精细,就会增加不必要的计算时间和工作量。网格元素类型和数据结构也会影响生成网格所需的人力时间和技能,以及单位精度的成本。

wKgaomVddEWANdMkAACfqVG8-cY278.png

图 1. 基于局部误差和基于输出的自适应技术对比。

如图 1 所示,网格自适应(可以基于局部误差,也可以基于输出)是一种常用的技术,有助于提高仿真效率。非结构化的网格自适应技术用于缩小网格大小,以达到所需的求解精度。这种技术能够大大缩短处理时间,减少内存需求和所需的存储空间。然而,由于无法获得基础的 CAD 数据,自适应工具只限于提高体外网格的分辨率。

而 Fidelity CFD 中的网格自适应技术能够维护几何形状,提高网格质量,适应近壁剪切层,并减少运行时间,改善了 CFD 解决方案。

1. 网格自适应技术的设计挑战

使用网格自适应技术来提高网格质量会面临一些常见的挑战:

自适应无法求解正确的几何形状

大多数自适应程序都是内置在 CFD 求解器中的。因此,它们只是自动适应实际几何体(即现有几何体)的一个近似面。在适应之后,就为错误的几何体生成了理想网格。

自适应会降低局部细化网格的质量

许多自适应程序使用逐个击破的方法来充实网格,即把现有的网格元素局部划分为额外的元素。这种方法虽然编程起来比较方便,但会导致网格质量随着细化而不断下降,降低稳健性,增加运行时间,甚至可能增加离散性。

在流体变量梯度很大的近壁剪切层中

进行自适应面临重重挑战

简单粗暴地在近壁处使用各向同性的细化,会导致网格尺寸激增。一种常见的策略是采用拉伸四面体来解析墙面上的大梯度变量,而不对墙面进行过度细化。然而,这种方法会导致网格质量大幅度下降。

自适应程序常常导致运行时间过长

这是因为网格在某些方向或位置被过度细化,或者在自适应过程中网格质量下降,导致 CFD 求解器运行效果不佳,甚至难以决定何时停止细化程序。

2. Fidelity CFD 网格划分工具的优势

Fidelity Pointwise 是一个网格生成解决方案,在网格构建技术和网格风格方面提供了充分的灵活性。这种灵活性根植于 Fidelity CFD 网格划分工具的网格划分理念,使其能够涵盖广泛的工作流程。

Pointwise 网格自适应技术以协调的自动化方式将网格划分和求解步骤分离开来,能够根据变化中的流体解或基于应用目标对网格进行细化(如图 2 所示)。

wKgZomVddEeASlzLAAMdKerZZ6s984.png

图 2. 针对两个不同目标对菱形机翼进行网格自适应,即适应阻力(左)和适应冲击传播(右)。

这款自动网格细化工具只用于网格存在缺陷的区域。首先创建一个基线流体解,通过使用该流体解,估计与网格尺寸缺陷相对应的误差。这个步骤要重复多次,以便更好地控制网格离散化误差。对于高质量的 CFD 网格划分,这种方法也可以用于体外的体素网格划分,以便体外特征实现均一、出色的分辨率,特别是捕捉尾流区域时。

在图 3 中,使用网格自适应工具对轿车的尾流剪切层网格进行了精细处理。

图 3:网格细化,以定义体外特征。

3. 总结

Fidelity Pointwise 网格自适应工具:

适应基础几何形状

有效求解边界层区域内的网格

有效控制适应速率,逐步提高网格质量

减少运行时间

本文转载自: Cadence楷登PCB及封装资源中心微信公众号

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CFD
    CFD
    +关注

    关注

    1

    文章

    109

    浏览量

    18376
  • 网格
    +关注

    关注

    0

    文章

    139

    浏览量

    15999
收藏 人收藏

    评论

    相关推荐

    影响逆变器电池状态的原因,整体运行时间

    逆变器的使用需要了解影响电池性能和整体运行时间的因素。让我们深入探讨最大化电源设置的关键考虑因素。逆变器效率:逆变器的效率至关重要。当逆变器将电池的DC电能转换为交流
    的头像 发表于 10-18 10:41 231次阅读
    影响逆变器电池状态的原因,整体<b class='flag-5'>运行时间</b>

    C2000™MCU的运行时堆栈大小监测

    电子发烧友网站提供《C2000™MCU的运行时堆栈大小监测.pdf》资料免费下载
    发表于 09-11 09:30 0次下载
    C2000™MCU的<b class='flag-5'>运行时</b>堆栈大小监测

    三菱plc累计运行时间怎么编程

    具有重要意义。本文将详细介绍如何使用三菱PLC编程实现累计运行时间的统计功能。 一、概述 累计运行时间是指设备或系统在一定时间内的总运行时间。在工业生产中,对设备的累计
    的头像 发表于 06-20 11:31 2103次阅读

    请问esp-idf 5.0如何在运行时调节MCPWM的定时器频率?

    idf5.0只提供了创建MCPWM时通过结构体mcpwm_timer_config_t初始化定时器频率的方法,没有提供类似v4.0版本的mcpwm_set_frequence()函数。 如何在运行时调节MCPWM的定时器频率?
    发表于 06-12 07:14

    变频器带动电机运行时发抖的原因及处理方法

    变频器作为现代工业控制领域的重要设备,广泛应用于电机调速控制。然而,在实际应用,有时会遇到变频器带动电机运行时产生抖动的问题。这种抖动不仅影响电机的正常运行,还可能对生产效率和设备
    的头像 发表于 05-31 14:43 5319次阅读

    何在运行时从HSM对SWAP UCB进行编程?

    不知道的限制? 我已确认可以通过 HSM 对 DFLASH 和 PFLASH 进行编程。 是否有示例代码说明如何在运行时从 HSM 对 SWAP UCB 进行编程?
    发表于 05-31 06:37

    STM8S在IAR软件仿真Simulator怎么查看运行时间

    STM8S 在IAR软件仿真Simulator怎么查看运行时间?在某些芯片通信时,会要求延时5us,10us,150ms等,这些延时不需要太精确,只要大概就好,但怎么在Simulator仿真里能通过断点查看,即两个断点之间的运行时间呢? 除了通过IO输出外围用仪器测试,能
    发表于 05-09 07:48

    stm32cubeIDE代码运行时间如何查看?

    stm32cubeIDE 代码运行时间,如何查看?就如 keil 调试时候那样,可以测试代码的运行时间。但是在stm32cubeIDE ,一直没有找到这个功能,不知道哪位高人可以提示下在哪里查看的?
    发表于 04-16 08:10

    何在运行时更改输入和输出之间的GPIO配置?

    正在探索如何在运行时更改输入和输出之间的 GPIO 配置。 我无法计算TESTBOARD_150PC_OUT缓冲区的效果:CY_GPIO_DM_PULLUP_IN_OFF
    发表于 03-05 06:20

    何在运行时计算设计中使用的时钟频率?

    我想知道如何在运行时计算设计中使用的时钟频率(设计使用时钟组件),尤其是组件内部的时钟,例如 UART。 例如,使用 clock_getSourceRegister () 返回
    发表于 01-24 06:09

    何在运行时擦除/编程UCB?

    试着在相关的 UCB 上使用 DFLASH 算法,然后我用砖砌了我的单位。 是否有专门针对如何在运行时擦除/编程 UCB?
    发表于 01-22 07:18

    CFD 设计利器:结构化和非结构化网格的组合使用

    CFD的发展历史,结构化网格出现最早,至今仍在使用。结构化网格有几个主要优点,如精度高、生成速度快、单元分布均匀。有些工具擅长绘制这类网格
    的头像 发表于 12-23 08:12 1686次阅读
    <b class='flag-5'>CFD</b> 设计利器:结构化和非结构化<b class='flag-5'>网格</b>的组合使用

    jvm运行时内存区域划分

    JVM是Java Virtual Machine(Java虚拟机)的缩写,它是Java编程语言的运行环境。JVM的主要功能是将Java源代码转换为机器代码,并且在运行时管理Java程序的内存。JVM
    的头像 发表于 12-05 14:08 500次阅读

    redis容器运行时间久了会自动执行flushdb

    Redis是一种开源的内存数据库,常用于缓存、消息传递、持久化等场景。在Redis,flushdb命令用于清空当前数据库的所有数据。然而,Redis容器的运行时间并不会自动触发flushdb命令
    的头像 发表于 12-05 10:12 890次阅读

    西门子SCL编程50台电机运行时间累计方法

    当RUN信号为TRUE时,开始计时,为FALSE时停止计时,单次运行时间清零,长按RESET为5秒时,单次和总运行时间都清零。
    发表于 11-27 09:59 1751次阅读
    西门子SCL编程50台电机<b class='flag-5'>运行时间</b>累计方法