华为发布的工业软件三大难题:面向CAE分析的高质量曲面贴体网格的生成问题

以下内容转载:

网格生成,是把一个特定的研究区域分割成由许多很小的子区域(元素),以满足一些特定的要求。在理想的情况下,网格中的每个元素的形状和分布可以通过一种自动的网格生成算法来确定。

结构网格生成的代数网格生成法和微分方程法

非结构网格生成的Delaunay 生成法和前沿推网格生成法加粗样式等
 

根据网格的连接关系来区分,主要有两大类结构化网格和非结构化网格。
结构化网格主要是指对每一个网格节点,其对邻接的其他节点的连接数是一定的或有规则的对一些网格,可能会有一线部分节点与其他节点的连接数是不同的。
非结构化网格是指的每一个网格节点与其他节点的连接关系是不确定的或不规则的。
 

PDE:偏微分方程。

PDE包含未知函数的偏导数(或偏微分)的方程。方程中所出现未知函数偏导数的最高阶数,称为该方程的阶。在数学、物理及工程技术中应用最广泛的,是二阶偏微分方程,习惯上把这些方程称为数学物理方程。


网格生成技术干嘛的?

计算流体动力学中,按一定规律分布于流场中离散点的集合称为网格,产生这些节点的过程就称为网格生成。
网格生成是连接几何模型和数值算法的纽带,几何模型就只有被划分成一定标准的网格时才能对其进行数值求解。一般而言,网格划分越密,得到的结果就越精确,但耗时也越多。数值计算结果的精度及效率主要取决于网格及划分时所采用的算法,它和控制方程的求解是数值模拟中最重要的两个环节。网格生成技术已经发展成为流体机械CFD的一个重要分支。现有的网格生成方法主要分为结构化网格、非结构化网格和混合网格三大类。

根据偏微分方程的类型可分为求解椭圆型偏微分方程、求解双曲型偏微分方程和求解抛物线型偏微分方程的网格生成方法

网格生成和求解技术是计算流体力学数值模拟的关键
 

计算流体力学(Computational Fluid Dynamics,CFD)是一门利用离散化网格技术和数值计算方法求解流动控制方程
 

原文链接:开一个新坑(记录向)_结构网格和非结构网格的区别-CSDN博客

华为发布的工业软件三大难题:面向CAE分析的高质量曲面贴体网格的生成问题

技术背景:

高质量曲面网格生成是网格生成技术中核心而关键的一环。现有主流网格生成算法基于的理论完备性存在缺陷,无法保证自动生成高质量网格。为了满足工业界的巨大需求,现有软件或是以大量的人工干预(强交互型软件)换取高质量,或是以牺牲部分精度为代价来换取高效率。因此,基于完备理论的可全自动生成高质量贴体曲面网格的算法具有重要的研究价值。

技术挑战:

在保证网格质量和贴体性的前提下,实现网格全自动生成面临挑战。

  1. 贴体性控制
  2. 奇异点构型自动创建
  3. 网格的正交性控制
  4. 网格质量全局优化算法(克服局部最优陷阱)
  5. 代码复杂度控制(高网格生成效率)

技术诉求:

1、效率

全自动,零人工干预

2、贴体性(几何逼近)

和主流商软相比,贴体性提升20%

3、网格质量

(1)三角形长宽比 <5

(2)三角形内角最小值 >30°

(3)三角形内角最大值 <100°

(4)三角形偏斜度 >60°

(5)四边形长宽比 <5

(6)四边形内角最小值 >45°

(7)四边形内角最大值 <120°

(8)四边形偏斜度 >60°

(9)四边形翘曲度 <10°

(10)四边形雅可比 >0.7

参考文献:

[1] Frey, Pascal & George, Paul. (2008). Mesh Generation: Application to Finite Elements: Second Edition. 10.1002/9780470611166.

[2]  Timothy J. Baker, Mesh generation: Art or science?, Progress in Aerospace Sciences, Volume 41, Issue 1,2005, Pages 29-63.

[3] Bommes, D., Lévy, B., Pietroni, N., Puppo, E., Silva, C., Tarini, M., & Zorin, D. (2021). Quad Meshing and Processing: A Survey. Computer Graphics Forum, 40(2), 287-324. doi: 10.1111/cgf.14209

[4] S.H.LO (1985),A new mesh generation scheme for arbitrary planardomains,Int.J. Numer. Methods Eng., 21,1403-1426.

[5]  Lee, D. T., & Schachter, B. J. (1980). Two algorithms for constructing a Delaunay triangulation. International Journal of Computer & Information Sciences, 9(3), 219-242.

[6]  Klberer F, Nieser M, Polthier K. QuadCover - Surface Parameterization using Branched Coverings[J]. Computer Graphics forum, 2007, 9:375-384.

[7] Li, Huibin & Zeng, Wei & Morvan, J. - M. & Chen, Liming & Gu, Xianfeng. (2013). Surface Meshing with Curvature Convergence. IEEE transactions on visualization and computer graphics. 20. 10.1109/TVCG.2013.253.

[8]  Xianfeng David Gu. Feng Luo. Jian Sun. Tianqi Wu. "A discrete uniformization theorem for polyhedral surfaces." J. Differential Geom. 109 (2) 223 - 256, June 2018. 

