CFXANSYS使用高手流固耦合至理名言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CFX user Fortran: 在每个时间步输出结果
问题是这样的,用CFX user CEL完成变量的同时,还希望CFX输出每个时间步的变量值(比如,每个时间步的压力值)到一个文本文件。

虽然在程序中作了一些控制(以避免在每个coefficient loop都输出结果),但是CFX总是在一个时间步输出同样的变量多次。

User CEL的功能其实是和CFX的内置CEL一样的,只是用户化的CEL。

User CEL会在“需要时”,被实时引用。

如果user CEL是用来定义边界条件,在一个coefficient loop,user CEL会被运行多次。

这样结果也会被多次重复输出。

其实CFX user Fortran有两种,第一种是user CEL,它的主要功能是表达式的计算;第二种是junction box routine,它的主要功能是控制计算流程。

user CEL会被实时引用,而junction box routine只在用户设定的运行点运行。

下图是从CFX帮助里复制的流程图。

要完成上面所说的功能,只要定义个junction box routine,然后把运行点设成End of Time Step (transient only)就可以了。

/?p=116}
Fri, 14 Dec 2007 18:34:57 +0000
Fluent: 计算叶轮功率
问题是这样的,Fluent可以不可以计算驱动搅拌器叶轮所需要的功率;如果可以的话,是不是要做面积分。

按照物理学上的定义,对于旋转的系统,功率=力矩*转速。

通过表面积分(把每个壁面单元,wall face,的功率相加)可以得到整个系统的功率。

但是,这个方法比较麻烦,需要用UDF计算,可能比较费时间。

既然功率=力矩*转速。

转速我们是已经知道的。

力矩可以在Fluent->Report->Forces…上计算得到。

因此,如果叶轮转动轴是和x,y,z轴其中之一方向一致的话,我们可以直接用Fluent图形界面进行计算。

当然如果转动轴方向不和系统坐标一致,UDF还是需要的(有兴趣的朋友可以email 给我)。

这是因为力矩和转速都是矢量,只是在和系统坐标一致时,才可以方便的找到转动轴方向的力矩分量。

具体的做法是这样的: 1. Fluent -> Report -> Forces … 把O ptions选成Moments,把Moment Center设成转动轴上任意一点(但必须要是转动轴上的一点,否则就错了)。

在Wall Zones里选择所要计算的壁面。

然后点击Print。

2. Fluent 会输出力矩的三个放量,单位是Nm,牛顿米。

3. 假设转动轴是在x方向的,把x分量乘以转速(单位是弧度每秒),就得到所需的功率了。

/?p=117}
Wed, 12 Dec 2007 18:58:45 +0000
在Fluent里设置回流边界条件(recirculation opening)
这里的回流边界和流体力学里说的回流是不一样的。

在室内通风系统,由很多设备,比如空调室内机,空气过滤器,会从房间内吸走一定量的空气,然后返还等量的空气。

这一过程中,可能空气的温度会发生变化(空调室内机),空气的组分会发生变化(空气过滤器)。

空气的质量总是等量的。

在Airpak里面有一种特别的opening条件,可以定义re circulation opening。

在这种边界条件中,必须是两个边界组成一对,质量保持守恒,但是可以有热量和组分的变化。

问题是这样的,怎么在Fluent里面定义这样的边界条件呢。

要在Fluent里面定义这样的边界条件,需要输入下面两行scheme(和输入TUI一样):(rpsetvar ‘icepak? #t) (models-changed) 如果觉得每次输入很麻烦的话,可以把这两行放在一个文本文件中,然后把这个文本文件命名为*.scm。

在Fluent -> File -> Read -> Scheme …可以读入这个文件,完成设定。

完成设定后在Fluent的boundary condition s面板,就会多出来两个选项,然下图所示(Fluent 6.3.26)。

具体的做法就不多说了,因
为界面还是相当直观的。

当然,另外一种办法是用DEFINE_ADJUST UDF来做,但是这个办法会复杂一些。

/?p=118}
Tue, 11 Dec 2007 19:21:34 +0000
ESI发布CFD-Ace+ v2008.0
主要的提升有:1. 多面体网格;2. 燃料电池模型;3. 新的边界层网格生成技术。

