七十一、Fluent表达式进阶实例 |
您所在的位置:网站首页 › fluent里面定义面积热源 › 七十一、Fluent表达式进阶实例 |
文章七十、Fluent表达式基础实例介绍了Fluent表达式功能的基础案例,这篇文章我们介绍几个比较复杂的案例。下面三个案例在文章末尾都提供了case和dat文件。 1. 案例4:入口物理量=出口物理量 1.1 说明 将出口outlet的温度减去一个值后赋值给入口inlet 这个案例在交流群里经常会被提到,也有很多同学问起来。很多人建议UDF,但如果通过UDF进行设置,会较为复杂。 本质上就是将模型的出口物理量赋值给入口,不一定是温度,也可以是压力、流量等物理量 注: a. 此案例会用到表达式Functions中的Reduction。所谓Reduction(缩减函数)就是将本来场的数值缩减成一个数,比如Average平均、AreaAve面积平均等。 也就是本来很多数据通过Reduction函数可以缩减为一个数据。 b. 这就是我认为Expression功能优于UDF的地方,通过表达式可以直接得到计算域或者边界某物理量的平均值。 但如果使用UDF则需要对网格进行叠加求平均,如果涉及并行UDF,还需要考虑节点之间的数值传递,更加复杂。 1.2 案例描述 模型有一个速度入口和一个压力出口,初始时,流场温度293K,壁面温度333K。入口温度=出口温度-10K 打开in边界条件 点击expression,弹出表达式窗口 输入公式:AreaAve(StaticTemperature,['out'])-10[K] AreaAve(,[, ...]):Reduction函数,表示面积平均。 表示需要面积平均的物理量或者表达式,本例即温度StaticTemperature; [, ...]表示需要进行平均的位置,可以是边界boundary也可以是计算域cell zone,还可以同时对多个位置进行平均,本例即out边界。 AreaAve(StaticTemperature,['out'])可以获取out边界的面积平均温度,然后减去10K赋值给入口温度。 1.3 计算验证 监测入口和出口温度,两者相差10K 2. 案例5:根据出口参数调节入口参数 比如我们确定了出口温度,想知道入口温度为多少时能达到这个出口温度。 当然可以手动去试,但是我们更希望能够自动调节。 2.1 案例描述 壁面温度333K,出口温度303K,流速固定。确定入口温度? 思路:根据出口温度调节入口温度,如果当前出口温度较低,增加入口温度;如果当前出口温度较高,降低入口温度。 2.2 物理量命名为表达式Named Expressions 由于需要反复使用入口和出口的面积平均温度,将入口和出口温度面积平均保存为Named Expressions,这样可以直接使用,而不必每次都写一堆表达式。 User-Defined~Named Expressions~New 点击New,打开表达式窗口 Name:输入表达式的名字tin,后面就可以直接用这个名字来代替下面的表达式 Definition:输入表达式。 AreaAve(StaticTemperature,['in']) AreaAve(,[, ...]):Reduction函数,表示面积平均。 表示需要面积平均的物理量或者表达式,本例即温度StaticTemperature; [, ...]表示需要进行平均的位置,可以是边界boundary也可以是计算域cell zone,还可以同时对多个位置进行平均,本例即in边界。 同理命名出口温度tout 2.3 边界条件设置 上述的命名Named Expressions只是为了边界条件表达式的方便。现在开始设置边界条件 根据出口温度调节入口温度,因此我们需要设置入口温度。打开in边界条件, Thermal界面设置下拉框有expression和Named Expressions Expression:表示通过表达式的方式设置此边界条件,我们选择此项即可 Named Expressions:此选项下的New Expression也是设置表达式,只不过仍然需要给表达式命名,然后再使用 IF(tout303.5[K],tin-0.1[K],tin)) 表达式逻辑: a. 双重IF语句,IF(,,),第一个参数为判断条件,后面的两个表示要执行的语句。如果为真,则输出,否则输出 b. 我们想要出口温度为303K,但实际无法控制刚好等于303K,需要给一个范围302.5K-303.5K之间。 c. 如果出口温度tout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |