当前位置: 首页 > news >正文

使用 Adaptive Mesh Refinement 加速 CFD 仿真:最佳实践

CFD 仿真中的网格划分挑战

技术的进步正在增强设计探索,数值仿真在优化工程设计方面发挥着至关重要的作用。通常,计算流体动力学 (CFD) 仿真从定制的手工网格开始,具有精细和粗糙的区域,以平衡分辨率和单元数量,从而在关键区域获得准确的结果。但是,制作高质量的网格可能非常耗时,因为预测重要现象将发生的位置通常很困难。这种不可预测性可能会导致在非关键领域进行不必要的优化。手动创建的网格如果过度细化,则可能导致单元计数过多和求解时间延长,如果细化不足,则结果不准确。

基于网格的方法中的仿真结果质量在很大程度上取决于网格的特性。网格质量差会对计算效率产生负面影响,增加计算时间,并导致解不稳定。此外,CFD 网格的质量取决于几何细节,需要仔细调整网格参数。最佳网格应至少改善一个关键仿真属性,例如收敛时间、稳定性或精度,而不会对其他属性产生不利影响。

 

Ansys Fluent 解决方案:自适应网格细化

网格划分可以是均匀的,也可以是非均匀的,自适应网格划分是工程仿真中常见的非均匀技术。静态网格划分使精细区域和粗糙区域保持不变,而网格适应会随着时间的推移修改网格以提高分辨率。在 CFD 分析中,在自适应网格细化 (AMR) 和静态细化之间进行选择会影响精度和效率。自适应网格划分根据求解特性调整各个区域的密度,使您能够从非常粗糙的网格开始,并动态细化具有高梯度的区域。

在 Ansys 中,基于解的网格自适应根据数值解修改粗网格,从而有效地捕获局部现象。Ansys Fluent 提供了用于自定义自适应字段的工具。 Ansys Fluent 中的动态网格自适应可以与多面体非结构化网格自适应 (PUMA) 方法集成,该方法不依赖任何模板进行 3D 细化,为各种单元类型提供灵活性。此外,细化后可以粗化网格。

解自适应细化将单元精确地放置在网格中,从而提高流场精度。如果使用得当,它通过根据解指导单元放置来创建最佳网格,通过专注于关键区域来降低计算成本。 通过这种方法,

  • 与静态手动网格细化不同,通过避免添加不必要的单元来节省计算资源。
  • 无需完全重新生成网格,即可检查网格细化对解的影响。

在具有复杂几何形状或瞬态事件的制造过程中,AMR 通过精细离散具有陡峭梯度或高湍流的区域来提高仿真精度,同时避免计算费用大幅增加。

 

自适应网格细化的最佳实践

在 Ansys Fluent 中,解决方案自适应优化具有显著优势。但是,谨慎行事以防止潜在问题至关重要。以下是有效利用自适应网格细化的一些准则:

  • 表面网格应足够精细,以准确捕获几何结构的基本特征。如果几何结构包含弯曲的边界和尖角,则网格适应后单元数会增加,但弯曲域的边界会保留其原始形状,并使用初始网格创建角。因此,如果几何体具有带有粗网格的弯曲轮廓和尖角,则调整后的网格可能无法完全恢复几何体周边的弯曲轮廓和拐角。

    在曲面上放置太少的节点并依靠自适应优化来添加更多节点并不是一个好的做法。在网格适应过程中,横截面积保持不变,因此默认的适应函数将增加单元数,但弯曲域的边界仍然会出现尖角。如图所示,曲面将保留初始网格中的小平面(在本例中为 8 个红色段),而不管通过细化到原始节点(标记为蓝色)添加的任何其他节点(标记为绿色)。

例如

56161cbd6df741ceba4914c07ce94b10.png 