新闻链接CFX-Ace+网站
/?p=119}
Mon, 10 Dec 2007 19:43:37 +0000
在Tgrid里划分多个体网格
很多时候我们需要一个网格里面有多个体(例如,定义源项,有转动部分),但是默认情况下Tgrid只划分其中一个体的网格(严格说,只输出其中一个体的网格到*.msh文件)。

要解决这个问题,需要改变Tgrid的默认设置:Tgrid -> Mesh -> Tri/Tet -> Controls -> Init/Mesh,然后把Non-Fluid Type选成Fluid(默认选项是dead)。

和ICEM CFD一样,Tgrid里面是没有体的。

体是由面组成的封闭空间决定的。

是用默认设置的话,Tgrid只会把最大的体输出,其余的体设成dead,不会输出。

Tgrid Tutorial的第一个练习题就是有关多个体划分网格的。

具体操作可以练习第一题。

/?p=120}
Sun, 09 Dec 2007 19:58:24 +0000
Fluent安装后不能启动
问题是这样的,Fluent安装后不能启动,并且给出下面的错误消息:The application fa iled to initialize properly (0XC0150002). Click OK to terminate the application 出现这样的问题是因为在64位windows上,Fluent需要Microsoft .NET Framework 2.0 librari es。

需要下载.NET framework Version 2.0 Redistributable Package。

x64版本可以在微软网站免费下载到。

当然最好的方法是,使用windows的自动更新功能,下载安装所有的补丁和升级程序。

下载链接:/en-us/netframework/aa731542.a spx
/?p=121}
Sat, 08 Dec 2007 20:07:51 +0000
Airpak 3.0.16 发布
Fluent刚刚发布了Airpak 3.0.16。

在此以前的版本是Airpak 3.0.12(链接)。

我还没有具体试用过,应该没用功能性的提高,主要是提高稳定性。

最重要的是从这个版本起,Ai rpak开始支持64位系统(Windows和Linux)。

用户可以求解更大更复杂的问题。

Airpak 可以在Fluent用户服务中心下载。

/?p=115}
Fri, 14 Dec 2007 04:32:00 +0000
Fluent for Catia V5 3.1 发布
包括32位windows和64位windows版本。

产品介绍网页:http://www.fluentforcatia.co m/ Technorati : Catia, Fluent
/?p=114}
Wed, 10 Oct 2007 02:34:00 +0000
本博客主要介绍ANSYS,CFX,Fluent的最新更新,使用技巧等。

同时也有CFD和FEA基本理论,及其他CAE软件的介绍。

CFX 11.0的两个CEL新功能
1.inside()函数有时候我们需要在不同的区域设置不同的属性。

比如,要初始化一个自有表面问题,在volume A体积比是1,在volume B体积比是0。

在10.0时,需要把这两个区域防近两个domain,然后对各自domain进行初始化。

这样,需要建立domain inter face来连接domain。

可能只能使用GGI来连接,这样精度就会受到影响。

在11.0,insi de()函数可以方便解决这个问题。

inside()函数的功能和step()函数的功能类似(if…else…语法)。

如果在指定区域内,返回1;否则,返回0。

首先,找到volume A和B的原始区域名。

只要把树形目录里的mesh展开,就可以看到下面所有的面和体区域。

面区域以F开头。

体区域以B开头。

然后,写出inside()@REGION:B****函数。

最后把这个CEL 函数放到模型中。

下面是一个利用inside()函数进行初始化的例子:Initial_C = 1 [kg m^-3]*inside()@REGION:B3872 在区域B387内,初始值为1;否则为0。

2. REGION:语法在10.0时,基于区域的函数如area()@只能基于已定义边界条件的面。

