吾生有涯 学海无涯
析模有界 知识无界

pyFluent|watertight网格生成

内容纲要

本文演示利用pyFluent导入几何模型,并采用watertight Geometry工作流生成计算网格的代码片段。

1 几何模型

几何模型在SpaceClaim中创建。

需要提前做好边界命名。若需要在后面的网格生成过程中指定特定区域网格尺寸、边界类型、边界层网格等,则需要在几何中进行边界命名,否则到后面没法识别边界。

几何命名为TeePipe.scdoc

2 pyFluent代码

  • 在几何文件相同的路径下创建文件mesh.ipynb,利用vs code打开

2.1 启动Fluent Meshing

  • 输入下面的代码启动Fluent Meshing
import ansys.fluent.core as pyfluent
# 启用meshing模式,采用双精度,24个处理器
session = pyfluent.launch_fluent(meshing_mode=True,precision='double',processor_count = 24)

这里设置meshing_mode=True,则表示以Meshing模式运行。

2.2 导入几何模型

输入下面的代码并运行。

geom_filename = 'TeePipe.scdoc'
session.meshing.workflow.InitializeWorkflow(WorkflowType='Watertight Geometry')
session.meshing.workflow.TaskObject['Import Geometry'].Arguments = dict(FileName = geom_filename,LengthUnit= 'mm')
session.meshing.workflow.TaskObject['Import Geometry'].Execute()

运行结果如下图所示,表示几何文件导入成功。

2.3 设置局部尺寸

本案例涉及的几何尺寸分布比较均匀,不需要设置局部尺寸。采用下面的代码使用默认设置。

session.meshing.workflow.TaskObject['Add Local Sizing'].AddChildToTask()
session.meshing.workflow.TaskObject['Add Local Sizing'].Execute()

输出结果为True

2.4 生成面网格

采用下面的代码设置面网格尺寸,并划分面网格。

session.meshing.workflow.TaskObject['Generate the Surface Mesh'].Arguments={'CFDSurfaceMeshControls':{'MaxSize':1.0}}
session.meshing.workflow.TaskObject['Generate the Surface Mesh'].Execute()

输出结果如下图所示。

2.5 几何描述

采用下面的代码进行几何描述。

session.meshing.workflow.TaskObject['Describe Geometry'].UpdateChildTasks(
SetupTypeChanged=False
)

session.meshing.workflow.TaskObject['Describe Geometry'].Arguments=dict(
SetupType='The geometry consists of only fluid regions with no voids'
)

session.meshing.workflow.TaskObject['Describe Geometry'].UpdateChildTasks(
SetupTypeChanged=True
)

session.meshing.workflow.TaskObject['Describe Geometry'].Execute()

输出结果如下图所示。

2.6 更新边界

执行以下代码更新边界。

session.meshing.workflow.TaskObject['Update Boundaries'].Arguments={
'BoundaryLabelList':['inlet1'],
'BoundaryLabelTypeList':['velocity-inlet'],
'BoundaryLabelList':['inlet2'],
'BoundaryLabelTypeList':['velocity-inlet'],
'BoudaryLabelList':['outlet'],
'BoundaryLabelTypeList':['pressure-outlet']
}
session.meshing.workflow.TaskObject['Update Boundaries'].Execute()

运行结果如下所示。

2.7 更新区域

本案例区域采用默认设置。

session.meshing.workflow.TaskObject['Update Regions'].Execute()

2.8 添加边界层

添加默认边界层参数。

session.meshing.workflow.TaskObject['Add Boundary Layers'].AddChildToTask()
session.meshing.workflow.TaskObject['Add Boundary Layers'].InsertCompoundChildTask()
session.meshing.workflow.TaskObject['smooth-transition_1'].Arguments={
'BLControlName' : 'smooth-transition_1',
}
session.meshing.workflow.TaskObject['Add Boundary Layers'].Arguments={}
session.meshing.workflow.TaskObject['smooth-transition_1'].Execute()

2.9 生成体网格

利用下面的代码指定体网格尺寸并生成体网格。

session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Arguments={
'VolumFill': 'poly-hexcore',
'volumeFillControls':{
'HexMaxCellLength': 1.0,
},
}

session.meshing.workflow.TaskObject['Generate the Volume Mesh'].Execute()

输出结果如下图所示。

2.10  检查网格

输入下面的命令可以检查网格。

session.meshing.tui.mesh.check_mesh()

检查结果如下图所示。

2.11 保存网格

可以保存网格。

session.meshing.tui.file.write_mesh('teepipe.msh.h5')

输出结果如下图所示。

此时当前路径下有保存的网格文件。

2.12 结束

可以选择用下面的程序关闭Fluent:

session.exit()

也可以使用下面的代码切换到solution模式,并执行后续的设置计算过程:

session.meshing.tui.switch_to_solution_mode("yes")

切记在事情干完后利用session.exit()退出Fluent。


(本文结束)

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《pyFluent|watertight网格生成》
文章链接:https://www.topcfd.cn/19482/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册