CFD-post自动化脚本

CFX脚本语言采用perl和其特有的cfx脚本语言混合编程,其中perl语句需要以!开头,以;结尾,perl的变量需要以$开头。

perl语言的特点就是其灵活性,同样的方法可能可以有无数种方法去达成,举个例子,比如说有一组变量,分别是[1,2,3,4,5,6],如果用C语言的话只能用数组,然后通过下标递增的方式去遍历。

但是perl语言允许将实参作为另一个形参,也就是说,可以设置为

!$A1 = 1;
!$A2 = 2;

perl允许这样

!$num = 1;
!$res = $A$num + $A2;#这条代码等同于$res = $A1 + $A2

##res = 3

因此,通过简单的perl入门,即可写出如下自动化结果处理脚本。

1.在进口截面批量切割周向截面

首先在一个轴向位置创建一个截面Plane 1

如下代码可以将Plane 1 在周向上均分17个截面,然后每一个截面在径向上又分隔成20个截面

!$numradiu = 20;

!$r0 = 0.101;
!$r1 = 0.17885;

!$numtheta = 17;
!$delt_t = 360/$numtheta;

!$delt_r = ($r1-$r0)/$numradiu;
!for($i=1;$i<=$numtheta;$i++){
!$ti0 = ($i-1)*$delt_t;
!$ti1 = $i*$delt_t;
	!for($j=1;$j<=$numradiu;$j++){
		!$rj0 = $r0+($j-1)*$delt_r;
		!$rj  = $r0+$j*$delt_r;

		ISO CLIP: Le $i $j
  Apply Instancing Transform = On
  Apply Texture = Off
  Blend Texture = On
  Colour = 0.75, 0.75, 0.75
  Colour Map = Default Colour Map
  Colour Mode = Constant
  Colour Scale = Linear
  Colour Variable = Pressure
  Colour Variable Boundary Values = Hybrid
  Culling Mode = No Culling
  Domain List = /DOMAIN GROUP:All Domains
  Draw Faces = On
  Draw Lines = Off
  Instancing Transform = /DEFAULT INSTANCE TRANSFORM:Default Transform
  Iso Clip Geometry = Lines Only
  Iso Line Width = 2
  Lighting = On
  Line Colour = 0, 0, 0
  Line Colour Mode = Default
  Line Width = 1
 Location List = /PLANE:Plane 1
  Max = 0.0 [Pa]
  Min = 0.0 [Pa]
  Range = Global
  Render Edge Angle = 0 [degree]
  Specular Lighting = On
  Surface Drawing = Smooth Shading
  Texture Angle = 0
  Texture Direction = 0 , 1 , 0
  Texture File = 
  Texture Material = Metal
  Texture Position = 0 , 0
  Texture Scale = 1
  Texture Type = Predefined
  Tile Texture = Off
  Transform Texture = Off
  Transparency = 0.0
  Visibility = On
  ISO CLIP LIMITER: Iso Clip Limiter 1
    Limiter Operation = Greater Or Equal To
    Value = $rj0 [m]
    Variable = Radius
    Variable Boundary Values = Conservative
  END
  ISO CLIP LIMITER: Iso Clip Limiter 2
    Limiter Operation = Less Or Equal To
    Value = $rj [m]
    Variable = Radius
    Variable Boundary Values = Conservative
  END
  ISO CLIP LIMITER: Iso Clip Limiter 3
    Limiter Operation = Greater Or Equal To
    Value = $ti0 [degree]
    Variable = Theta
    Variable Boundary Values = Conservative
  END
  ISO CLIP LIMITER: Iso Clip Limiter 4
    Limiter Operation = Less Or Equal To
    Value = $ti1 [degree]
    Variable = Theta
    Variable Boundary Values = Conservative
  END
  OBJECT VIEW TRANSFORM: 
    Apply Reflection = Off
    Apply Rotation = Off
    Apply Scale = Off
    Apply Translation = Off
    Principal Axis = Z
    Reflection Plane Option = XY Plane
    Rotation Angle = 0.0 [degree]
    Rotation Axis From = 0 [m], 0 [m], 0 [m]
    Rotation Axis To = 0 [m], 0 [m], 0 [m]
    Rotation Axis Type = Principal Axis
    Scale Vector = 1 , 1 , 1
    Translation Vector = 0 [m], 0 [m], 0 [m]
    X = 0.0 [m]
    Y = 0.0 [m]
    Z = 0.0 [m]
  END
END
 !}
!}

2.插入表格以完成批量公式计算

TABLE: PIC
  Table Exists = True
  TABLE CELLS: 
!for($j = 1;$j<=20;$j++){
A$j = "=(areaAve(Pressure)@STe $j - areaAve(Pressure)@SLe $j )/76047.5427[Pa]", False, False, False, Left, True, 0, Font Name, 1|1, %10.3e, True, ffffff, 000000, True
    B$j = "=(areaAve(Pressure)@RTe $j - areaAve(Pressure)@LE $j )/76047.5427[Pa]", False, False, False, Left, True, 0, Font Name, 1|1, %10.3e, True, ffffff, 000000, True
!}
  END
END

径向上切割20个截面以后,如上可以在表格中计算转子和静子径向分布的静压升系数

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值