也就是说,@后面只能跟边界条件名,而不能是网格中的原始区域(primitive region)。

这样,如果要定义基于原始区域的函数,而这个区域不是边界条件时,就会比较麻烦。

11.0提供的RE GION:语法可以方便的解决这个问题。

其实REGION:的用法已经在上面的例子解释了,这里就不多说了。

Technorati : CEL, CFX
/?p=109
Sun, 07 Oct 2007 05:03:29 +0000
简化Airpak模型的小经验
Airpak虽然提供了非常强大的划分网格功能,不过如果不认真控制的话,还是会产生非常大的网格。

最近遇到一个问题在32位PC上,Airpak不能显示大于一百万网格的PMV 和PPD。

我猜想PMV和PPD结果并没有保存在最终结果中,需要暂存在内存中,因此对内存的要求会增加。

在使用Airpak的过程中,还遇到过其它和网格质量相关的问题。

网格质量低的话,会导致收敛问题。

下面总结一些我发现的经验(有新发现的话,持续添加)。

1. 尽量使用Hexa unstructured方法。

Tetra生成的单元数最多,Hexa Cartesian次之,Hexa unstructured最少。

Hexa Cartesian不能划分弯曲、倾斜的几何形状,不推荐使用。

Tetra可以用在复杂的几何形状。

Tetra生成需要很长时间。

Hexa dominant是指混合使用Hexa unstructured和Tetra。

2. 少用CAD,多用polygon。

虽然Airpak 3.0允许直接使用CAD几何形状,但是由于CAD本身的缺陷或者过于复杂,生成Tetra网格会很慢,并且单元数太多,浪费计算资源。

用Polygon可以近似复杂的形状,进而生成效率高的H exa unstructured网格。

3. 使用Non-conformal Meshing。

如果room里有比较小的细节的话,把这些细节放到assembly,然后mesh seperately,能够显著减少单元数。

网格质量也能大大提高。

4. 控制Minimum gap。

默认的minimum gap是1毫米。

在模拟大的流域时,如果一些object没有对齐,会生成非常大纵横比的单元,影响收敛。

如果objec t很多,对齐困难的话,使用大一点的minimum gap就可以解决这个问题。

5. 使用Per object control。

可以更好的控制,物体旁边的边界层等。

6. 检查网格质量。

网格质量的第一项Face Alignment非常重要,如果有很多单元在0 - 0.15的范围的话,会很难收敛或发散。

把下面的max改成0.15,然后点击柱状图,可以检查低质量单元的位置。

7.
如果有收敛问题,可以暂时deactivate所有object,然后依次activate进行测试,找出问题所在。

Airpak的帮助文件对网格生成有比较详细的阐述,如果认真阅读的话,会有很大的帮助。

网格生成是CFD模拟中最重要的环节之一,因此磨刀不误砍柴工。

Technor ati : Airpak, 网格
/?p=104
Sat, 06 Oct 2007 03:50:23 +0000
CFX:用动网格来转动固体表面
在一些CFD模拟中,用户需要测试流场对一系列尺寸的反应。

比如所当管道的直径为1 0 mm,12 mm,和14 mm时,流场各有什么不同。

DesignModeler里面的parameter可以做到这一点。

如果使用CAD interface的话,DesignModeler可以读进上游软件的para meter,比如Pro/E。

这样做的问题是每次都需要重新生成网格(用DesignXplorer可以自动化这一过程)。

其实我们可以用CFX的Mesh deformation功能实现这个目的。

问题是这样的,要测试控制叶片在0-5度内,每转动一度时流场的不同。

做法是这样的: 1. 在d omain上设定mesh deformation。

2. 设定所有的wall边界。

如果没有移动,设置成Uns pecfied;如果有移动,设置成Spcified Location。

要计算出转动后的location,需要用C EL进行坐标变换。