在处理具有弯曲轮廓和尖角的几何的粗化网格时,调整后的网格可能无法在几何的边缘准确捕获这些特征。在这种情况下,在适应过程进行时,可以采用基于几何结构的适应来重建或恢复几何结构的更精细细节。这个主题将在下一篇博客 [1] 中介绍。

  • 初始网格必须包含足够的单元,以有效地捕获流场的基本特征。为了成功适应网格,从高质量的初始网格开始至关重要,尤其是在具有陡峭坡度的复杂区域中。如果初始网格太粗糙,它可能无法准确捕获流动的重要特征,尤其是在几何结构发生突然变化的区域,从而导致高梯度。在这种情况下,适应过程可能会降低网格的质量,而不是增强网格。粗网格不足会导致限制边界周围出现非最佳条件,从而产生高纵横比单元,从而可能影响梯度精度并影响预测。

  • 例如,确保壁上边界层的充气层数量足够,并且主流的单元数量合适,这对于精确的压降测量至关重要。如下图所示,使用基于边界层和压力梯度的网格自适应导致高纵横比单元,影响梯度精度,与未自适应的情况相比,网格自适应未能提高压降计算的精度。

 28ef19442da94c83af4fc0e5c12bbc94.png

  • 在开始适应之前,请确保解决方案收敛良好,因为调整不正确的解决方案可能会导致流区域分配错误。平衡是关键:过早适应会导致问题,而不必要地继续迭代会浪费时间。这种担忧对于自动适应来说不太重要,因为自动适应会根据求解器以固定的间隔调整解。

  • 根据流动条件选择合适的变量进行梯度调整。 对于不可压缩的流动,平均速度梯度通常更合适。然而,将压力梯度纳入边界层适应可以有效地细化压力变化显著的区域。在湍流剪切流中,优先考虑湍流参数梯度,而在反应流中,关注温度或反应物质浓度等变量。

  • 避免在溶液结构域的任何特定区域进行过度精炼,因为这会导致细胞体积出现较大的梯度。这种糟糕的适应做法可能会对解决方案的准确性产生负面影响。

     

案例研究

自适应网格细化 (AMR) 已成功应用于各种制造场景,从航空航天组件设计到汽车发动机仿真。例如,在航空航天工业中,AMR 已被用于提高飞机机翼周围气流模拟的准确性,从而更好地预测空气动力学性能并提高燃油效率。

Ansys Fluent 引入了基于误差的适应标准,即基于 Hessian 的指示器,它根据解中相对于网格尺寸的局部误差来识别单元,通常用于高超音速问题。例如,在预测超音速流中钝体周围激波的形成时,初始网格必须具有足够的单元和足够的分辨率,以准确描绘体的形状。随后的梯度适应可以优化冲击并实现不依赖于网格的解。

 8d445e0765ca4126b54af53cf8ddb935.png

5a61ed6f59e94e5eb8327af2ebc39c66.png

 

同样,在汽车行业,AMR 促进了对发动机内燃烧过程的更精确模拟,有助于开发更高效、更环保的车辆。这些案例研究突出了 AMR 在提高仿真保真度和支持制造流程创新方面的实际优势。

网格自适应有助于模拟多相场景,例如液体射流分解。VOF 到 DPM 混合模型与动态网格自适应相结合,可跟踪液气界面并将分离的液块转换为点质量,从而减少对精细网格的需求。这里也可以使用自适应网格粗化来加快运行速度。 动态网格细化和粗化通过在将 blob 传输到 DPM 模型后粗化网格来管理单元计数。

 

Ansys Fluent 的网格自适应设置面板中嵌入了燃烧和多相应用的最佳实践,从而将稳态情况下的单元数量减少多达 70%,并将速度提高 4 倍。

 细胞计数减少加速
Sandia Flame D 测试案例30-70% 
燃烧和多相应用最高 70%高达 4 倍

 

相关文章:

使用 Adaptive Mesh Refinement 加速 CFD 仿真:最佳实践

CFD 仿真中的网格划分挑战 技术的进步正在增强设计探索,数值仿真在优化工程设计方面发挥着至关重要的作用。通常,计算流体动力学 (CFD) 仿真从定制的手工网格开始,具有精细和粗糙的区域,以平衡分辨率和单元…...

前端-动画库Lottie 3分钟学会使用

目录 1. Lottie地址 2. 使用html实操 3. 也可以选择其他的语言 1. Lottie地址 LottieFiles: Download Free lightweight animations for website & apps.Effortlessly bring the smallest, free, ready-to-use motion graphics for the web, app, social, and designs.…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之5

本文要点 前端 问题描述语言 本文继续完善 “描述” ---现在我们应该可以将它称为 “问题problem描述语言 ”。 它 通过对话框的question 引发 表征的issue 的“涌现” 最终 厘清应用程序的“problem”。即它合并了 ISO七层模型中的上面三层,通过将三层 分别形成…...

java web

流程 1.浏览器发送http协议的格式数据和url给服务器软件tomcat 2.浏览器解析http格式数据并创建request和response对象,把数据封装到request对象里。 3.tomcat解析url确定访问路径,如果是静态资源html等,直接将html数据作为http格式响应体返回&#x…...

