数指针;函数阵列;
解释型UDF与编译型UDF的区别:
在解释型与编译型UDF 之间的主要的不同之处是很重要的,例如当你想在UDF 中引进新的数据结构时。解释型不能通过直接数据引用获得FLUENT 解算器的数据;只能间接的通过FLUENT 预先提供的宏来获取数据。具体请参考第7 章。
在解释型与编译型UDF 之间的主要的不同之处是很重要的,例如当你想在UDF 中引进新的数据结构时。解释型不能通过直接数据引用获得FLUENT 解算器的数据;只能间接的通过FLUENT 预先提供的宏来获取数据。具体请参考第7 章。 总结一下,当选择写解释型或者编译型UDF时,记住以下几条:
解释型UDF:对别的运行系统是可移植的,可以作为编译型运行,不需要c 编译器,比编译型的要慢,在使用C 程序语言时有限制,不能链接到编译系统或者用户库,只能通过预先提供的宏访问FLUENT 中存储的数据。
编译型UDF:运行要快于解释型UDF,对C 程序语言没有限制,可以使用任何ANSI-compliant c 编译器进行编译,可以调用其他语言写的函数(特别是独立于系统和编译器的),如果包含某些解释器不能处理的c 语言部分时用解释型UDF 是不行的。 总之,当决定哪一类型的udf 应用到你的模型时: 对小的,直接的函数用解释型;对复杂函数使用编译型。
60 在用gambit的时候,导入pro/e的stp文件后,在消去最短边的时候,有些最短边不能消去,其是空间线段,用面merge的方法和连接点的方法都不行,请问该怎么消去这类短边? 我觉得这些短边是由于Pro/e的精度产生的,如果直接导入到Gambit,然后划分网格,总会出现一些小的犄角,一些小的短边,这些地方的网格质量是非常的差,我一般的做法都是,导入到Gambit,将所有的线在原位置复制,删掉导入的体,再将线缝合成面,再缝合成体,这样就可以除去那些短边,小角度的问题了。
也就是将导入的体,由于精度原因,在gambit里面不适用,需要自己缝合!
61 FLUENT help和GAMBIT help能教会我们(特别是刚入门的新手)学习什么基本知识? 答:可以了解其基本原理和基本的操作。不过我觉得对于新手熟悉软件最好的还是tutorial guide
62 FLUENT如何做汽车外流场计算的模拟?并且怎么可以得到汽车的阻力系数和升力系数?
答:汽车的外流场分析,一般模拟的是汽车在一定行使速度的情况下,汽车的阻力系数和升力系数,以及由此延伸计算得到的阻力、升力等,因此,入口边界条件可以给定相对的风速,然后在求解的过程中Monitor各个部分的lift force和drag force。
63 FLUENT模拟飞行器外部流场,最高MA多少时就不准确了?MA达到一定的程度做模拟需注意哪些问题?
答:不准确的标准是什么?没有判断标准就没办法判断。一般来说fluent计算马赫数大于3~5之后就不是很理想了(不过相信版本越新结果越好)。计算的时候应该从低马赫数慢慢往上算。比如说如果计算马赫数是5的话,就在马赫数4的计算结果上算。另外,求解器需
选择耦合和显式的。(对于6.3来说,选择基于密度的求解器)
64 在用gambit建模,保存成*.msh文件时总是出现No entity的错误:Continuum Entity fluid does not contain any valid entity and is not written! Boundary Entity wall does not contain any validentity and is not written! 不知道是什么问题?产生的原因是什么?如何解决? 曾经也碰到过此类问题,问题出在做2维网格输出时要将Export 2-D(X-Y) Mesh选项选上
65 在做燃烧模拟的时候,入口燃料温度定义为蒸发/离解开始时的温度(也就是,为离散相材料指定的蒸发温度“Vaporization Temperature”),这是指水分蒸发温度吗?一般是多少? Vaporization Temperature如果是煤可以理解为挥发份析出的温度,当然不同的煤挥发份析出的温度不同,通常在400-500度左右
68.做飞机设计时,经常计算一些翼型,可是经常出现计算出来的阻力是负值,出现负值究竟是什么原因,是网格的问题还是计算参数设置的问题?
如果这个问题对于某个人经常出现的话,那就比较奇怪了,阻力是负值,难道就是传说中的前缘吸力现身?呵呵,只是开个玩笑:),估计肯定是计算错了或者是设置错了。在飞机翼型气动里面,阻力主要有两种成份:压差阻力和摩擦阻力。应该是正值的。
排除是计算过程的其他问题,我觉得在使用Fluent进行这方面的计算时,需要注意两个方面:
1.参考值的设置,也就是Report->Reference Values...
这些参考值,是用来计算Re,以及升力,阻力,力矩系数所要用到的。如果设置不当,即使计算过程是对的,所得到的升阻力等系数也是不对的。对于2D翼型仿真计算,比较容易出错的就是里面的Area该写什么,单位是平方米,这里应该填写翼型的弦长(Chord Length),The area here is actually area per unit depth;就是每单位展长的面积。 2.在监视力的时候,关于力的矢量方向设置,Solve->Monitor->Force...
这个矢量方向千万不要小看,不能填错,填错了就可能出现阻力是负值的错误,Fluent之前的版本所附带的例子,关于NACA0012翼型的计算中,这里的矢量就设置错了,受错误例子的影响,韩占忠那本书中三角形翼型的那个例子也设置错误,在书的第112页的第6步的第(7)小步就设置错误,升力系数的力方向矢量,应该是X=-0.087155,Y=0.996195;前面他也写到要注意:要确保阻力和升力分别与来流平行和垂直,那么这两个力矢量肯定是垂直的了,那么这两个矢量的点乘就肯定等于零了;所幸的是,在Fluent6.3版本的例子中,这个错误已经改正过来了。
70 边界条件中湍流强度怎么设置:入口边界条件中的湍流强度和出口边界条件中的回流湍流强度怎么设置?是取默认值10%吗?
不同的模型需要设置不同的湍流参数。有的需要根据你已知的条件设置! 对于 边界条件中湍流强度I设置,I是可以通过计算得出来的,
I=u,/u =0.16(ReDH)-1/8
其中u,和u分别为湍流脉动速度和平均速度,ReDH为按水力直径DH计算得到的Reynolds数,Reynolds数可以通过速度,水力直径DH以及运动黏度得出。
对于出口边界条件中的回流湍流强度,我觉得也是这样。希望不同观点的批评指正! yjs808补充:
关于边界条件中湍流量的设置,我觉得Fluent User's Guide的7.2.2 Determining Turbulence Parameters里讲的很好,大家最好能看看。
湍流强度 I 的设置要分两种情况的,一种是内部流动,比如说管流,等等,这种情况下,可以使用上面给出的那个公式进行计算;另一种是外部流动,也就是外部绕流,比如说机翼绕流,这个时候就不能使用那个公式计算I了,如果是模拟风洞中机翼绕流情况,湍流强度要结合风洞的具体特征指定,一般的低湍流度风洞,I能低至0.05%。
特征长度尺度 L 也分为好几种情况,手册上讲述的很清楚,我就不再重复了。
对于湍流量的设置,请大家予以重视,因为这对计算影响比较大,设置不合适,可能会导致计算发散;另外,如果设置的不接近真实情况,结果也会相差较大。
71 关于Injection中的Total Flow rate:injection 选surface,此时选了好几个面(面积不一定完全相同,但颗粒的入口速度相同),那Total Flow Rate 是指几个面的总流量还是某一个面的啊?只能处理完全相同的面吗?
Key:“面射流源”Injection中的Total Flow rate(总质量流率)为从所定义的面上喷射的总流率,即为某一指定面的总流率,而不是所有面的流率之和。若需要处理几个大小不同的面射流源,可通过定义好的喷射颗粒的面积之间的比例来缩放每一个面射流源的质量流率。为此,可在Point Properties下选定Flow Rate By Face Area选项即可。
74 大概需要划分100万个左右的单元,且只计算稳态流动,请问这样的问题PC机上算的了吗?如果能算至少需要怎样的计算机配置呢?
答:一般来说,按照1000个节点对1MB内存这样预估就差不多了,只计算稳态流动,pc机应该差不多了,不过因为一般的pc机可能在连续计算5、6天之后就出现浮点运算错误,所以如果计算不是很复杂,采用的求解器和湍流模型不是太好计算资源,应该还是可以的。 如果使用pc机计算,建议至少采用2GB内存,主板最好固态电容,不易爆浆,电源最好功率大典,应该差不多了,现在流行四核cpu的,可以考虑使用四核的,这样的配置下来也不比服务器差多少。
76 GAMBIT划分三维网格后,怎样知道结点数?如何知道总生成多少网格(整个模型)? 答: 1. 可以利用Gambit网格中的summarize命令就可以得到所画的网格的详细信息,包括某一个体的网格信息和总共的网格信息。
2. 也可以将网格读入Fluent后,通过grid->info->size来看。
77 在FLUENT的后处理中可以显示一个管道的。某个标量的。圆截面平均值沿管道轴线(中心线)的变化曲线吗?何显示空间某一点的数值呀(比如某一点温度)? 答:可以。先创建一条ling(中心线),然后在xyplot中生成曲线 这样显示的是该标量在中心线上的数值分布吧,不是截面平均值。 正确的方法应该是输入命令画曲线 命令输入状态下直接按回车 >plot
>c-a-a (就是circum-average-axial)
再空按回车显示可以选择的值(从温度到nusselt数应有尽有) 比如输入>temp (温度)
>100 (轴向数据点个数)
>filename.txt (文件名,随便取) >no (不知道什么,order point)
然后在plot-file里选择输出就可以了
另定义空间点的方法为surface-point,输入点的坐标或者直接在网格上标记,然后就能在后处理时看到这个点的选项了。
87 courant数:在模拟高压的流场的时候,迭代的时候总是自动减小其数值,这是什么原因造成的,为什么?怎么修改?
这是流场的压力梯度较大,Fluent自身逐步降低时间步长,防止计算发散。我一般的处理办法是:先将边界条件上的压力设置较低点,使得压力梯度较小一点,等到收敛的感觉差不多,在这个基础上,逐渐把压力增大,这样就不容易发散。
80 如何在gambit中输入cad和Pro/e的图形?如何将FLUNET的结果EXPORT成ANSYS的文件?
答:autocad需要将图形转化为sat格式,pro/e可以将文件转化为igse或者stp格式。在fluent的flie/export 中可以选择导出ansys格式的文件
81 入口和出口处的k和epsilon值怎么设置? Key:Fluent User Guide中介绍:
k=1.5*(u_avg*I)^2;其中,u_avg为流动的平均速度;I为湍流强度,按下式近似计算:I=0.16*(Re_DH)^(-1/8)。
epsilon=C_mu^(3/4)*k^(3/2)/l;其中,C_mu为湍流模型中指定的经验常数(近似为0.09);k按上式计算;l为湍流尺度,按下式计算:l=0.07L;L为可按水力学直径近似计算。
85 组分定义:请问气道中流体为氢气和氮气,该流体定义时,该定义成混和气体呢,还是多相气体?
Key:要看计算的目的是什么。一般计算,可定义成混合气体;若涉及到组分计算,要定义成多相气体。
95 可以用左键转动云图,但想用中键拖动其位置时,Fluent显示如下错误信息: Error message from
graphics function Show_Selection_Source: Can't 'Show' - the 'locater' has been deleted 这样有什么问题呢?
答:好像中键只能放大和缩小,不能拖动的吧
第98题:Gambit的网格相连问题:如果物体是由两个相连的模型所结合,一个的网格划分比较密、另一个比较稀疏,用Gambit有办法将两个网格密度不同的物体,相连在一起吗?
请参考第16题答案。将两种网格交界的地方设置成一对interface即可。
100 在FLUENT里定义流体的密度时,定义为不可压理想流体是用在什么地方呀,讲义上说是用于可变密度的不可压流动,不知如何理解?
答:define/matirial 中定义。可变密度的不可压缩流动,就是说在该流动下,流体介质的密度可以认为不变。比如说空气在流速在0.3马赫的情况下都可以认为是密度不变的
101 已经建好的模型,想修改一些尺寸,但不知道顶点的座标,请问如何在gambit中显示点的座标?
答:在gambit中的geometr-〉vortex->summarize vortices即可显示点的坐标。
首先说一下CFD的基本思想:把原来在时间域及空间域上连续的物理量的场,如速度场,压力场等,用一系列有限个离散点上的变量值的集合来代替,通过一定的原则和方式建立起关于这些离散点上场变量之间关系的代数方程组,然后求解代数方程组获得场变量的近似值。
然后,我们再讨论下这些题目。 离散化的目的:我们知道描述流体流动及传热等物理问题的基本方程为偏微分方程,想要得它们的解析解或者近似解析解,在绝大多数情况下都是非常困难的,甚至是不可能的,就拿我们熟知的Navier-Stokes方程来说,现在能得到的解析的特解也就70个左右;但为了对这些问题进行研究,我们可以借助于我们已经相当成熟的代数方程组求解方法,因此,离散化的目的简而言之,就是将连续的偏微分方程组及其定解条件按照某种方法遵循特定的规则在计算区域的离散网格上转化为代数方程组,以得到连续系统的离散数值逼近解。
计算区域的离散及通常使用的网格:在对控制方程进行离散之前,我们需要选择与控制方程离散方法相适应的计算区域离散方法。网格是离散的基础,网格节点是离散化的物理量的存储位置,网格在离散过程中起着关键的作用。网格的形式和密度等,对数值计算结果有着重要的影响。一般情况下,二维问题,有三角形单元和四边形,三位问题中,有四面体,六面体,棱锥体,楔形体及多面体单元。网格按照常用的分类方法可以分为:结构网格,非结构网格,混合网格;也可以分为:单块网格,分块网格,重叠网格;等等。上面提到的计算区域的离散方法要考虑到控制方程的离散方法,比如说:有限差分法只能使用结构网格,有限元和有限体积法可以使用结构网格也可以使用非结构网格。
控制方程的离散及其方法:上面已经提到了离散化的目的,控制方程的离散就是将主控的偏微分方程组在计算网格上按照特定的方法离散成代数方程组,用以进行数值计算。按照应变量在计算网格节点之间的分布假设及推到离散方程的方法不同,控制方程的离散方法主要有:有限差分法,有限元法,有限体积法,边界元法,谱方法等等。这里主要介绍最常用的有限差分法,有限元法及有限体积法。(1)有限差分法(Finite Difference Method,简称FDM)是数值方法中最经典的方法。它是将求解域划分为差分网格,用有限个网格节点代替连续的求解域,然后将偏微分方程(控制方程)的导数用差商代替,推导出含有离散点上有限个未知数的差分方程组。求差分方程组(代数方程组)的解,就是微分方程定解问题的数值近似解,这是一种直接将微分问题变为代数问题的近似数值解法。这种方法发展较早,比较成熟,较多用于求解双曲型和抛物型问题(发展型问题)。用它求解边界条件复杂,尤其是椭圆型问题不如有限元法或有限体积法方便。(2)有限元法(Finite Element Method,简称FEM)与有限差分法都是广泛应用的流体力学数值计算方法。有限元法是将一个连续的求解域任意分成适当形状的许多微小单元,并于各小单元分片构造插值函数,然后根据极值原理(变分或加权余量法),将问题的控制方程转化为所有单元上的有限元方程,把总体的极值作为个单元极值之和,即将局部单元总体合成,形成嵌入了指定边界条件的代数方程