ue Size Multiplier = 1.2 这句定义可以直接放在‖SOLVER CONTROL‖下面。点击Process确认。 2. 在CFX-Solver里配置参量 如果是用命令行提交CFX,在CFX5solve命令里加上‖-size-mms 1.2″控制。这个控制是让MMS请求1.2倍的内存。根据情况不同,可以使用更大的值。 如果是用图形界面提交CFX,在solver标签下面,可以输入advanced arguments。 [...]
http://blog.singinfo.com/?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位系统,输入: cfx5parallel -register-mpich-user 3.2 64位系统,输入: cfx5parallel -register-mpich2-user 4. 输入用户名和密码。个人认为这个用户名和密码并不是很重要,可以输入任意值。 如果使用分布式并行计算的话,还需要安装rsh服务和配置防火墙。对于前者,安装帮助上的说明安装就可以了;对于后者,通常我是直接把windows防火墙关了。 另外,在windows上使用mpich要比pvm快很多很多。用pvm不需要特别的设置。 Technorati : CFX, 并行计算
http://blog.singinfo.com/?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就可以了。 http://blog.singinfo.com/?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 Vista,CFX对Windows Vista的支持是beta版本。 Technorati : ANSYS, Vista http://blog.singinfo.com/?p=103
Tue, 02 Oct 2007 13:12:07 +0000
本博客主要介绍ANSYS,CFX,Fluent的最新更新,使用技巧等。同时也有CFD和FEA基本理论,及其他CAE软件的介绍。
CFX:如果确定timescale
CFX的求解器是比较特别的,和普通教科书上的不太一样。它使用耦合求解器(coupled solver),并且使用求解瞬态方程的方法来求解稳态问题。时间步长(timescale)是影响收敛的最重要的因素。时间步长在耦合求解器里的重要性,相当于松弛因子(underrelaxation fac
tor)在分离求解器(segregated solver)里的重要性。前面有一篇帖子,讲了时间步长在流固耦合传热问题中的作用。 打个比方,在开车时。如果速度很慢,就会比较安全,但是需要比较长的时间才能到达目的地;如果速度很慢,就会节省时间,但是可能会不安全。同样的,在用CFX求解时,如果timescale很小,收敛会很稳定,但是需要很多的迭代,速度较慢;如果timescale很大,需要的迭代次数较少,但也可能引起求解器不稳定,甚至发散。因此合适的timescale对于收敛是很重要的。 通常情况下,timescale可以根据(特征时间=特征长度/特征速度)这个公式算出来。但是对于复杂的流场而言,直接推算出合适的时间步长还是有一定难度的,需要试出合适的timescale。 在CFX里,auto timescale是让系统自动估算出timescale,而physical timescale是由用户直接输入timescale。通常情况下,系统估算出的auto timescale过于保守,用户需要使用较大的physical timescale。另外,由于使用耦合求解器的缘故,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三种情况。平均残差(RMS residual)和全局不平衡(global imbalance)的曲线图附在下面。 从曲线图可以清楚地看出,使用小的时间步,收敛曲线呈波浪形,或收敛缓慢,全局不平衡较大;使用大的时间步,收敛曲线呈‖之‖字形上下跳动。下面这个例子,timescale factor = 10可能较快得到收敛结果,最终我使用了timescale factor = 20。曾经尝试修改能量方程的时间步长,但是效果不太好。 timescale factor = 1 timescale factor = 10 timescale factor = 100 Technorati : CFX, 收敛, 时间步长 http://blog.singinfo.com/?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 frame 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 Momentum Models 在这个帮助里还提到,除了在位移周期性边界条件上设定压力差,用户还可以设定质量流量(massflow rate)。通常情况下,设定质量流量会比较难收敛。因为CFX使用的是基于压力的求解器,如果使用质量流量的话,系统需要根据质量流量来收敛得到压力差;而如果设定压力差的话,系统会直接使用压力差来计算,因此比较容易收敛。 Technorati : CFX, 周期性边界条件
http://blog.singinfo.com/?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 http://blog.singinfo.com/?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 supportedDefaulting to X_DEVICE_DRIVER with standard visual 我在网络上也发现不少问同样问题的帖子。出现这个警告信息的原因是没有安装Hummingbird Exceed 3D。Exceed 3D是一个附加模块,它并不是运行GAMBIT所必须的,因此我们可以忽略这个警告。 Technorati : GAMBIT
http://blog.singinfo.com/?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(message 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 : CFX, MPI
http://blog.singinfo.com/?p=101
Wed, 22 Aug 2007 05:12:00 +0000
CFX:读取CGNS网格
CGNS(CFD General Notation System, http://www.cgns.org/)是一种通用的CFD文件交换标准。很多软件可以输出、输入CGNS格式。下面的链接提供了一些CGNS例子:http://www.cgns.org/CGNSFiles.html 很多CGNS格式网格是multi-block structred mesh。在读入CFX-Pre之后,在图形界面上,显示为很多block。但是,网格实际上是连续的。用户并不需要用interface把网格连接起来。 在CFX Tutorial 8里面的例子使用的是Patran Neutral格式,需要用interface把三个区域连接起来。 如果不太熟悉这些网格格式的话,
可以用简单的方法测试出来: 1)定义一个简单的边界条件,计算一下,看看流场是不是连续。事实上,如果网格不连续的话,在CFX-Solver刚开始求解时,会提示有isolated fluid region。 2)如果网格是不连续的,CFX-Pre会自动把界面处的网格放在Domain Default边界条件里面。如果网格是连续的,界面处的网格会被默认为是连通的,被忽略掉。因此,这要选中Domain Default,看看里面有没有界面网格就行了。 CGNS网格里的界面会被忽略,而Patran网格的界面会被放在Domain Default里,当成是壁面条件。 另外我试用了用ICEM CFD把CGNS structured mesh转换成unstructured mesh。ICEM CFD虽然能完成转换,但是不能更新part名,还需要看看有什么其他解决方法。 Technorati : CFX, CGNS, 网格
http://blog.singinfo.com/?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图表是去不掉的(如果有谁知道怎么去掉这个图标,欢迎email给我)。 问题是这样的,默认的图片背景色是Workbench默认的蓝白过渡背景色,通常情况下,我们可以通过CFX-Post -> Edit -> Options来修改(如下图所示),但是实际上用户看不到改变背景色的选项(另一幅截图)。 当CFX单独运行时,选项如第一幅图;当CFX在Workbench里运行时,选项如第二幅图。 当在Workbench里运行时,需要通过修改Workbench的背景色来设定CFX背景色。[Project] tab -> Tools -> Options -> Common Settings -> Graphics Style。 一点题外话,CFX-Post的report功能还是新功能,还不太稳定。比如在comment里插入的图片在发布后不能正常显示。这个问题可能在以后的版本中得到解决。 Technorati : CFX, Workbench, 背景色 http://blog.singinfo.com/?p=96
Tue, 14 Aug 2007 03:21:24 +0000
Flomerics发布EFD 8
新闻连接在这里。 EFD是Engineering Fluid Dynamics的缩写,基于和通用CFD同样的数学理论。同时和CAD软件有更好的协作性,使用也相对容易。 Technorati : EFD, Flomerics
http://blog.singinfo.com/?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内存来
存储实型变量,2.7GB内存来存储整型变量,总共需要12GB多内存。 在CFX里,任何一个堆栈的长度都不能超过2147483647。 +——————————————————————–+ | Memory Allocated for Run (Actual usage may be less) | +——————————————————————–+ Data Type Kwords Words/Node Words/Elem Kbytes Bytes/Node Real 2481110.5 318.47 330.24 9691838.0 1273.89 Integer 712176.8 91.41 94.79 2781940.8 365.66 Character 2480.0 .32 .33 2421.9 .32 Logical 40.0 .01 .01 156.2 .02 Double 1208.0 .16 .16 9437.5 1.24 +——————————————————————–+ | ERROR #001100279 has occurred [...] http://blog.singinfo.com/?p=90
Sun, 05 Aug 2007 06:33:08 +0000
CFX:浮力和对称边界条件
前面有两篇文章(文章1、文章2)提到大气边界层的定义。流场的顶面(天空)可以定义成对称边界条件。 在有些情况下,可能需要考虑浮力项,比如在大气边界层内有一个热源。在Domain上加上浮力项后,求解器可能会给出下面的错误信息: ERROR #001100279 has occurred in subroutine ErrAction. Message:When buoyancy is active, all symmetry plane normals must be perpendicular to the gravity vector. Writing crash recovery file ERROR #001100279 has occurred in subroutine ErrAction. Message: Stopped in routine ASS_GLOB_SYM 起初我以为这是由于软件问题,在把expert parameter里的vector parallel tolerance设为90或大于90后,可以让求解器继续运行。 这个错误信息说的是,如果激活浮力项,所有对称面的法线方向必须要和重力矢量垂直。也就是说对称面必须和重力方向平行。因为有浮力项时,在重力方向会有对流速度。如果对称面和重力不平行的话,在对称面上会有一个垂直于该面的速度分量。而对称面的物理意义是速度场只和该面相平行。这两点之间是矛盾的,因此对称面必须和重力方向相平行。 因此要解决上面的问题,需要定义一个合适的边界条件,而不是修改expert parameter。 Technorati : CFX, 对称边界条件, 浮力 http://blog.singinfo.com/?p=91
Sat, 04 Aug 2007 07:22:00 +0000
本博客主要介绍ANSYS,CFX,Fluent的最新更新,使用技巧等。同时也有CFD和FEA基本理论,及其他CAE软件的介绍。
Airpak收敛问题的解决
由于Airpak使用Fluent求解器,默认情况下对流项使用一阶迎风(first order upwind)离散格式。通常情况下,收敛性还是很好的。最近帮忙解决了几个收敛问题,现在把解决方法列在下面,本帖将持续更新。 1. slack value。在使用Airpak 3.0做non-conformal mesh的时候,需要填写slack值。slack值可以让assembly的范围比Airpak对象稍大。有时候,assembly和room之间会有一个很小的缝隙,使网格质量很差。 由于slack值是一个相对值,当更新了模型的尺寸后,assembly的大小也会随之变化,这样也容易导致小的缝隙。 2. 多面体(ploygon)高度的差别。比如有两个多面体,起始高度都为z = 0 m。如果第一个多面体的高度为10 m,第二个多面体的高度为10.01 m。这两者之间会有0.01 m的缝隙,网格质量会很低。 要检查网格质量,可以检查face alignment。把网格质量范围设成0.0到0.15之间,检查有没有质量低于0.15的网格。如果有的话,可以点中相应的柱状图,检查低质量网格所在的位置。另外align face功能可以帮助精确对齐表面。