下面的连接介绍了转动坐标变换的公式: /theor y/transform/rot.html 如果转动轴和z轴平行,并且位于(x0,y0)的话,我们可以算出转动后的坐标为:x2 - x0 = (x1-x0)*cos(phi) - (y1-y0)*sin(phi) y2 - y0 = (y1-y0)*cos(phi) + (x1-x0)*sin(phi) x0, y0:转动中心x1, y1:转动前的坐标x2, y2:转动后的坐标把x 2,y2输入就可以模拟转动了。

下面是一段CEL例子:LIBRARY:CEL:EXPRESSIONS:p hi = 5*pi/180x2 = xy0 = 0 [m]y1 = yy2 = y0+(y1-y0)*cos(phi)-(z1-z0)*sin(phi)z0 = -0.21 [m]z1 = zz2 = z0+(z1-z0)*cos(phi)+(y1-y0)*sin(phi)ENDENDEND Technorati : CF X, 动网格
/?p=105
Fri, 05 Oct 2007 04:48:00 +0000
CFX:opening temperature vs. static temperature
前面一篇帖子讨论了在CFX里面应该使用什么样opening边界条件。

当时只是讨论了动量方程边界条件,没有讨论能量方程边界条件。

问题是这样的,在CFX做通风系统模拟时,环境温度是32度,流场内只有热源,没有热量损失。

根据常识,温度不可能低于3 2度,但是实际模拟结果却有部分区域温度低于32度。

问题是稳态的,我只算了两个迭代,在CFX-Post里面发现温度的global range是低于32度的。

但是在切面上很难看到那些区域温度低于32度。

使用isosurface功能可以方便的看到低温区域。

低温区域位于一个opening边界条件旁边。

检查了opening的定义后,发现温度定义为opening temperat ure。

也就是说,如果空气流入时,total temperature是32度;如果空气流出时,static te mperature是32度。

换句话说,如果空气流入,static temperature实际上低于32度。

空气流速越大,static temperature越低。

这样就会造成没有热损失,温度却低于32度的情形。

在做通风系统模拟时,opening条件应该统一设成静压和静温。

Technorati : CFX, 边界条件
/?p=106
Thu, 04 Oct 2007 05:45:00 +0000用CFX模拟二维问题
CFX只有3d求解器,在求解二维问题时,需要有特别的设置。

当然,Fluent有专门的2d 求解器,求解速度要快得多。

二维问题可以分为平面二维(planar 2D)问题和轴对称二维(axisymmetric 2D)问题。

1. 几何形状平面二维:在DesignModeler里面,extrude二维s ketch。

延伸的长度不重要,但是厚度要比较薄。

轴对称二维: 在DesignModeler里面,r evolve二维sketch。

转动的角度部重要,1度到5度比较合适。

2. 网格平面二维:在C FX-Mesh里面,把Option -> Meshing Strategy改成Extruded 2D Mesh,Number of La yers = 1,然后定义Extruded Pair,Option = Translational 轴对称二维:在CFX-Mesh 里面,把Option -> Meshing Strategy改称Extruded 2D Mesh, Number of Layers = 1,然后定义Extruded Pair,Option = Rotational,并定义轴。

生成的网格主要由锲形(pris m)网格组成。

轴对称情况下,靠近轴的地方会有退化网格。

3. 定义二维问题使用和三维问题类似的边界条件。

对前面和后面,定义成symmetry(对称)边界条件就可以了。

如果没有定义成对称条件的话,CFX-Solver回提示不能正确计算梯度,求解器会自动中止。

Technorati : CFX, 二维
/?p=107
Wed, 03 Oct 2007 07:27:00 +0000
用CFX模拟流体在不同材料里的扩散
在生物医药的应用上,有时候需要模拟药物在不同材料里的扩散。

流体本身没有流动,但是药物会从高浓度区域扩散到低浓度区域。

要求解这个问题,不需要求解速度场和对流项。

只要求解一个扩散方程。

因此自己开发程序或者用matlab可能会更适合。

用CFX 可以模拟比较复杂的几何形状。

