
CFX10.0使用心得.doc
6页使用帮助1. 打开,设定工作文件夹(Working Directory)2. 打开预处理窗口(CFX-Pre 3. 在CFX-Pre窗口中,新建一个文件(File->New Simulation或者点击,后缀为.cfx),右侧的Simulation Type默认为General,一般不用更改)根据需要在CFX-Pre中做相应的设置,相关内容详见下文打开CFX-Solver(File->Write Solver File或者点击)说明:Operation可以选择Write Solver File的同时,打开CFX-Solver(默认值),打开CFX-Post或者什么都不操作求解后处理,打开CFX-Post对CFX-Pre的常规设置做一个简单的介绍1.导入网格(File->Import Mesh或者点击),根据几何文件的格式选择相应的Mesh Format,然后打开文件2.新建Simulation Type(Create->Flow Objects->Simulation Type或者点击)1) Steady State,定常问题,为默认值,如果是定常问题可以跳过这步2) Transient,非定常问题,有以下三个选项:a:Time Duration:计算结束的控制参数,当计算到达设定值即停止计算b:Time Steps:时间步长c:Initial Time:初始时间3.新建Domain(Create->Flow Objects->Domain或者点击)General OptionsBasic Setting:(1) Location:选择这个Domain所在的位置(2) Domain Type:可以选择Fluid Domain,Solid Domain, Porous Domain(3) Domain List:选择相应的流体,可以是CFX自带的一些常规物质,也可以选择自定义物质。
Domain Models:Reference Pressure:设定参考压力Buoyancy:设定是否有浮力Domain Motion:设定参考坐标系为静止(Stationary)或者旋转(Rotating),旋转的可以设定转速和旋转轴Fluid Models:一般主要设置热传递和湍流模型,选择哪种模型较为合适可以参考帮助文件说明:Domain就是域,即计算区域,通常只需要设定一个Domain有些搅拌的问题会用到两个域,从而可以设定不同的参考坐标系,就是通常所说的MFR(Mutiple Frames of Reference)4.新建Boundary Condition(Create->Flow Objects->Boundary Condition或者点击)Basic Setting:分别设置边界条件的类型(Boundary Type)和位置(Location)Boundary Type有5种:Inlet,Outlet,Wall,Opening,Symmetry5.新建Subdomain(Create->Flow Objects->Subdomain或者点击)Subdomain的作用是可以在Domain的某一部分或者整个Domain设置源项,例如化学反应。
6.新建Interface(Create->Flow Objects->Interface或者单击)Interface是用来连接两个不同Domain的,所以通常只有在设置了多个Domain的时候才会需要用到Interface7.新建Global initialisation(Create->Flow Objects->Global initialisation或者单击)设置初值:设置一个和真实值较为接近的初值会有利于收敛8.定义Solver Control(Create->Flow Objects->Solver Control或者单击)(1)Advection Scheme可以选择High Resolution(默认值),Upwind,Specified Blend Factor2)关于如何选取时间步长Timescale,可以参考下面的介绍(摘自CAE BEGINNER)3)Residual Target默认为1E-4,如果要求高的话还可以提高精度CFX的求解器是比较特别的,和普通教科书上的不太一样它使用耦合求解器(coupled solver),并且使用求解瞬态方程的方法来求解稳态问题。
时间步长(timescale)是影响收敛的最重要的因素时间步长在耦合求解器里的重要性,相当于松弛因子(underrelaxation factor)在分离求解器(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 提供了时间步长系数(Timescale factor)这个新选项,可以方便的测试不同的timescaletimescale 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一些补充说明:界面左侧纵向列表中的内容(例如Domain、Subroutine、Boundary Condition等)可以双击修改,横向选项卡可以选择查看修改Mesh(网格)、Expression(自定义表达式)、Materials(物质)等添加自定义表达式、物质、化学反应都需要在相应的选项卡中完成Junction Box Routine的使用将Fortran文件(例如拷入工作文件夹中编译,Tools->Command Editor,输入! system ("cfx5mkext -name B ") == 0 or die;然后按Process(B可以随意)定义User Routine(Create->library Objects->User Routine或者单击),名字任意,OKOption:选择Junction Box RoutineCalling Name:就是调用的程序名如果不知道,可以打开Fortran文件,开头几行跟在SUBROUTINE后面的那个就是Calling Name。
Library Name:编译的时候自己定义的那个名字,上面的例子就是BLibrary Path:工作文件夹的路径Junction Box Location:根据需要选择相应的选项5.一定不能忘了在Solver Control把Junction Box Routine打上勾,并且选中刚刚定义的User Routine。












