首页/文章/ 详情

pyFluent|watertight网格生成

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
2年前浏览3333

本文演示利用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之道
SpaceClaimMeshingFluent MeshingFluent
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-12
最近编辑:2年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2567粉丝 11316文章 735课程 27
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