1. 不求解动量方程。

Insert -> Solver -> Expert Parame ter -> Model Over-rides,把solve fluid的选项改成f。

2. 不求解湍流方程。

把湍流模型设成laminar 3. 不使用任何其他模型。

没有传热,多相流等。

4. 定义一个Additional v ariable。

然后再domain里面激活这个additional variable,使用diffusive transport equatio n。

并且定义该additional variable在里面的扩散系数。

5. 定义边界条件。

在CFX里,默认情况下,CFX-Pre会对所有的domain使用同样的设定。

如果要给不同的domain设定不同的扩散系数的话,需要作一个高级设置。

Edit -> Options -> CFX-Pre -> Enable Beta Features。

最后在树形目录的Simulation上点右键,选空Constant Domain Physics。

这样便可以给不同的区域顶以不同的扩散系数了。

当然,在做网格时,要先把domain划分好。

Technorati : CFX, 扩散
/?p=108
Mon, 01 Oct 2007 07:56:00 +0000
CFX:Insufficient Catalogue Size
前面一篇帖子,介绍了CFX求解器堆栈长度不足的处理。

最近遇到一个实例,在进行瞬态计算时,CFX报告了下面的错误消息:+——————————————————————–+| *** INSUFFICIENT CATALOGUE SIZE *** || ACTION REQUIRED : Incr ease the file catalogue size. || If the situation persists please contact the CFX Customer Helpline || giving the following details:- || Current catalogue size : 50822 |+——————————————————————–+ 这是由于CFX的存储管理系统(Memory M anagement System, MMS)没有分配足够的内存给所要求解的问题。

这种问题是不常见的。

有两个办法可以解决这个问题,在CFX-Pre里面用CCL控制,或者在CFX-Solver里,配置相应的参量。

它们的作用是一样的。

1. 在CFX-Pre里用CCL控制在Solver Contr ol上点右键,然后选择”Edit in Command Editor”。

在CCL里插入下面的语句:Catalog
ue Size Multiplier = 1.2 这句定义可以直接放在”SOLVER CONTROL”下面。

点击Proce ss确认。

2. 在CFX-Solver里配置参量如果是用命令行提交CFX,在CFX5solve命令里加上”-size-mms 1.2″控制。

这个控制是让MMS请求1.2倍的内存。

根据情况不同,可以使用更大的值。

如果是用图形界面提交CFX,在solver标签下面,可以输入advance d arguments。

[...]
/?p=110
Sun, 30 Sep 2007 05:40:00 +0000
配置windows系统CFX并行计算
最近被问到怎么给windows系统配置CFX并行计算。

其实CFX的并行计算功能是很容易配置的。

32位windows上使用mpich,64位windows上使用mpich2。

如果已经安装了ANSYS Workbench的话,帮助里会有一本Installation and Licensing Documentation。

在里面搜索mpich会看到具体的配置方法:1.在CFX-Launcher上,Tools -> Command Line 2.安装mpi 2.1 32位系统,输入:cfx5parallel -install-mpich-service 2.2 64为系统,输入:cfx5parallel -install-mpich2-service 3.注册用户 3.1 32位系统,输入:cfx5parall el -register-mpich-user 3.2 64位系统,输入:cfx5parallel -register-mpich2-user 4. 输入用户名和密码。

个人认为这个用户名和密码并不是很重要,可以输入任意值。

如果使用分布式并行计算的话,还需要安装rsh服务和配置防火墙。

对于前者,安装帮助上的说明安装就可以了;对于后者,通常我是直接把windows防火墙关了。

另外,在windows 上使用mpich要比pvm快很多很多。

用pvm不需要特别的设置。

Technorati : CFX, 并行计算
/?p=111
Sat, 29 Sep 2007 06:08:00 +0000
ICEM CFD:extrude mesh操作的side part name
问题:………………………………………………….Subject…: 关于ICEM的一个问题………………………………………………….请问通过平面网格通过extrude mesh操作,转化为六面体网格以后,边界条件(part)不能从原来的线对应成面,是什么原因? 回答:请参见附件的截图。

