首页 > 【小白的CFD之旅】16 流程

【小白的CFD之旅】16 流程

那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知。不过小白不是那种遇到挫折就退缩的人,他决定沿着黄师姐的方法从软件入手继续学下去。在认真的做完了敲门实例后,小白又认真的做了几个FLUENT实例文档中的案例,虽然说案例都比较简单,但是小白还是在黄师姐的提示下对这些案例的共同点进行了总结,从而了解CFD解决实际问题的基本流程。

1 明确计算目的

2 抽象模型

3 计算规划

4 创建计算模型

5 确定物理模型

6 边界条件及初始条件

7 计算结果评估

8 计算后处理

1 明确计算目的

从现实世界中提出要解决的问题非常重要。提出的问题必须是清晰具体的。比如说,要研究飞机的飞行,我们提出的问题不能是

“飞机为什么会飞?”,这问题太大而且不方便进一步考虑,如果问题是“这飞机飞行时的升力和阻力多大?”则具体得多,也更方便进行下一步的研究工作。

准确地提出计算目的需要良好的理论背景作支撑。准确地抓住物理现象背后的力学模型,找到流体问题求解的目标,是利用CFD工程应用的基础

在这一步工作中需要对问题进行简化,保留重要特征忽略一些不重要的细节,如计算传热问题时,当温差不很大时,可以忽略热辐射。

在这一步,需要明确的问题包括:

  • 要算什么?有哪些物理量可以用来描述计算目标?
  • 这些物理量是否可以直接计算获取?若不能直接获取,是否可以用间接物理量进行替代?
  • 当物理模型过于复杂时,是否可以进行一些简化,忽略一些不重要的特征?
  • CFD是否适合解决此问题?

2 抽象模型

找到问题求解的目标之后,下一步的工作是建立力学模型,将物理现象以数学语言进行描述。利用流体力学理论建立适合自己问题的控制方程。

建立控制方程,包括:

  • 模型理论基础。基于哪些物理基础,进行了哪些假设,都需要明确。
  • 确定模型的边界条件及初始条件。对于建立的流体模型,通常都是一些偏微分方程,这些方程的求解必须配合边界条件与初始条件。

3 计算规划

确定了计算目标并建立了力学模型之后,下一步的工作就要开始规划如何进行计算了。流体力学模型通常是非线性的偏微分方程,绝大多数都无法进行解析求解,通常采用数值方法进行求解。利用数值方法求解这些方程可采用手动编制程序,也可以采用已有的一些软件包,至于采用何种方式,取决于当前的研究条件和时间周期要求。

编制程序计算灵活性更高,可以应用最新的研究成果和算法,可能获得更精确的计算结果。但是从头编制程序需要耗费大量的人力物力和时间,在工程上很难满足产品研发的周期要求,因此手动编制程序计算多见于研究机构。

工程产品研发多用成品软件包来进行,CFD商用软件包大多很贵,但是具有良好的人机界面而且经过严格的软件测试,具有良好的鲁棒性,可靠性能够得到保障。利用开源软件包开源节省一大笔软件购买费用,然而开源软件的人机界面通常不如商用软件做得好,软件不一定经过了严格的测试,特别是自己定制的程序。但是开源软件的程序代码是公开的,开源根据实际需要进行修改。

4 创建计算模型

在确定计算方式之后,若选用计算软件进行计算,则下一步工作为创建计算模型。

计算模型包括两部分:几何模型及网格模型。

几何模型可以采用常用的CAD软件创建,在创建几何模型时,对于模型中的一些细节特征,需要仔细的考量,尽可能的忽略一些不重要的特征,这有助于减少网格数量从而减小计算开销。

将几何模型进行网格划分后形成网格模型。网格模型不一定要完全贴合几何模型,但是对于计算过程中一些重要的特征,则需要尽可能的特近真实几何。流体计算网格通常需要沿着流线方向划分,在流动梯度大的区域需要加密网格。一般需要做多套网格进行计算,以评估网格疏密对计算结果的影响。

5 确定物理模型

其实在第一步和第二步中已经涉及到了物理模型,这里说的物理模型指的是在CFD程序中添加的物理模型。对于不同的物理模型,需要设置相应的模型参数,这些模型参数有些依赖于理论,有些则依赖于实验。

6 边界条件及初始条件

边界条件和初始条件直接影响计算结果,确保输入真实的边界条件。

对于瞬态计算,还要求输入真实的初始条件。虽然稳态计算不依赖于初始条件,但是输入相对真实的初始值有助于帮助收敛。

