CFX-post session(批处理文件)的使用

Session的功能

Session是cfd-post里面类似宏的批处理文件,主要功能就是通过命令语句(条件语句、循环等)实现批量自动化的后处理功能。具体的使用方法一般为:1)新建session。在CFD-post session面板下找到new session,选择位置保存; 2)录制session; 3)根据需要修改session,常用的主要有声明变量与for循环,在下一节详细介绍;3)Run session

Session的录制

同样在Session下有开始录制与结束的选项,开始之后会记录你的所有操作。

Session的修改

CFD-post 使用perl语言,但与一般的perl语言有所不同,在可执行语句(如for循环)前面加!,CFX操作命令语句前面加 >

声明变量

变量前加$,比如:

$x = 100

for 循环

for循环以! 开头,格式为:

!for ($i=0; $i < $numsteps; $i++) {
# write your code here
!}

examples

最后上两个例子。

ANSYS help example

#后面的是注释不用管啦,善用help噢

# Make the outer boundaries gradually transparent in
# the specified number of steps.
!$numsteps = 10;
!for ($i=0; $i < $numsteps; $i++) {
   ! $trans = ($i+1)/$numsteps;
   BOUNDARY:in
      Visibility = 1
      Transparency = $trans
   END
   BOUNDARY:out
      Visibility = 1
      Transparency = $trans
   END
   BOUNDARY:Default
      Visibility = 1
      Transparency = $trans
   END
!}

Extract the plane

这个是我自己用的代码,功能是从瞬态结果(几千个快照)里面提取某个截面数据并保存为不同的文件名(对应于时间步)。

COMMAND FILE:
  CFX Post Version = 16.0
END

!for ($tstep=5553; $tstep<8800; $tstep = $tstep +1) {
EXPORT:
  ANSYS Export Data = Element Heat Flux
  ANSYS File Format = ANSYS
  ANSYS Reference Temperature = 0.0 [K]
  ANSYS Specify Reference Temperature = Off
  ANSYS Supplemental HTC = 0.0 [W m^-2 K^-1]
  Additional Variable List =
  BC Profile Type = Inlet Velocity
  Export Connectivity = Off
  Export Coord Frame = Global
  Export File = H:/2020/data/csv/$tstep.csv 
  Export Geometry = On
  Export Location Aliases =
  Export Node Numbers = Off
  Export Null Data = On
  Export Type = Generic
  Export Units System = Current
  Export Variable Type = Current
  External Export Data = None
  Include File Information = Off
  Include Header = On
  Location = FreeWall
  Location List = /PLANE:Plane 1
  Null Token = null
  Overwrite = On
  Precision = 8
  Separator = ", "
  Spatial Variables = X,Y,Z
  Variable List = Pressure, Velocity u, Velocity v, Velocity w
  Vector Brackets = ()
  Vector Display = Scalar
END
>export
!}

代码随意用,希望能为科研省去一些重复的工作,如果万一有转载希望附一下原链接(也就是这个网页的地址)。

### 批量创建监测点并导出时程曲线 为了实现在 CFD-Post 中批量创建监测点并自动导出对应的时程曲线数据,可以利用 CFX 的命令语言 (CCL) 和 Python 脚本进行自动化操作。这种方法不仅提高了效率,还减少了手动操作可能带来的错误。 #### 使用 CCL 创建多个监测点 可以通过编写 CCL 文件来定义一系列监测点的位置及其属性。下面是一个简单的例子: ```ccl LIBRARY: CEL: EXPRESSIONS: X_Position = 0.1 [m] Y_Position = 0.2 [m] Z_Position = 0.3 [m] END END ``` 对于大量不同位置的监测点,可以在外部生成这些表达式的列表,并将其导入到 CCL 文件中。这一步骤能够显著简化多点设置的过程[^1]。 #### 自动化脚本导出时序数据 进一步地,借助于 CFD-Post 提供的强大 API 接口以及 MATLAB 或者其他编程工具的支持,可以开发专门用于批处理任务的小型应用程序或宏指令。具体来说,在完成上述监测点配置的基础上,可通过如下方式实现自动化导出: 1. **调用API函数**:使用 `CreatePoint` 方法指定坐标创建新的采样点; 2. **循环遍历所有预设位置**:按照既定模式重复执行第一步直至覆盖整个区域内的兴趣点; 3. **获取时间历程信息**:针对每一个新建节点查询其随时间变化的数据序列; 4. **保存至文件系统**:最后将收集好的数值写入 CSV 或 TXT 文档以便后续分析。 以下是基于Python的一个简单示例代码片段展示如何连接CFD-post并执行相应动作: ```python from ansys.fluent.core import launch_fluent, examples session = launch_fluent(precision="double", processor_count=2) # 加载案例文件 case_path = "path_to_your_case_file.cas.h5" data_path = "path_to_your_data_file.dat" session.tui.file.read_case(case_path) session.tui.solve.initialize.initialize_flow() for i in range(number_of_points): session.point_monitor.create( name=f'monitor_{i}', expression='VelocityMagnitude', position=[x[i], y[i], z[i]] ) # 导出所有的monitor data into a single file. monitors = session.monitor.get_object_names() with open('output.csv','w') as f: for monitor_name in monitors: time_history = session.monitor[monitor_name].get_time_history() for t,v in zip(time_history['time'], time_history['value']): f.write(f'{t},{v}\n') session.exit() ``` 此方法充分利用了 CFD-POST 参数化的便利性,使得复杂场景下的数据分析变得更加容易管理[^2]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值