设定一个side part name就可以了。

/?p=112
Fri, 28 Sep 2007 06:17:00 +0000
ANSYS 11.0 service pack 1发布
ANSYS 11.0 SP1已经发布了。

ANSYS, Workbench和ICEM CFD已经支持Windows V ista,CFX对Windows Vista的支持是beta版本。

Technorati : ANSYS, Vista
/?p=103
Tue, 02 Oct 2007 13:12:07 +0000
本博客主要介绍ANSYS,CFX,Fluent的最新更新,使用技巧等。

同时也有CFD和FEA基本理论,及其他CAE软件的介绍。

CFX:如果确定timescale
CFX的求解器是比较特别的,和普通教科书上的不太一样。

它使用耦合求解器(coupled s olver),并且使用求解瞬态方程的方法来求解稳态问题。

时间步长(timescale)是影响收敛的最重要的因素。

时间步长在耦合求解器里的重要性,相当于松弛因子(underrelaxation fac
tor)在分离求解器(segregated solver)里的重要性。

前面有一篇帖子,讲了时间步长在流固耦合传热问题中的作用。

打个比方,在开车时。

如果速度很慢,就会比较安全,但是需要比较长的时间才能到达目的地;如果速度很慢,就会节省时间,但是可能会不安全。

同样的,在用CFX求解时,如果timescale很小,收敛会很稳定,但是需要很多的迭代,速度较慢;如果timescale很大,需要的迭代次数较少,但也可能引起求解器不稳定,甚至发散。

因此合适的timescale对于收敛是很重要的。

通常情况下,timescale可以根据(特征时间=特征长度/特征速度)这个公式算出来。

但是对于复杂的流场而言,直接推算出合适的时间步长还是有一定难度的,需要试出合适的timescale。

在CFX里,auto timescal e是让系统自动估算出timescale,而physical timescale是由用户直接输入timescale。

通常情况下,系统估算出的auto timescale过于保守,用户需要使用较大的physical timesc ale。

另外,由于使用耦合求解器的缘故,CFX一般能在100-200个迭代步内收敛。

如果在200步内还没有收敛的话,需要考虑改大timescale,而不是让系统跑更多的迭代(例如,把最大迭代数设成1000),这样会浪费很多宝贵的时间。

最近碰到一个室内空调系统的模拟问题,由于浮力(buoyancy)的存在,动量方程和能量方程的耦合会导致收敛困难。

使用的是CFX 11.0。

11.0提供了时间步长系数(Timescale factor)这个新选项,可以方便的测试不同的timescale。

timescale factor = 10代表timescale = 10 * auto timescale。

上面所说的空调模拟问题,我测试了timescale factor = 1、10、100三种情况。

平均残差(R MS residual)和全局不平衡(global imbalance)的曲线图附在下面。

从曲线图可以清楚地看出,使用小的时间步,收敛曲线呈波浪形,或收敛缓慢,全局不平衡较大;使用大的时间步,收敛曲线呈”之”字形上下跳动。

下面这个例子,timescale factor = 10可能较快得到收敛结果,最终我使用了timescale factor = 20。

曾经尝试修改能量方程的时间步长,但是效果不太好。

timescale factor = 1 timescale factor = 10 timescale factor = 100 Te chnorati : CFX, 收敛, 时间步长
/?p=97
Sun, 26 Aug 2007 01:16:46 +0000
CFX:带压力差的周期性边界条件
带压力差的周期性边界条件(translational periodic boundary with pressure drop)是一种常见的边界条件。

比如很多用DNS/LES的管道流动,以及换热器流动。

CFX在11.0才正式支持这种边界条件。

要定义周期性边界条件,需要定义一个fluid-fluid interface。

阅读了帮助后,发现位移周期性边界条件可以有两种应用(除了模拟周期性条件以外): 1.连接网格。

