CFXANSYS使用高手流固耦合至理名言 联系客服

发布时间 : 星期五 文章CFXANSYS使用高手流固耦合至理名言更新完毕开始阅读e9f1d0d428ea81c758f57873

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)就可以了。

http://blog.singinfo.com/?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 … 把Options选成Moments,把Moment Center设成转动轴上任意一点(但必须要是转动轴上的一点,否则就错了)。在Wall Zones里选择所要计算的壁面。然后点击Print。 2. Fluent会输出力矩的三个放量,单位是Nm,牛顿米。 3. 假设转动轴是在x方向的,把x分量乘以转速(单位是弧度每秒),就得到所需的功率了。 http://blog.singinfo.com/?p=117}

Wed, 12 Dec 2007 18:58:45 +0000

在Fluent里设置回流边界条件(recirculation opening)

这里的回流边界和流体力学里说的回流是不一样的。在室内通风系统,由很多设备,比如空调室内机,空气过滤器,会从房间内吸走一定量的空气,然后返还等量的空气。这一过程中,可能空气的温度会发生变化(空调室内机),空气的组分会发生变化(空气过滤器)。空气的质量总是等量的。 在Airpak里面有一种特别的opening条件,可以定义recirculation opening。在这种边界条件中,必须是两个边界组成一对,质量保持守恒,但是可以有热量和组分的变化。 问题是这样的,怎么在Fluent里面定义这样的边界条件呢。 要在Fluent里面定义这样的边界条件,需要输入下面两行scheme(和输入TUI一样): (rpsetvar ‘icepak? #t) (models-changed) 如果觉得每次输入很麻烦的话,可以把这两行放在一个文本文件中,然后把这个文本文件命名为*.scm。在Fluent -> File -> Read -> Scheme …可以读入这个文件,完成设定。 完成设定后在Fluent的boundary conditions面板,就会多出来两个选项,然下图所示(Fluent 6.3.26)。 具体的做法就不多说了,因

为界面还是相当直观的。 当然,另外一种办法是用DEFINE_ADJUST UDF来做,但是这个办法会复杂一些。 http://blog.singinfo.com/?p=118}

Tue, 11 Dec 2007 19:21:34 +0000

ESI发布CFD-Ace+ v2008.0

主要的提升有:1. 多面体网格;2. 燃料电池模型;3. 新的边界层网格生成技术。 新闻链接 CFX-Ace+网站

http://blog.singinfo.com/?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的第一个练习题就是有关多个体划分网格的。具体操作可以练习第一题。 http://blog.singinfo.com/?p=120}

Sun, 09 Dec 2007 19:58:24 +0000

Fluent安装后不能启动

问题是这样的,Fluent安装后不能启动,并且给出下面的错误消息: The application failed to initialize properly (0XC0150002). Click OK to terminate the application 出现这样的问题是因为在64位windows上,Fluent需要Microsoft .NET Framework 2.0 libraries。需要下载.NET framework Version 2.0 Redistributable Package。x64版本可以在微软网站免费下载到。当然最好的方法是,使用windows的自动更新功能,下载安装所有的补丁和升级程序。 下载链接:http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx

http://blog.singinfo.com/?p=121}

Sat, 08 Dec 2007 20:07:51 +0000

Airpak 3.0.16 发布

Fluent刚刚发布了Airpak 3.0.16。在此以前的版本是Airpak 3.0.12(链接)。我还没有具体试用过,应该没用功能性的提高,主要是提高稳定性。最重要的是从这个版本起,Airpak开始支持64位系统(Windows和Linux)。用户可以求解更大更复杂的问题。Airpak可以在Fluent用户服务中心下载。 http://blog.singinfo.com/?p=115}

Fri, 14 Dec 2007 04:32:00 +0000

Fluent for Catia V5 3.1 发布

包括32位windows和64位windows版本。产品介绍网页:http://www.fluentforcatia.com/ Technorati : Catia, Fluent http://blog.singinfo.com/?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 interface来连接domain。可能只能使用GGI来连接,这样精度就会受到影响。 在11.0,inside()函数可以方便解决这个问题。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提供的REGION:语法可以方便的解决这个问题。其实REGION:的用法已经在上面的例子解释了,这里就不多说了。 Technorati : CEL, CFX http://blog.singinfo.com/?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可以近似复杂的形状,进而生成效率高的Hexa unstructured网格。 3. 使用Non-conformal Meshing。如果room里有比较小的细节的话,把这些细节放到assembly,然后mesh seperately,能够显著减少单元数。网格质量也能大大提高。 4. 控制Minimum gap。默认的minimum gap是1毫米。在模拟大的流域时,如果一些object没有对齐,会生成非常大纵横比的单元,影响收敛。如果object很多,对齐困难的话,使用大一点的minimum gap就可以解决这个问题。 5. 使用Per object control。可以更好的控制,物体旁边的边界层等。 6. 检查网格质量。网格质量的第一项Face Alignment非常重要,如果有很多单元在0 - 0.15的范围的话,会很难收敛或发散。把下面的max改成0.15,然后点击柱状图,可以检查低质量单元的位置。 7.

如果有收敛问题,可以暂时deactivate所有object,然后依次activate进行测试,找出问题所在。 Airpak的帮助文件对网格生成有比较详细的阐述,如果认真阅读的话,会有很大的帮助。网格生成是CFD模拟中最重要的环节之一,因此磨刀不误砍柴工。 Technorati : Airpak, 网格

http://blog.singinfo.com/?p=104

Sat, 06 Oct 2007 03:50:23 +0000

CFX:用动网格来转动固体表面

在一些CFD模拟中,用户需要测试流场对一系列尺寸的反应。比如所当管道的直径为10 mm,12 mm,和14 mm时,流场各有什么不同。DesignModeler里面的parameter可以做到这一点。如果使用CAD interface的话,DesignModeler可以读进上游软件的parameter,比如Pro/E。这样做的问题是每次都需要重新生成网格(用DesignXplorer可以自动化这一过程)。其实我们可以用CFX的Mesh deformation功能实现这个目的。 问题是这样的,要测试控制叶片在0-5度内,每转动一度时流场的不同。做法是这样的: 1. 在domain上设定mesh deformation。 2. 设定所有的wall边界。如果没有移动,设置成Unspecfied;如果有移动,设置成Spcified Location。 要计算出转动后的location,需要用CEL进行坐标变换。下面的连接介绍了转动坐标变换的公式: http://www.kwon3d.com/theory/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:转动后的坐标 把x2,y2输入就可以模拟转动了。 下面是一段CEL例子: LIBRARY:CEL:EXPRESSIONS:phi = 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 : CFX, 动网格

http://blog.singinfo.com/?p=105

Fri, 05 Oct 2007 04:48:00 +0000

CFX:opening temperature vs. static temperature

前面一篇帖子讨论了在CFX里面应该使用什么样opening边界条件。当时只是讨论了动量方程边界条件,没有讨论能量方程边界条件。问题是这样的,在CFX做通风系统模拟时,环境温度是32度,流场内只有热源,没有热量损失。根据常识,温度不可能低于32度,但是实际模拟结果却有部分区域温度低于32度。 问题是稳态的,我只算了两个迭代,在CFX-Post里面发现温度的global range是低于32度的。但是在切面上很难看到那些区域温度低于32度。使用isosurface功能可以方便的看到低温区域。低温区域位于一个opening边界条件旁边。 检查了opening的定义后,发现温度定义为opening temperature。也就是说,如果空气流入时,total temperature是32度;如果空气流出时,static temperature是32度。换句话说,如果空气流入,static temperature实际上低于32度。空气流速越大,static temperature越低。这样就会造成没有热损失,温度却低于32度的情形。 在做通风系统模拟时,opening条件应该统一设成静压和静温。 Technorati : CFX, 边界条件

http://blog.singinfo.com/?p=106

Thu, 04 Oct 2007 05:45:00 +0000

用CFX模拟二维问题