真实的边界条件和初始条件通常都需要通过实验测定获取。

7 计算结果评估

在初步计算后,通常需要通过对比实验结果进行模型标定。

在这一过程中,往往包括网格独立性验证、时间独立性验证以及数值控制参数调整等。

通常需要准备多套网格,进行多组计算,比较计算结果与实验值来获取计算结果与网格、时间步长等的敏感性,从而选择最合适的网格粒度以及时间步长。

8 计算后处理

分析计算结果,获取有用的数据。





来自为知笔记(Wiz)




转载于:https://www.cnblogs.com/LSCAX/p/5201908.html

更多相关:

  • 本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。 理论知识可从这个链接看:http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/monte-carlo-methods-in-practice/monte...

  • 使用ngNonBindable停止框架渲染计算“{{}}”

    计算1+1= {{ 1 + 1 }}

    计算1+1= {{ 1 + 1 }}

    渲染结果...

  • 利用图形处理器的力量 你会学到: 如何编写Unity计算着色器 如何在后处理图像过滤器中使用ComputeShaders 如何使用ComputeShaders进行粒子效果和群集 如何使用StructuredBuffers在计算着色器和实例表面着色器之间共享数据 使用计算机处理器处理流体模拟 使用计算机开发者创建物理引擎 MP...

  • 相信很多朋友在利用matlab进行计算时,会遇到循环次数过大,或者是单次计算量过大的问题,比如需要计算的数值阵列数据量过大,利用传统的编程方式,跑一次程序几个小时,都要等的急死了是不是呢?如果遇到这种情况,则可以尝试一下MATLAB并行计算,传统的计算方式都是串行计算。并行计算之所以可行,取决于两方面因素:a)现在大家的计算机是多核的...

  • 一.xgboost前奏1,介绍一下啥是xgboostXGBoost全称是eXtreme Gradient Boosting,即极限梯度提升算法。它由陈天奇所设计,致力于让提升树突破自身的计算极限,以实现运算快速,性能优秀的工程目标。2,XGBoost的三大构件XGBoost本身的核心是基于梯度提升树实现的集成算法,整体来说可以有三...

  • ​这是3D 点云的深度学习框架,提供常见的点云分析方法的一种通用深度学习模型。它主要依赖Pytorch Geometric和Facebook Hydra。该框架能够以最小的代价和极大的可重复性来构建精简而复杂的模型。目标是建立一个工具,用于对SOTA模型进行基准测试,同时允许研究者们有效地研究点云分析,最终目标是建立可应用于实际应用的...

  • 【从零开始的ROS四轴机械臂控制(三)】五、在gazebo中添加摄像头1.修改arm1.gazebo.xacro文件2.修改arm1.urdf.xacro文件3.查看摄像头图像六、为模型添加夹爪(Gripper)1.通过solidworks建立模型2.将夹爪添加进gazebo(1)模型导入(2)更改urdf文件夹3.gazebo模型抖...

  • 使用Keras训练自动驾驶(使用Udacity自动驾驶模拟器) 1.完成项目所需要的资源 (1)模拟器下载 • Linux • macOS • Windows (2)Unity 下载 运行Udacity模拟器需要Unity,这是下载链接。 https://unity.cn/releases (3)Behavioral Cl...

  • maxtree–工厂模型第74卷 大小解压后:2.34G 信息: 植物模型第74卷是高质量的三维植物模型的集合。包括12个物种,共72个单一模式。 获取地址:三维植物树木模型 Maxtree – Plant Models Vol 74-云桥网 种类 三角枫 槭树 复叶槭 鸡爪槭 白桦 Chitalpa tashkente...

  •     注意,前情提示: 本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》 传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客   在/api/demo/文件夹下面创建CURD.js...

  • 第一:在map端产生join mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去去查看小表的数据,哪条与之相符,继而进行连接。这里的join并不会涉...

  • ** 0x01 原理分析 ** 还是很早之前爆出来的漏洞,现在拿出来学习一下,参考阿里巴巴:https://security.alibaba.com/... 漏洞发生在/inc/common.inc.php页面中。首先看这个函数: 首先使用ini_get来获取php.ini中变量'register_globals'的值,而r...

  • 就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流: 1.1系统安全 1.1.1  客户端脚本安全 (1)跨站脚本攻击(XSS):        XSS攻击,通常指黑客通过“html注...

  • 一、活动目录灾备简介  本次演练我们将讨论如何让域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导;将只提供对运行 Active Directory 的域控制器(不运行其它服务)进行恢复的信息。如果该计算机上还安装有其它服务,例如域名系统 (DNS)...