CFD 模拟软件有哪些?
据我所知,国内比较流行的通用商用程序还是 fluent(老牌的), cfx, star, adina(流固耦合和非线性上首屈一指,开发者是学术界大牛Bathe), comsol(有限元,声场分析有特色). acuSolve 是 hyperworks 收购的软件,开发者具有深厚的学术背景(Hughes的学生Fazin),(利益相关:我曾实习期间做过acuSolve的support),方法用的是有限元,计算收敛性上有一些优势,功能模块全面性上和FLUENT比有差距。Abaqus 也有开发了通用的流体计算模块,时间不久,不熟悉因此不予置评,但由于开发时间较短,所以相信和老牌的CFD商用软件还有些差距吧。另外,FLACS 在爆炸,安全行业经验较足。flow3d 擅长自由液面分析。PowerFLOW 用的是 LBM 方法,在解决一些普通CFD方法不能解决的问题时候有优势而且适合并行,但目前工程使用积淀还不够,所以前景还不明朗。等等等等。
计算精确性上面难以比较优劣,不同算法在不同问题上计算的精度是不同的。只能说对于任意问题,在模型合适,边界准确的情况下,商用软件至少都能给出很物理的答案。和实验结果吻合度上参数,单元,和模型选择很重要。在市场推广上则常常是公说公有理,婆说婆有理。比如在有限元计算软件的对比中,常有类似以下的说法,A软件算梁问题比B软件算的会偏刚一些。这些说法是不严谨的,A默认用的是一种单元,B默认用的是另一种单元,两者各有各的最佳应用情况,不能简单对比,从某一个算例的准确性推断某一个软件优于另一个软件。我实习期间参考过一份CFD软件对某一问题计算结果的对比报告,具体情况不便透知,但结论是四个CFD软件在计算同一问题,但雷诺数有所不同的情况下和实验结果吻合度上各有各的优势 (当然内部报告嘛,acuSolve 的结果是很好的,毕竟acuSolve 是以准确和鲁棒为卖点的嘛)。
国内整体上市场占有方面 fluent + CFX > star, comsol, adina, etc。一是历史原因(fluent 普及性高),二是和 ANSYS 的高占有率有关。哪个好?不好说,基本计算功能大家都有,全面和普适性,以及技术文档的丰富程度上 fluent+CFX 最好,但其它的软件也是各有特色的(如上)。在风电行业,汽车行业,ANSYS FLUENT/CFX 和 Star 的人都有。adina 在学术研究,生物力学,土木桥梁上有人用。acuSolve (以及它的简单版VWT虚拟风洞) 在国外汽车行业,石油平台有应用,国内推广时间短,还没有广泛应用。但某个行业内谁是主流还不好说,毕竟我不是做市场的,而且每个行业内甚至每个公司都有偏好。企业往往会在满足自己需求的前提下,考虑成本和各自工程师的工作经验等因素来选择软件。
回答Solidworks 的知友不知道是利益相关还是顺嘴说的,但反正我是不认同的。Solidworks, UG/Proe 这些软件在 CAD 行业是非常优秀的(Solidworks是我最喜欢的3D建模软件,丝毫没有黑它的意思),虽然目前这些公司也不遗余力地向 CAE 行业扩展,提供给设计师一个简单的计算平台,但要说主流,恐怕还差不少距离。在设计上,从CAD 到 CAE 再回到 CAD 有一个迭代优化改方案的过程。CAD工程师会用CAE工具是好事,可以为产品设计减少时间和经济成本。但往往这些软件照顾到 CAD 工程师对计算力学的理论知识的缺乏,相比传统CAE软件,会将模型和计算简单化,让它成为一个黑匣子,故帮助文档自然也不会涉及到很多理论的东西。但这里潜在的问题是:尤其是在 CFD 这个计算准确性难以保证,还常常缺乏实验数据的领域,而一个做计算的工程师不懂力学理论,不懂算法基础,如何确保自己的模型是符合实际的?如何说服自己和客户算的东西是对的呢?又如何谈 in CFD, we trust 呢? 同时永久限制CFD 这不是在黑CAD工程师,因为即使对CAE工作者而言,上述问题也是绕不开的坎。而是在说明设计师如果也懂计算,对力学基础有深入理解,做一个“全栈”工程师,是一件多么宝贵的事。
另外,最高票回答被折叠了,不知道为什么,可能是转载不规范吧。他的答案目前在网上已经流传比较广了,出处不明。据我所知,最早的一篇帖子在这里(需要有simwe论坛号码),由song-fengqiang 整理或者撰写,当然也不排除还有更早的。
Autodesk CFD: Simulation software for engineering complex liquid, gas, and air systems
Autodesk® CFD software creates computational fluid dynamics simulations that engineers and analysts use to intelligently predict how liquids and 同时永久限制CFD 同时永久限制CFD gases will perform. With CFD software, you can:
Customize setups with a user-friendly interface
Analyze heat transfer and fluid flow 同时永久限制CFD design
Enable scripting and automation with APIs
Autodesk CFD overview video (3:18 min.)
Why use Autodesk CFD?
Improve energy efficiency
Make critical design decisions that reduce energy consumption and improve efficiency.
Reduce failure risk
Solve potential failures during the design process to extend operational life of products and systems.
Minimize physical prototyping costs
Create digital prototypes with simulations to help reduce costly physical models.
What you can do with Autodesk CFD
Design systems with fluid, thermal, and motion insights
Autodesk CFD software provides engineers with a range of powerful tools for system design optimization. Simulate fluid flow and free surface movement, and analyze thermal impact for product design.
Optimize designs through a wide range of industry applications
Autodesk CFD software includes simulations to aid with:
- Electronic cooling
- Data center design
- Lighting design
- Machinery and valves
- AEC/MEP for HVAC design
“With the use of [Autodesk CFD], the amount of physical prototypes has reduced a lot.”
—Ismo Vaaraniemi, Product Development Engineer, Kytola Instruments
“Because [Autodesk CFD] is so intuitive, there is a minimal learning curve.”
—Japie van der Westhuizen, Senior Hardware Development Engineer, S-PLANE Automation (Pty) Ltd.
Frequently asked questions (FAQs)
What is Autodesk CFD used for?
Autodesk CFD software is used for simulating 3D fluid flow and heat transfer through computational fluid dynamics.
Who uses Autodesk CFD?
Autodesk CFD software is used by mechanical engineers who need fluid simulation to improve product performance. It is also used by HVAC system engineers who need tools to simulate efficiency of their building HVAC designs.
Can I install Autodesk CFD on multiple computers?
With a subscription to Autodesk CFD software, you can install it on up to 3 computers or other devices. However, only the named user can sign in and use that software on a single computer at any given time. Please refer to the Software License Agreement.
Support and learning
Get Autodesk CFD documentation, tutorials, downloads, and support.
Buy from Autodesk
When you buy direct from us, you get the best value and terms we 同时永久限制CFD 同时永久限制CFD have to offer. Our hotline team is happy to help. You can also place a purchase order by phone: 1-844-842-1674
Subscribe for 3 years and save
Purchase with Autodesk financing
Refer a friend and earn up to $250
Enjoy a 30-day money-back guarantee
Get expert advice before and after you subscribe
Buy with flexibility and security
See more reasons to buy with Autodesk
I agree that Autodesk may share my name and email address with $
开始使用适用于墨西哥的电子开票
启用 CFDI 墨西哥电子发票 (MX) 功能可能需要发送有限的数据,其中包括组织税务登记 ID。 这将被传输到税务机构授权的第三方机构,以便以与政府的 Web 服务集成所需的预定义格式向该税务机构发送电子发票。 管理员可以通过导航到 组织管理 > 设置 > 电子单据参数 来启用和禁用 CFDI 墨西哥电子发票 (MX) 功能。 选择 功能 选项卡,选择包含 CFDI 墨西哥电子发票 (MX) 功能的行,然后进行适当的选择。 从这些外部系统导入到此 Dynamics 365 在线服务的数据受我们的隐私声明的约束。 有关详细信息,请查阅国家/地区特定功能文档中的“隐私声明”部分。
如何使用 GPU 加速计算流体力学(CFD)?
用 Taichi 来加速流场求解中需要大规模并行运算的部分
为了让 Taichi 将求解部分的计算进行并行化处理,我们需要将流场数据保存成 Taichi 提供的 field 的形式。对于流体计算中经常出现的标量场和向量场,Taichi 都提供了对应的数据结构。比如一个 640x480 的由浮点数组成的标量场可以表示为:
类似的,一个 640x480 的 2 维向量场可以表示为:
除此之外,Taichi 中还提供了 Matrix 场以及自定义 Struct 场等更多丰富的数据结构,有兴趣的读者可以参阅官方文档的 field 的相关部分。
并行加速机制
假设我们要计算上面的 f_2d 这个标量场印加拉普拉斯算子的结果,我们可以先申请一个用来保存结果的场:
然后我们需要遍历f_2d_grad2中的元素,计算其在施加了拉普拉斯算子后的值。为了方便地遍历场中的元素,Taichi 提供了好用的 struct-for 语句:
不过上面的 struct-for 语句是 Taichi 的语法,并不能被 Python 处理。为了让 Taichi 来接管并加速这个计算,我们需要把上述计算包裹成一个 Taichi kernel:
这里的装饰器 @ti.kernel 就是所有 Taichi 加速魔法的入口,它的工作可以理解为接收并分析我们的函数代码,并返回一个自动并行化版本的函数:
最后当我们调用这个函数的时候,程序就会把控制从 Python 交入 Taichi 手中,并在多个核心上并行执行上述运算,从而达到大大提升计算速度的目的。
一、把物理问题转换成数学问题。本质上而言,CFD是为了求解一个偏微分方程,即N-S方程。为了去求解这样的一个方程,在确定一系列初始条件和边界条件之后可以对方程进行一些简化和近似。而后将物理平面的坐标切分成一系列的网格。随后再通过一系列的离散化方法,包括:有限差分法,有限体积法和有限元法,将连续的偏微分方程转化一个线性方程组的问题。上述的这些流程主要是搞应用(包括流体力学,航空航天,船舶汽车等)的同学接触比较多的东西。
二、数学求解的多种算法。在完成离散化之后,会得到一个巨大的稀疏的线性方程组。Ax=B。此时的A和b已经是已知量,需要求解x。关于这个方程的求解,最简单最基础的方法就是高斯消元法。但是高斯消元法对于处理大规模的线性方程组几乎是无能为力,其时间复杂度完全没有办法接受。为了求解这么一个问题,目前主流的方法是基于Krylov 子空间的迭代法,通过不断地迭代来接近真实解。Krylov 子空间的迭代法又包括:共轭梯度法(CG)、广义极小残差法(GMRES)、双共轭梯度法(BiCG)等等。这个部分主要是搞计算数学的同学接触得比较多。
三、把数学问题转换为计算机问题。在明确了算法之后,接下来就要考虑如何用计算机进行求解。这个代码应该怎么写?尤其是针对大规模的线性方程组应该如何求解。再回头来看看上面的线性方程组求解方法,算法很多,但最后都会变成一系列的底层的矩阵运算,包括:稀疏矩阵和向量的乘法操作(Spmv),两个向量的点积操作(dot)等。这个部分占据了CFD程序中绝大部分的运行时间。又由于这些矩阵操作有着天然的非常好的并行特性,所以特别合适用GPU等异构加速器进行线性求解器的加速。关于GPU的加速,就涉及到一系列偏计算机底层的东西,包括如何采用提高cache命中率,如何通过数据搬运减少数据访存,如何通过通信计算的overlap来提高计算效率。这主要是搞计算机的同学需要关注的地方。