【嵌入式软件开发】嵌入式软件计时逻辑的两种实现:累加与递减的深入对比

本文主要从四个方面详细阐述了嵌入式软件编程中计时逻辑的两种实现方式:累加和递减。让我为您详细解析各个部分: 1. 基本概念对比 累加方式 从0开始向上计数每个周期增加固定值(通常为1)类似于我们日常生活中的秒表计时方式递减方式 从预设值开始向下计数每个周期减少固定…...

如何将vCenter6.7升级7.0?

vCenter是什么? vCenter是一种虚拟化管理软件,由VMware公司开发和发布。它是VMware vSphere虚拟化平台的核心组件之一,主要用于集中管理和监控虚拟化环境中的虚拟机、虚拟存储和网络资源。vCenter可以实现对多个ESXi主机的集中管理&#xff…...

服务器网卡绑定mode和交换机的对应关系

互联网各领域资料分享专区(不定期更新): Sheet 模式类别 网卡绑定mode共有七种(0~6): bond0、bond1、bond2、bond3、bond4、bond5、bond6 mode详解 mode0 ,即:(balance-rr) Round-robin policy(平衡轮循环策略,需要配置交换机静态聚合) mode…...

Maven (day04)

什么是maven? Maven 是 Apache 旗下的一个开源项目,是一款用于管理和构建 java 项目的工具。 官网:Welcome to Apache Maven – Maven https://maven.apache.org/ Maven的作用 依赖管理(方便快捷的管理项目依赖的资源(jar包)&#xff…...

Echart实现3D饼图示例

在可视化项目中,很多地方会遇见图表;echart是最常见的;这个示例就是用Echart, echart-gl实现3D饼图效果,复制即可用 //需要安装,再引用依赖import * as echarts from "echarts"; import echar…...

UE5 Debug的一些心得

1、BUG粗略可分为两类: 一种是显性的,编译直接就通不过,必须马上解决。 第二种是隐性的,新功能完成后,编译成功顺利运行,洋洋自得,而问题隐藏在幕后,测试之后才逐渐发现有问题&…...

java中多线程的一些常见操作

Java 中的多线程是通过并发编程来提高应用程序的效率和响应速度。Java 提供了多个机制和类来支持多线程编程,包括继承 Thread 类、实现 Runnable 接口、使用线程池等。以下是 Java 中一些常见的多线程操作和应用场景。 1. 创建线程 1.1 通过继承 Thread 类创建线程…...

【gopher的java学习笔记】什么是Spring - IoC和DI

一聊到java,离不开的一个东西就是spring;当我想了解什么是spring的时候,一查,基本上都是围绕着两个词来展开的:IoC和AOP。 对于我自己来说,AOP我觉得比较好理解,因为不管是之前写golang还是pyt…...

【开源免费】基于SpringBoot+Vue.JS校园社团信息管理系统(JAVA毕业设计)

本文项目编号 T 107 ,文末自助获取源码 \color{red}{T107,文末自助获取源码} T107,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

设计模式 创建型 工厂模式(Factory Pattern)与 常见技术框架应用 解析

工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种封装对象创建过程的方式,使得对象的创建与使用分离,从而提高了系统的可扩展性和可维护性。 一、核心思想 工厂模式的核心思想是将“实例化对象”的操作与…...

pip 下载安装时使用国内源配置

pip 是 Python 的包管理工具,用于安装和管理第三方库。然而,在某些情况下,默认的 PyPI(Python Package Index)源可能由于网络原因导致下载速度慢或者连接不稳定。幸运的是,我们可以轻松地配置 pip 使用国内…...

【数据结构】数据结构简要介绍

数据结构是计算机科学中用于组织、管理和存储数据的方式,以便于高效地访问和修改数据。 数据结构的分类: 数据结构可以大致分为两类:线性结构和非线性结构。 1. 线性结构 线性结构中的数据按顺序排列,每个元素有唯一的前驱和后…...

数据分析-Excel

数据类型和函数初步 Excel中有文本类型和数值类型–但是无法用肉眼分辨出来isnumber来区分是否是数值类型text和value函数可以完成数值类型以及文本类型的转换单元格第一位输入’方式明确输入的是文本sum函数必须是数值类型 文本连接-and-or-not-if-mod-max函数 字符串的连接…...

Yocto项目—机器配置文件详解

引言 在Yocto项目中,机器配置文件(Machine Configuration File)是系统定制化的重要组成部分,直接决定了构建的目标平台硬件特性和能力。本文将深入探讨Yocto项目中的机器配置文件,从其作用、结构到具体配置方法&#…...