[9] Zheng X, Zhu Y, Lei N, et al. Quadrilateral Mesh Generation III: Optimizing Singularity Configuration Based on Abel-Jacobi Theory[J]. Computer Methods in Applied Mechanics and Engineering, 2021, 387:114-146.

联系人:吴瑾    lion.wujin@huawei.com

原文链接:面向CAE分析的高质量曲面贴体网格的生成问题--中国科学院数学与系统科学研究院-华为 π实验室

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/309362.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教程】Typecho Joe主题开启并修复壁纸相册不显示问题

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 Joe主题本身支持“壁纸”功能&#xff0c;其实就是相册。当时还在网上找了好久相册部署的开源项目&#xff0c;太傻了。 但是网上教程很少&#xff0c;一没说如何开启壁纸功能&#xff0c;二没说开启后为…

【c++】使用vector存放键值对时,明明给vector的不同键赋了不同的值,但为什么前面键的值会被后面键的值给覆盖掉?

错误描述 运行程序得到结果如下图所示&#xff08;左边是原始数据&#xff0c;xxml文件中真实数据的样子&#xff0c;右图是程序运行得到的结果结果&#xff09;&#xff1a; 对比以上两图可以发现&#xff0c;右图中两个实例的三个属性值都来自左图中的第二个User实例&#x…

MFC - 类封装 - 取工程内部的程序版本信息

文章目录 MFC - 类封装 - 取工程内部的程序版本信息概述class用法class实现 - CInternalVersionInfo.hclass实现 - CInternalVersionInfo.cpp设置程序标题END MFC - 类封装 - 取工程内部的程序版本信息 概述 在整理程序内部显示版本信息相关的实现. 程序在开发中的时候, 随便…

【jdk与tomcat配置文件夹共享防火墙设置(入站出站规则)】

目录 一、jdk与tomcat配置 1.1 jdk配置 1.2 tomcat配置 二、文件夹共享 2.1 为什么需要配置文件夹共享功能 2.2 操作步骤 2.2.1 高级共享 2.2.2 普通共享 2.3 区别 三、防火墙设置&#xff08;入站规则&出站规则&#xff09; 3.1 入站规则跟出站规则 3.2 案例…

Flask笔记

一&#xff1a;模板渲染 一般的话都序列化成字符串 二&#xff1a;项目拆分 2.1 项目拆分 app.py init.py views.py models.py 模型数据 2.2 蓝图 三&#xff1a;路由参数 3.1 String 重点 3.2 int 3.3 path 3.4 UUID 3.5 any 四&#xff1a;请求方式 五&#xff1a;Requ…

oracle-sga-shared_pool

shared pool 缓冲sql语句和执行计划 shared pool由三部分组成 free libray&#xff1a;缓存sql执行计划 row cathe &#xff1a;缓存数据字典 硬解析&#xff1a;1判断语法2判断对象是否存在3有没有权限4 从n个执行方案中选出最优解&#xff0c;生成执行计划&#xff0c;这一…

C#的checked关键字判断是否溢出

目录 一、定义 二、示例&#xff1a; 三、生成&#xff1a; 一、定义 使用checked关键字处理溢出。 在进行数学运算时&#xff0c;由于变量类型不同&#xff0c;数值的值域也有所不同。如果变量中的数值超出了变量的值域&#xff0c;则会出现溢出情况&#xff0c;出现溢出…

【Echarts】使用echarts和echarts-wordcloud生成词云图

一、下载echarts和echarts-wordcloud 地址&#xff1a;https://download.csdn.net/download/qq_25285531/88663006 可直接下载放在项目中使用 二、词云数据 词云数据是对象的格式&#xff0c;可以从后端获取&#xff0c;这里以下面数据为例 $list3 array(array(name >…

Python学习 - 爬虫系统架构设计

主要业务流程 初始请求请求过滤器请求队列响应下载器数据解析器数据清洗器存储器 设计图 master slave&#xff1a;master控制队列&#xff0c;过滤&#xff0c;传递任务&#xff1b;slave负责执行 缺点&#xff1a;master和slave端交互数据频繁&#xff0c;slave的数据进出…

如何理解Go语言的数组

什么是数组 首先下一个定义&#xff0c;数组是对线性的内存区域的抽象。高维数组和一维数组有着同样的内存布局。&#xff08;大学生考试的时候别借鉴哈&#xff0c;这是自己下的定义&#xff0c;相当于是一篇议论文的论点。&#xff09; 线性的内存区域说白了就是连续的内存…

【Kubernetes】什么是 kubectl ?

什么是 kubectl &#xff1f; 1.什么是 kubectl &#xff1f;2.Kubernetes 内部结构3.Kubernetes API 的作用 1.什么是 kubectl &#xff1f; 在学习如何更有效地使用 kubectl 之前&#xff0c;您应该对它是什么以及它如何工作有一个基本的了解。从用户的角度来看&#xff0c;…

贪心算法—会议安排

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 1 安排会议1 题目描述2 解决思路3 代码实现 &#x1f48e;总结 1 安排会议 1 题目描述 一些项目要占用一个会议室宣讲&#xff0c;会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间 你来…