双向流-固计算前处理和耦合设置
1.模型和网格
对于流-固耦合分析,建议使用一个CAD模型同时考虑流场和固体场,此外对这个模型还有以下要求:
-必须在固体与流体模型的交接处建立界面,这个界面上存在两个面,一个属于流场,一个属于固体场;
-在流固耦合界面上,允许存在小的错配;
用户可以将固体模型导入到DM中,然后在DM中建立流场模型。DM具有流场建模的常用工具,使用方便。
为了在结构计算中使用壳体单元,模型必须在DM中建立:
-给定流体模型,然后使用Create > Thin/Surface with zero thickness
当用户选择这个面时,该面的正法向将被标记为绿色从流场传递到固体场的力是矢量,因为流固耦合计算载荷施加在节点上,因此壳体平面的法向并不重要。
但是对于FSI计算来说,默认的中面位置通常是错误的。
壳体单元初始默认节点位于真实几何模型的中面
-从流-固耦合界面传递过来的力默认是施加都壳体的中面上;
-对于薄壁结构这是微不足道的错误;
用户可以通过设置壳体的偏移类型,设置节点的位置:
-偏移壳体单元节点到厚度的顶面或底面;
-在管道分析实例中,假设管道内有流体,则依据节点应该位移真实的流固耦合原则,来设置管道的偏移类型(底面或顶面)。
当对流场模型划分网格时,需要对固体场模型进行抑制。
流固耦合的界面网格并不需要进行匹配:
-力任然在局部和全局守恒;
-相似的网格长度尺度将保持载荷传递的解析度
-通过FSI界面单元法向的差异将在有曲率表面粗糙网格上产生扭曲。
-如果必要需要在流固耦合界面处创建匹配的一致网格。
流体施加的压力方向垂直于流体边界
力矢量传递到固体,但是作用方向并不垂直于固体单元,导致在固体界面存在扭曲力
在流固耦合界面处创建匹配一致网格的方法:
-使用一个零件模型划分流体和固体网格,即一个零件有流场模型和固体场模型组成。
-建立如下的工作流程;
-结构网格划分中包括流体模型和固体模型;
-完成网格划分后,使用File > Export,输出Fluent的网格文件;
-然后抑制流体模型,继续结构计算,然后将输出的流体网格导入到fluent中
用户也可以在其他网格划分器建立流体网格和固体网格,例如ICEM
-通过流体分析系统的设置选项导入流体网格;
-将固体区域网格首先导入有限元模型建立器模块,然后导入到结构分析系统中如果需要的化,可以同时创建流体和固体网格,以便满足流固耦合界面处得节点匹配
(1)系统耦合器可以实现不同求解器计算结果的传递,来实现不同场之间的耦合计算;
(2)对于双向流固耦合,需要迭代计算来满足数据传递和每个场计算的收敛
(3)基于系统耦合器的流固耦合分析流程,包括了识别流体和固体之间的界面区域。所有耦合设置都是在系统耦合器中完成的;
(4)流场模型和固体模型应该在流固界面处满足物理的匹配要求;
(5)如果用户使用壳体单元,则需要对其参考面进行偏移;
(6)较差的网格,导致在曲面形状的流固耦合界面力的数据传递产生错误,因此有必要在流固耦合界面处使用匹配的一致网格。
2.Mechanical分析设置
设置载荷步数为1,载荷步的计算结束时间为流固耦合的求解的时间。
-仅支持一个载荷步;
-可以使用重启动进行修改;
-可以使用表格定义随时间变化的载荷
-流-固耦合的计算时间在系统耦合器中设置,但是在系统耦合器设置的求解时间应该小于等于在结构计算中设置的计算结束时间。将自动时间步选项设置为Off,然后可以使用子步和时间步进行设置求解时间间隔;在求解时间间隔设置过程中,要保证与系统耦合器中的设置相同。
时间积分:
-对瞬态计算将其设置为On;
打开时间积分选项后可以考虑结构的瞬态效应,例如
-用户也可以将其设置为Off来进行静态求解,这个对于获得初始条件非常有用;
-Fluent仍然设置为瞬态;大变形
-应该将其大变形设置为On;
-当将大变形设置为Off时,基本结构网格不会发生变化,因此从fluent回传到结构计算中的力将施加到为变形的结构网格上。
输出控制
-在瞬态计算过程中结果文件*.rst非常大,即使一个小规模计算;
-如果用户不关心结构的应力和应变,可以将其输出选项设置为No,以便减小输出文件
-可以设置输出结果的频率
-设置所有时间点输出;
-等间隔输出。
按照普通的结构计算步骤定义非流固耦合的位移约束和载荷;
在流固耦合界面插入Fluid SolidInterface来实现流体和固体的数据交换;
用户可以根据需要定义多个Fluid Solid Interface。
接触侦测可以被用来模拟流固耦合界面与结构其他界面存在接触的问题。
-但是这样可能会在FLUENT中产生无效的拓扑结构,如果网格是pinched off可以使用使用接触偏移选项来模拟接触,而无需将几何模型之间的间隙减小到0;
-这样做避免了在Fluent中产生无效的几何拓扑;
-但是在Fluent中并不是使用自动方式来阻止流体在小间隙中的流动。
可以使用求解跟踪器来跟踪结构的变形;
选择Solution Information,然后选择ResultsTracker > Deformation from the toolbar,从几何模型上选择一个点作为跟踪的对象,这个点的变形情况,将在求解完成后可以观察到。
这个点的时间历程变形情况也被存储在*.nlh文件,该文件存放Mechanical求解目录。
3.Fluent界面设置
在Fluent环境中正常设置计算区域和边界条件。
激活动网格选项在流固耦合处使用系统耦合器来驱动网格的运动
-基于系统耦合器驱动的动网格区域,接受来自系统耦合器的位移;
-没有与系统耦合关联的区域默认为固定;
-其他区域可以使用刚体,变形等选项。
选择动网格由系统耦合器驱动后,在动网格设置面板单击求解选项(Solveroption),会出现求解稳定选项(SolutionStabilizationoption)
-该选项可以增强流固耦合界面绑定的稳定性;
(Used to stabilize tightlycoupled FSI cases )
-确定前面的rpvar命令。-会在后面进行详细介绍。
确保运动网格区域与临界边界的一致性;
-例如,如果流固耦合界面上的边没有在结构计算设置中设置为固定,则其临界边界在fluent动网格设置中不应该使用固定选项。
基于系统耦合器传递的力是基于相对压力,不是绝对压力
-如果必要的化可以将气压施加到结构计算中的非流固耦合边界上,这时可以将操作压力设置为0。
-如果操作压力等于0,则它并不是适合设为参考压力。
从fluent中传递到系统耦合器中的力报考压力和粘性力,这个具体介绍可以参加fluent的理论手册。
压力分量是基于(p -pref)计算的,其中P为表压力,pref为参考压力;
为了保证从流场传递固体场由绝对压力计算,pref应该忽略。忽略参考压力在操作压力面板或参考值设置面板中将参考压力设置为0。
在流固耦合计算中要小心使用恒定密度的流体(不可压缩流体)
-意味着无限波速
-不能求解声学/压力波(例如,水锤)使用理想气体来代替恒定密度的气体,这有助于流固耦合计算的稳定性
-对于给定的界面位移,不可压缩流体会产生较大的压力变化;而可压缩流体产生的压力变化比较小;
-即使恒定密度假设对于收敛求解时有效的,但是当迭代计算时能够导致求解发散。
恒定的密度的流体+瞬态计算+封闭的体积+FSI,计算终止,不工作。
-这是因为任何小的位移变化都会引起压力的无限变化,最终导致求解终止。
当在Fluent中使用可压缩流体选项求解液体中的压力波时,此时为了考虑流体控制方程的一致性,也需要求解能量方程,即使用户对传热并不感兴趣。
对于来自刚体运动产生的位移,fluent使用0.1作为亚松弛系数(underrelaxation factor)
-当结构存在刚体运动时,为了获得收敛解答,会需许多次耦合迭代;
-当满足了最小耦合迭代次数时,刚体位移URF被设置为1;
-如果最小耦合迭代次数设置为1,则很可能得到不稳定的刚体运动;
-通过需要将最小耦合迭代次数设置大于1并且还需要增加刚体的URF系数。
--注意:求解稳定算法可以用来求解Fluent中的刚体位移。
(rpsetvar 'dynamesh/sdof-solver-options? #t)
瞬态计算:
-程序默认使用1阶隐式算法;
-当使用平滑网格重分方法时,可以使用二阶隐式算法(not bounded);
-如果用户在动网格中激活了网格重分,则仅能使用一阶隐式算法。
-一阶隐式方法可能需要一个非常小的时间步,才能获取较为准确的解答。
系统耦合器中不支持Non-IterativeTime Advancement (NITA)
Fluent中的时间步尺寸(Time Step Size )和时间步的数量(Number of Time Steps )
-这两项不需要在fluent中进行设置,由系统耦合器控制;
-但是时间步的数量必须大于0最大迭代和时间步;
-这个参数表明每次耦合迭代计算中Fluent的迭代次数;
-与普通的瞬态流体计算相比,只需设置较小的迭代次数;
-每个耦合迭代没有点收敛的太紧,因为传递量可能在下一个耦合迭代发生改变。
-使用监听点作为指导,通过足够的迭代便可以获得合理的界面力,但是一般情况下一次耦合迭代不能获得合理的界面力。
4.系统耦合器设置
当用户完成结构和流体计算的设置后,将在系统耦合器的设置选项上出现
-对于系统耦合器设置Upstream data是可用的-更新单元并且双击进入系统耦合器
耦合计算的持续时间:
-系统耦合器为参与耦合计算的求解器设置耦合计算的持续时间
时间步控制
-如果是瞬态需要设置时间步尺寸;
-设置最小和最大耦合迭代次数
(1)以上讨论的系统耦合器使用隐式迭代耦合计算;
(2)每个时间步内的最小和最大耦合迭代次数,用来控制CFD和结构求解每个时间步内迭代计算次数;
(3)在每个时间步内包括多个迭代过程:网格更新和不同求解环境的数据传递;
(4)当流固耦合界面传递数据的变化量小于可接受的值时,完成了一个时间步的计算收敛;
(5)如果每个时间步只使用一次耦合迭代,则等同于显式耦合计算,对于单向后弱耦合情况,显式耦合计算的结果通常是不准确的。
最小和最大耦合迭代:
对于稳态/静态计算,需要以下设置
-使用一个计算时间步,为这个计算时间步设置较多的迭代计算;
-使用很多计算时间步,但是每个计算时间步只使用一次迭代。
收敛的结果是相同的:
-多个计算时间步,允许用户求解过程进行暂定操作,来观察求解结果。
即时的重启动,计算结果也是更新:
-每N步,就可以创建重启动
-N=1时,没有重启动数据可用;在FLUENT中使用自动保存将没有任何意义每个时间步的Fluent中的迭代次数都不相同;
Mechanical 的计算默认每个时间步都输出一次。
最小和最大耦合迭代:
对于瞬态流固耦合计算:
-通过设置最大迭代次数,来保证计算的收敛性;
-检查计算输出文件,表格,监测点数据;
-如果没有这些数据,可以调整设置来观察将最小和最大迭代次数都设置为1,则产生显式耦合迭代
-当然可以将此设置应用于单向流固耦合。
系统耦合器的参与计算环境:
在参与计算环境下可以观察到参加耦合计算使用的软件。
对于Fluent所有壁面区域都会被显示:
-壁面标签可以作为系统耦合器数据双向传递的界面
-其他壁面仅可用于进行单向数据传递,即把流场计算的数据传递到结构计算对于结构计算所有的流固耦合界面(FluidSolid Interfaces )都会被显示
创建数据传递:
用户使用Ctrl键成对的选择Fluent和结构计算中存在流固耦合数据传递的界面,单击右键,选择Create Data Transfer
-数据传递可以是单向,也可以是双向;用户可以通过抑制或删除其中一个数据传递面来实现单向数据传递;
-一次仅能从流体和结构计算中各选一个面;
-每个面仅能被选择一次
创建数据传递:
当用户创建为数据传递后,则在对应的细节设置面板上可以看到参与计算环境,数据传递区域和传递的数据类型;
下伏松弛系数(Under Relaxation Factor)
-默认值为1,表面计算中没有引入松弛;
-对于瞬态工况,松弛系数被应用到每个时间步的第二个耦合迭代步。
--例如,在每个时间步的第一次耦合迭代,整个载荷都被施加。对于稳态工况,URF总是被施加到前一个载荷;
-可能来自前一个子步或前一个耦合迭代。
创建数据传递:
亚松弛系数:
-减小亚松弛系数可以改善求解的收敛性和计算的稳定性;
-对于瞬态计算使用过小的亚松弛系数是非常危险的;
这个详细解释可以看收敛一节的介绍。收敛目标:
-默认值通常获得的解答就比较精确;
-检测的数据用于求解是否收敛。
创建数据传递:
数据传递的斜坡特点:
-不激活该选项
即在第一个耦合迭代子步全部的数据值将通过目标面;
线性到最小迭代:
-传递的数据从前一个耦合迭代步到最终的数值是线性斜坡增加的;
-当达到最小迭代次数时,则完成了全部载荷的传递;
-默认的最小迭代次数为1,因此没有斜坡效应,除非被设置为大于1。
执行控制:
协同仿真序列
-程序默认第一个先求解结构场;
-这个默认设置对于大多数情况求解的差别不大;
调试输出:
-稍后讨论中间重新启动数据输出
-使用该数据作为备份点,而不是后处理数据;
-创建Fluentcas & dat文件
--此外还有任何Fluent要求的结果
-在结构计算中创建重启动点
-r00x 和rdb files,这些文件仅被用来重启动;
-没有rst data时,上述文件仅被用于后处理使用
5.协同仿真设置小结
(1)对于所有的流固耦合问题,结构计算的设置通常是相同的;-将时间积分设置为Off等效于静力学分析。这个方式提供了一个为瞬态计算提供初始解的方式;
-如果用户计划在流固耦合计算中使用重启动,用户在完全求解后必须保留求解文件;
(2)结构计算的结果文件可能很大。建议用户设置结果的输出频率和输出结果的类型,以便减小计算结果的文件。
(3)在结构计算中创建的流固耦合界面,将通过系统耦合器接收来自流体计算的数据:压力。
(4)在Fluent中打开动网格选项,并且使用系统耦合选项驱动网格的运动。这个驱动位移时通过系统耦合器接受来自结构的计算反馈的位移。
6.Profiles的使用
在Fluent中可以使用UDF和Profiles两种功能施加非均匀边界,二者相比Profiles的使用更加方便灵活。Profiles可以在边界处施加空间非均匀边界和时间上的非均匀边界。transient profile有两种格式standard transient profile格式(标准式瞬态profile)((profile-nametransientn periodic?) . . .(field_name-rr1r2r3....rn))
((sampleprofiletransient30)
(time123)
(u102030))
其中:
a.pfofile name和field name不得超过64个字母;
b.其中一个field必须用来表示time,而且time的值必须升序排列;
c.在in-cylinder动网格模式下也可以用carnk angle定义time field
Profiles中常用场变量
Time-时间;
x-空间坐标x;
y-空间坐标y;
z-空间坐标z;
angle-角度;
temperature-温度
omega_x-绕x方向的转动速度;
omega_y-绕y方向的转动速度;
omega_z-绕z方向的转动速度;
v_x-x方向平动速度(u)
v_y-y方向平动速度(v)
v_z-z方向平动速度(w)
p-压力