30天开发操作系统 第 10 天 -- 叠加处理

前言 得益于昨天的努力,我们终于可以进行内存管理了。不过仔细一看会注意到,bootpack.c都已经有254行了。笔者感觉这段程序太长了,决定整理一下,分出一部分到memory.c中去。(整理中)…好了,整理完了。现在bootpack.c变…...

第十讲 比特币的社会与文化影响

比特币作为一种革命性的数字货币,不仅在经济领域产生了深远的影响,也在社会和文化层面引发了广泛的讨论和变革。本文将探讨比特币如何塑造我们的社会观念、文化趋势以及对未来的展望。 一、比特币与社会观念的变迁 比特币的出现挑战了传统的货币观念和…...

Unity2D无限地图的实现(简单好抄)

说明:本教程实现的是在2D游戏中玩家在游戏中上下左右移动的时候自动进行地图拼接的功能,如果你只想实现左右移动的无限地图,那么这篇博客也能起到一定参考作用。 思路 第一步: 创建一个10*10的2D游戏对象当做地图 第二步创建一个…...

TCP网络编程(一)—— 服务器端模式和客户端模式

这篇文章将会编写基本的服务器网络程序,主要讲解服务器端和客户端代码的原理,至于网络名词很具体的概念,例如什么是TCP协议,不会过多涉及。 首先介绍一下TCP网络编程的两种模式:服务器端和客户端模式: 首先…...

03-类和对象(上)

一、类的概述 1.类的引入 类的封装:将数据和方法封装在一起,加以权限区分,用户只能通过公共方法访问私有数据。 为什么要将数据和方法封装在一起呢,而且还要通过公共方法才能访问私有数据? C语言中数据和方法分开可…...

PCL点云库入门——PCL库点云滤波算法之统计滤波(StatisticalOutlierRemoval)

1、算法原理 统计滤波算法是一种利用统计学原理对点云数据进行处理的方法。它主要通过计算点云中每个点的统计特性,如均值、方差等,来决定是否保留该点。算法首先会设定一个统计阈值,然后对点云中的每个点进行分析。如果一个点的统计特性与周…...

【机器学习】Kaggle实战信用卡反欺诈预测(场景解析、数据预处理、特征工程、模型训练、模型评估与优化)

构建信用卡反欺诈预测模型 建模思路 本项目需解决的问题 本项目通过利用信用卡的历史交易数据,进行机器学习,构建信用卡反欺诈预测模型,提前发现客户信用卡被盗刷的事件。 项目背景 数据集包含由欧洲持卡人于2013年9月使用信用卡进行交的…...

【RISC-V CPU debug 专栏 4 -- RV CSR寄存器介绍】

文章目录 Overview1. CSR寄存器访问指令2. 为何CSR地址不是4字节对齐(1) CSR寄存器空间是独立的地址空间(2) 节省编码空间(3) 对硬件实现的简化 3. CSR的物理大小和对齐无关4. RISC-V 中的 GPR 寄存器及其作用GPR 的详细用途CSR(控制状态寄存器)与 GPR 的…...

Object.defineProperty() 完整指南

Object.defineProperty() 完整指南 1. 基本概念 Object.defineProperty() 方法允许精确地添加或修改对象的属性。默认情况下,使用此方法添加的属性是不可修改的。 1.1 基本语法 Object.defineProperty(obj, prop, descriptor)参数说明: obj: 要定义…...

postgresql函数创建

postgresql的函数创建 1.创建函数的基本语法: CREATE [OR REPLACE] FUNCTION function_name(parameter_list) RETURNS return_type AS $$ BEGIN -- 函数体 END; $$ LANGUAGE language_name;2.创建函数时传入参数示例:add_user tbl_user表 | id | username | …...

ECMAScript 变量

文章目录 前言一、ECMAScript 变量二、var 关键字1、var 声明作用域2、var 声明提升(hoist)三、let 关键字四、const 关键字🔰 总结前言 任何语言的核心所描述的都是这门语言在最基本的层面上如何工作,涉及 语法、操作符、数据类型以及内置功能,在此基础之上才可以构建复…...

CAN总线波形中最后一位电平偏高或ACK电平偏高问题分析

参考:https://zhuanlan.zhihu.com/p/689336144 有时候看到CAN总线H和L的差值波形的最后一位电平会变高很多,这是什么原因呢? 实际上这是正常的现象,最后一位是ACK位。问题描述为:CAN总线ACK电平偏高。 下面分析下原因…...