这个时候位移周期性边界条件的作用是和通用连接(general connect with no f rame change or pitch change)一样的。

CFX的第8个练习题(Tutorial 8: Supersonic Flow Over a Wing)便是使用周期性边界条件来连接三块网格。

个人认为,这个时候使用周期性边界条件或通用连接并没有区别,完全是个人的使用习惯问题。

2.模拟porous jump。

前面有一篇帖子讲过Fluent里可以定义porous jump,但是CFX不可以。

其实这个功能可以使用带压力差的周期性边界条件来实现。

具体做法是:1)用周期性边界条件来连接相邻的网格;2)设定一个压力差。

具体的公式推导在CFX帮助里已经提到:ANSYS CFX -Solver Modeling Guide | Domain Interface Modeling | Interface Models | Mass and M omentum Models 在这个帮助里还提到,除了在位移周期性边界条件上设定压力差,用户还可以设定质量流量(massflow rate)。

通常情况下,设定质量流量会比较难收敛。

因为C FX使用的是基于压力的求解器,如果使用质量流量的话,系统需要根据质量流量来收敛得到压力差;而如果设定压力差的话,系统会直接使用压力差来计算,因此比较容易收敛。

Technorati : CFX, 周期性边界条件
/?p=98
Sat, 25 Aug 2007 02:23:00 +0000
Fluent UDF:为什么不能使用C_R_G
在写Fluent UDF时,不能使用C_R_G macro,但是其它mcro,例如C_P_G和C_U_G 可以正常使用。

求解器是基于压力的隐式耦合求解器。

查看了UDF manual后发现,C_ R_G的功能是取出密度梯度,在帮助中有下里面的注解:C_R_G can be used only in the density-based solver and C_P_G can be used only in the pressure-based solver. 也就是说在使用基于压力的求解器时,系统并不支持C_R_G;使用基于密度的求解器时,系统不支持C_R_P。

要解决这个问题,可以根据理想气体方程计算密度,而不是直接从求解器中取密度。

Technorati : Fluent, UDF
/?p=99
Fri, 24 Aug 2007 02:46:00 +0000
GAMBIT:OPENGL_DEVICE_DRIVER not supported
在运行GAMBIT时,会出现下面的警告:Gambit build SP2006032921.Warning: locale not supported by Xlib, locale set to COPENGL_DEVICE_DRIVER not supportedDefault ing to X_DEVICE_DRIVER with standard visual 我在网络上也发现不少问同样问题的帖子。

出现这个警告信息的原因是没有安装Hummingbird Exceed 3D。

Exceed 3D是一个附加模块,它并不是运行GAMBIT所必须的,因此我们可以忽略这个警告。

Technor ati : GAMBIT
/?p=100
Thu, 23 Aug 2007 04:48:00 +0000
CFX:MPICH运行失败
最近遇到了一个并行计算的例子,用serial(1个CPU)和2个CPU的并行计算,求解器可以正常收敛,用4个CPU或者更多,在开始求解第一步时,求解器自动终止,并且没有错误消息。

刚开始是怀疑patitioner的问题,但是CFX的默认patitioner是MeTis,而且通常情况下patitioner的选择只会影响效率,很少会引起求解器失败。

测试使用的MPI(m essage passing interface)是local MPICH(CFX 10.0, IBM UNIX)。

模型有很多interface。

在换用local PVM后,系统可以在8个CPU上正常运行。

这个实例说明如果MPICH不能运行的话,可以换用PVM MPI试试。

另外这也可能是10.0里面的bug。

PVM其实是CFX里默认的MPI。

MPICH虽然速度较快,但是可能不如PVM稳定。

Technorati : CF X, MPI
/?p=101
Wed, 22 Aug 2007 05:12:00 +0000
CFX:读取CGNS网格
CGNS(CFD General Notation System, /)是一种通用的CFD文件交换标准。

很多软件可以输出、输入CGNS格式。

