CFXANSYS使用高手流固耦合至理名言.docx
- 文档编号:20187368
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:45
- 大小:59.58KB
CFXANSYS使用高手流固耦合至理名言.docx
《CFXANSYS使用高手流固耦合至理名言.docx》由会员分享,可在线阅读,更多相关《CFXANSYS使用高手流固耦合至理名言.docx(45页珍藏版)》请在冰豆网上搜索。
CFXANSYS使用高手流固耦合至理名言
CFXuserFortran:
在每个时间步输出结果
问题是这样的,用CFXuserCEL完成变量的同时,还希望CFX输出每个时间步的变量值(比如,每个时间步的压力值)到一个文本文件。
虽然在程序中作了一些控制(以避免在每个coefficientloop都输出结果),但是CFX总是在一个时间步输出同样的变量多次。
UserCEL的功能其实是和CFX的内置CEL一样的,只是用户化的CEL。
UserCEL会在“需要时”,被实时引用。
如果userCEL是用来定义边界条件,在一个coefficientloop,userCEL会被运行多次。
这样结果也会被多次重复输出。
其实CFXuserFortran有两种,第一种是userCEL,它的主要功能是表达式的计算;第二种是junctionboxroutine,它的主要功能是控制计算流程。
userCEL会被实时引用,而junctionboxroutine只在用户设定的运行点运行。
下图是从CFX帮助里复制的流程图。
要完成上面所说的功能,只要定义个junctionboxroutine,然后把运行点设成EndofTimeStep(transientonly)就可以了。
Fri,14Dec200718:
34:
57+0000
Fluent:
计算叶轮功率
问题是这样的,Fluent可以不可以计算驱动搅拌器叶轮所需要的功率;如果可以的话,是不是要做面积分。
按照物理学上的定义,对于旋转的系统,功率=力矩*转速。
通过表面积分(把每个壁面单元,wallface,的功率相加)可以得到整个系统的功率。
但是,这个方法比较麻烦,需要用UDF计算,可能比较费时间。
既然功率=力矩*转速。
转速我们是已经知道的。
力矩可以在Fluent->Report->Forces…上计算得到。
因此,如果叶轮转动轴是和x,y,z轴其中之一方向一致的话,我们可以直接用Fluent图形界面进行计算。
当然如果转动轴方向不和系统坐标一致,UDF还是需要的(有兴趣的朋友可以email给我)。
这是因为力矩和转速都是矢量,只是在和系统坐标一致时,才可以方便的找到转动轴方向的力矩分量。
具体的做法是这样的:
1.Fluent->Report->Forces…把Options选成Moments,把MomentCenter设成转动轴上任意一点(但必须要是转动轴上的一点,否则就错了)。
在WallZones里选择所要计算的壁面。
然后点击Print。
2.Fluent会输出力矩的三个放量,单位是Nm,牛顿米。
3.假设转动轴是在x方向的,把x分量乘以转速(单位是弧度每秒),就得到所需的功率了。
Wed,12Dec200718:
58:
45+0000
在Fluent里设置回流边界条件(recirculationopening)
这里的回流边界和流体力学里说的回流是不一样的。
在室内通风系统,由很多设备,比如空调室内机,空气过滤器,会从房间内吸走一定量的空气,然后返还等量的空气。
这一过程中,可能空气的温度会发生变化(空调室内机),空气的组分会发生变化(空气过滤器)。
空气的质量总是等量的。
在Airpak里面有一种特别的opening条件,可以定义recirculationopening。
在这种边界条件中,必须是两个边界组成一对,质量保持守恒,但是可以有热量和组分的变化。
问题是这样的,怎么在Fluent里面定义这样的边界条件呢。
要在Fluent里面定义这样的边界条件,需要输入下面两行scheme(和输入TUI一样):
(rpsetvar‘icepak?
#t)(models-changed)如果觉得每次输入很麻烦的话,可以把这两行放在一个文本文件中,然后把这个文本文件命名为*.scm。
在Fluent->File->Read->Scheme…可以读入这个文件,完成设定。
完成设定后在Fluent的boundaryconditions面板,就会多出来两个选项,然下图所示(Fluent6.3.26)。
具体的做法就不多说了,因为界面还是相当直观的。
当然,另外一种办法是用DEFINE_ADJUSTUDF来做,但是这个办法会复杂一些。
Tue,11Dec200719:
21:
34+0000
ESI发布CFD-Ace+v2008.0
主要的提升有:
1.多面体网格;2.燃料电池模型;3.新的边界层网格生成技术。
新闻链接CFX-Ace+网站
Mon,10Dec200719:
43:
37+0000
在Tgrid里划分多个体网格
很多时候我们需要一个网格里面有多个体(例如,定义源项,有转动部分),但是默认情况下Tgrid只划分其中一个体的网格(严格说,只输出其中一个体的网格到*.msh文件)。
要解决这个问题,需要改变Tgrid的默认设置:
Tgrid->Mesh->Tri/Tet->Controls->Init/Mesh,然后把Non-FluidType选成Fluid(默认选项是dead)。
和ICEMCFD一样,Tgrid里面是没有体的。
体是由面组成的封闭空间决定的。
是用默认设置的话,Tgrid只会把最大的体输出,其余的体设成dead,不会输出。
TgridTutorial的第一个练习题就是有关多个体划分网格的。
具体操作可以练习第一题。
Sun,09Dec200719:
58:
24+0000
Fluent安装后不能启动
问题是这样的,Fluent安装后不能启动,并且给出下面的错误消息:
Theapplicationfailedtoinitializeproperly(0XC0150002).ClickOKtoterminatetheapplication出现这样的问题是因为在64位windows上,Fluent需要Microsoft.NETFramework2.0libraries。
需要下载.NETframeworkVersion2.0RedistributablePackage。
x64版本可以在微软网站免费下载到。
当然最好的方法是,使用windows的自动更新功能,下载安装所有的补丁和升级程序。
下载链接:
Sat,08Dec200720:
07:
51+0000
Airpak3.0.16发布
Fluent刚刚发布了Airpak3.0.16。
在此以前的版本是Airpak3.0.12(链接)。
我还没有具体试用过,应该没用功能性的提高,主要是提高稳定性。
最重要的是从这个版本起,Airpak开始支持64位系统(Windows和Linux)。
用户可以求解更大更复杂的问题。
Airpak可以在Fluent用户服务中心下载。
Fri,14Dec200704:
32:
00+0000
FluentforCatiaV53.1发布
包括32位windows和64位windows版本。
产品介绍网页:
Technorati:
Catia,Fluent
Wed,10Oct200702:
34:
00+0000
本博客主要介绍ANSYS,CFX,Fluent的最新更新,使用技巧等。
同时也有CFD和FEA基本理论,及其他CAE软件的介绍。
CFX11.0的两个CEL新功能
1.inside()函数有时候我们需要在不同的区域设置不同的属性。
比如,要初始化一个自有表面问题,在volumeA体积比是1,在volumeB体积比是0。
在10.0时,需要把这两个区域防近两个domain,然后对各自domain进行初始化。
这样,需要建立domaininterface来连接domain。
可能只能使用GGI来连接,这样精度就会受到影响。
在11.0,inside()函数可以方便解决这个问题。
inside()函数的功能和step()函数的功能类似(if…else…语法)。
如果在指定区域内,返回1;否则,返回0。
首先,找到volumeA和B的原始区域名。
只要把树形目录里的mesh展开,就可以看到下面所有的面和体区域。
面区域以F开头。
体区域以B开头。
然后,写出inside()@REGION:
B****函数。
最后把这个CEL函数放到模型中。
下面是一个利用inside()函数进行初始化的例子:
Initial_C=1[kgm^-3]*inside()@REGION:
B3872在区域B387内,初始值为1;否则为0。
2.REGION:
语法在10.0时,基于区域的函数如area()@只能基于已定义边界条件的面。
也就是说,@后面只能跟边界条件名,而不能是网格中的原始区域(primitiveregion)。
这样,如果要定义基于原始区域的函数,而这个区域不是边界条件时,就会比较麻烦。
11.0提供的REGION:
语法可以方便的解决这个问题。
其实REGION:
的用法已经在上面的例子解释了,这里就不多说了。
Technorati:
CEL,CFX
Sun,07Oct200705:
03:
29+0000
简化Airpak模型的小经验
Airpak虽然提供了非常强大的划分网格功能,不过如果不认真控制的话,还是会产生非常大的网格。
最近遇到一个问题在32位PC上,Airpak不能显示大于一百万网格的PMV和PPD。
我猜想PMV和PPD结果并没有保存在最终结果中,需要暂存在内存中,因此对内存的要求会增加。
在使用Airpak的过程中,还遇到过其它和网格质量相关的问题。
网格质量低的话,会导致收敛问题。
下面总结一些我发现的经验(有新发现的话,持续添加)。
1.尽量使用Hexaunstructured方法。
Tetra生成的单元数最多,HexaCartesian次之,Hexaunstructured最少。
HexaCartesian不能划分弯曲、倾斜的几何形状,不推荐使用。
Tetra可以用在复杂的几何形状。
Tetra生成需要很长时间。
Hexadominant是指混合使用Hexaunstructured和Tetra。
2.少用CAD,多用polygon。
虽然Airpak3.0允许直接使用CAD几何形状,但是由于CAD本身的缺陷或者过于复杂,生成Tetra网格会很慢,并且单元数太多,浪费计算资源。
用Polygon可以近似复杂的形状,进而生成效率高的Hexaunstructured网格。
3.使用Non-conformalMeshing。
如果room里有比较小的细节的话,把这些细节放到assembly,然后meshseperately,能够显著减少单元数。
网格质量也能大大提高。
4.控制Minimumgap。
默认的minimumgap是1毫米。
在模拟大的流域时,如果一些object没有对齐,会生成非常大纵横比的单元,影响收敛。
如果object很多,对齐困难的话,使用大一点的minimumgap就可以解决这个问题。
5.使用Perobjectcontrol。
可以更好的控制,物体旁边的边界层等。
6.检查网格质量。
网格质量的第一项FaceAlignment非常重要,如果有很多单元在0-0.15的范围的话,会很难收敛或发散。
把下面的max改成0.15,然后点击柱状图,可以检查低质量单元的位置。
7.如果有收敛问题,可以暂时deactivate所有object,然后依次activate进行测试,找出问题所在。
Airpak的帮助文件对网格生成有比较详细的阐述,如果认真阅读的话,会有很大的帮助。
网格生成是CFD模拟中最重要的环节之一,因此磨刀不误砍柴工。
Technorati:
Airpak,网格
Sat,06Oct200703:
50:
23+0000
CFX:
用动网格来转动固体表面
在一些CFD模拟中,用户需要测试流场对一系列尺寸的反应。
比如所当管道的直径为10mm,12mm,和14mm时,流场各有什么不同。
DesignModeler里面的parameter可以做到这一点。
如果使用CADinterface的话,DesignModeler可以读进上游软件的parameter,比如Pro/E。
这样做的问题是每次都需要重新生成网格(用DesignXplorer可以自动化这一过程)。
其实我们可以用CFX的Meshdeformation功能实现这个目的。
问题是这样的,要测试控制叶片在0-5度内,每转动一度时流场的不同。
做法是这样的:
1.在domain上设定meshdeformation。
2.设定所有的wall边界。
如果没有移动,设置成Unspecfied;如果有移动,设置成SpcifiedLocation。
要计算出转动后的location,需要用CEL进行坐标变换。
下面的连接介绍了转动坐标变换的公式:
如果转动轴和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)ENDENDENDTechnorati:
CFX,动网格
Fri,05Oct200704:
48:
00+0000
CFX:
openingtemperaturevs.statictemperature
前面一篇帖子讨论了在CFX里面应该使用什么样opening边界条件。
当时只是讨论了动量方程边界条件,没有讨论能量方程边界条件。
问题是这样的,在CFX做通风系统模拟时,环境温度是32度,流场内只有热源,没有热量损失。
根据常识,温度不可能低于32度,但是实际模拟结果却有部分区域温度低于32度。
问题是稳态的,我只算了两个迭代,在CFX-Post里面发现温度的globalrange是低于32度的。
但是在切面上很难看到那些区域温度低于32度。
使用isosurface功能可以方便的看到低温区域。
低温区域位于一个opening边界条件旁边。
检查了opening的定义后,发现温度定义为openingtemperature。
也就是说,如果空气流入时,totaltemperature是32度;如果空气流出时,statictemperature是32度。
换句话说,如果空气流入,statictemperature实际上低于32度。
空气流速越大,statictemperature越低。
这样就会造成没有热损失,温度却低于32度的情形。
在做通风系统模拟时,opening条件应该统一设成静压和静温。
Technorati:
CFX,边界条件
Thu,04Oct200705:
45:
00+0000
用CFX模拟二维问题
CFX只有3d求解器,在求解二维问题时,需要有特别的设置。
当然,Fluent有专门的2d求解器,求解速度要快得多。
二维问题可以分为平面二维(planar2D)问题和轴对称二维(axisymmetric2D)问题。
1.几何形状平面二维:
在DesignModeler里面,extrude二维sketch。
延伸的长度不重要,但是厚度要比较薄。
轴对称二维:
在DesignModeler里面,revolve二维sketch。
转动的角度部重要,1度到5度比较合适。
2.网格平面二维:
在CFX-Mesh里面,把Option->MeshingStrategy改成Extruded2DMesh,NumberofLayers=1,然后定义ExtrudedPair,Option=Translational轴对称二维:
在CFX-Mesh里面,把Option->MeshingStrategy改称Extruded2DMesh,NumberofLayers=1,然后定义ExtrudedPair,Option=Rotational,并定义轴。
生成的网格主要由锲形(prism)网格组成。
轴对称情况下,靠近轴的地方会有退化网格。
3.定义二维问题使用和三维问题类似的边界条件。
对前面和后面,定义成symmetry(对称)边界条件就可以了。
如果没有定义成对称条件的话,CFX-Solver回提示不能正确计算梯度,求解器会自动中止。
Technorati:
CFX,二维
Wed,03Oct200707:
27:
00+0000
用CFX模拟流体在不同材料里的扩散
在生物医药的应用上,有时候需要模拟药物在不同材料里的扩散。
流体本身没有流动,但是药物会从高浓度区域扩散到低浓度区域。
要求解这个问题,不需要求解速度场和对流项。
只要求解一个扩散方程。
因此自己开发程序或者用matlab可能会更适合。
用CFX可以模拟比较复杂的几何形状。
1.不求解动量方程。
Insert->Solver->ExpertParameter->ModelOver-rides,把solvefluid的选项改成f。
2.不求解湍流方程。
把湍流模型设成laminar3.不使用任何其他模型。
没有传热,多相流等。
4.定义一个Additionalvariable。
然后再domain里面激活这个additionalvariable,使用diffusivetransportequation。
并且定义该additionalvariable在里面的扩散系数。
5.定义边界条件。
在CFX里,默认情况下,CFX-Pre会对所有的domain使用同样的设定。
如果要给不同的domain设定不同的扩散系数的话,需要作一个高级设置。
Edit->Options->CFX-Pre->EnableBetaFeatures。
最后在树形目录的Simulation上点右键,选空ConstantDomainPhysics。
这样便可以给不同的区域顶以不同的扩散系数了。
当然,在做网格时,要先把domain划分好。
Technorati:
CFX,扩散
Mon,01Oct200707:
56:
00+0000
CFX:
InsufficientCatalogueSize
前面一篇帖子,介绍了CFX求解器堆栈长度不足的处理。
最近遇到一个实例,在进行瞬态计算时,CFX报告了下面的错误消息:
+——————————————————————–+|***INSUFFICIENTCATALOGUESIZE***||ACTIONREQUIRED:
Increasethefilecataloguesize.||IfthesituationpersistspleasecontacttheCFXCustomerHelpline||givingthefollowingdetails:
-||Currentcataloguesize:
50822|+——————————————————————–+这是由于CFX的存储管理系统(MemoryManagementSystem,MMS)没有分配足够的内存给所要求解的问题。
这种问题是不常见的。
有两个办法可以解决这个问题,在CFX-Pre里面用CCL控制,或者在CFX-Solver里,配置相应的参量。
它们的作用是一样的。
1.在CFX-Pre里用CCL控制在SolverControl上点右键,然后选择”EditinCommandEditor”。
在CCL里插入下面的语句:
CatalogueSizeMultiplier=1.2这句定义可以直接放在”SOLVERCONTROL”下面。
点击Process确认。
2.在CFX-Solver里配置参量如果是用命令行提交CFX,在CFX5solve命令里加上”-size-mms1.2″控制。
这个控制是让MMS请求1.2倍的内存。
根据情况不同,可以使用更大的值。
如果是用图形界面提交CFX,在solver标签下面,可以输入advancedarguments。
[...]
Sun,30Sep200705:
40:
00+0000
配置windows系统CFX并行计算
最近被问到怎么给windows系统配置CFX并行计算。
其实CFX的并行计算功能是很容易配置的。
32位windows上使用mpich,64位windows上使用mpich2。
如果已经安装了ANSYSWorkbench的话,帮助里会有一本InstallationandLicensingDocumentation。
在里面搜索mpich会看到具体的配置方法:
1.在CFX-Launcher上,Tools->CommandLine2.安装mpi2.132位系统,输入:
cfx5parallel-install-mpich-service2.264为系统,输入:
cfx5parallel-install-mpich2-service3.注册用户3.132位系统,输入:
cfx5parallel-register-mpich-user3.264位系统,输入:
cfx5parallel-register-mpich2-user4.输入用户名和密码。
个人认为这个用户名和密码并不是很重要,可以输入任意值。
如果使用分布式并行计算的话,还需要安装rsh服务和配置防火墙。
对于前者,安装帮助上的说明安装就可以了;对于后者,通常我是直接把wi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CFXANSYS 使用 高手 耦合 至理名言