下面的链接提供了一些CGNS例子:http:/ //CGNSFiles.html 很多CGNS格式网格是multi-block structred mesh。

在读入CFX-Pre之后,在图形界面上,显示为很多block。

但是,网格实际上是连续的。

用户并不需要用interface把网格连接起来。

在CFX Tutorial 8里面的例子使用的是Patran Neutral格式,需要用interface把三个区域连接起来。

如果不太熟悉这些网格格式的话,
可以用简单的方法测试出来:1)定义一个简单的边界条件,计算一下,看看流场是不是连续。

事实上,如果网格不连续的话,在CFX-Solver刚开始求解时,会提示有isolated f luid region。

2)如果网格是不连续的,CFX-Pre会自动把界面处的网格放在Domain Def ault边界条件里面。

如果网格是连续的,界面处的网格会被默认为是连通的,被忽略掉。

因此,这要选中Domain Default,看看里面有没有界面网格就行了。

CGNS网格里的界面会被忽略,而Patran网格的界面会被放在Domain Default里,当成是壁面条件。

另外我试用了用ICEM CFD把CGNS structured mesh转换成unstructured mesh。

ICEM CFD 虽然能完成转换,但是不能更新part名,还需要看看有什么其他解决方法。

Technorati : CFX, CGNS, 网格
/?p=102
Tue, 21 Aug 2007 05:17:00 +0000
Workbench环境下CFX-Post背景色的设定
CFX 11.0提供的report功能可以快速的在CFX-Post里后处理结果并且发布为html格式。

用户可以方便的更新模型的方向、显示方式等选项。

Report里的设定可以重复使用在相同的模型上,而不必每次重复操作。

用户可以更改report开头的ANSYS图标(logo),但是每个图片右上角的ANSYS图表是去不掉的(如果有谁知道怎么去掉这个图标,欢迎e mail给我)。

问题是这样的,默认的图片背景色是Workbench默认的蓝白过渡背景色,通常情况下,我们可以通过CFX-Post -> Edit -> Options来修改(如下图所示),但是实际上用户看不到改变背景色的选项(另一幅截图)。

当CFX单独运行时,选项如第一幅图;当CFX在Workbench里运行时,选项如第二幅图。

当在Workbench里运行时,需要通过修改Workbench的背景色来设定CFX背景色。

[Project] tab -> Tools -> Options -> C ommon Settings -> Graphics Style。

一点题外话,CFX-Post的report功能还是新功能,还不太稳定。

比如在comment里插入的图片在发布后不能正常显示。

这个问题可能在以后的版本中得到解决。

Technorati : CFX, Workbench, 背景色
/?p=96
Tue, 14 Aug 2007 03:21:24 +0000
Flomerics发布EFD 8
新闻连接在这里。

EFD是Engineering Fluid Dynamics的缩写,基于和通用CFD同样的数学理论。

同时和CAD软件有更好的协作性,使用也相对容易。

Technorati : EFD, Fl omerics
/?p=95
Sun, 12 Aug 2007 12:36:51 +0000
CFX:最大堆栈长度
在求解很大的CFX模型时,可能会遇到下面的错误信息#001100279(其实在正常求解时,求解器也会给出内存分布的信息)。

这个信息其实并不是因为系统物理内存不够。

而是由于实型堆栈(real stack)容量不足。

在CFX里,堆栈的最大容量是2^31-1。

任何堆栈大于这个长度,系统都会给出这个错误信息,即使系统内存足够。

这个时候解决问题的唯一办法是使用并行计算。

怎么解读这个错误信息?错误消息的第一行是:实型堆栈长度为2481110.5千字(word),平均每个节点需要318.47字,每个单元需要330.24字,总共需要的内存是9691838.0千字节,平均每个节点需要1273.89字节。

这个模型使用的是六面体网格,因此单元和节点的比例为1:1。

模型有大概8百万节点。

需要9.6GB内存来。

相关文档
最新文档