PyFluent入门之旅(3)网格划分

在通过前两期熟悉了PyFluent的基础操作后,本期介绍如何通过PyFluent在Fluent Meshing中使用密闭几何(watertight)工作流进行网格划分。

开门见山,我先开启PyFluent的gui显示功能展示一下最终效果。

在通过前两期熟悉了PyFluent的基础操作后,本期介绍如何通过PyFluent在Fluent Meshing中使用密闭几何(watertight)工作流进行网格划分。

开门见山,我先开启PyFluent的gui显示功能展示一下最终效果。

PyFluent网格划分

1 准备工作

首先需要准备用于网格划分的几何模型,这里使用经典的三通管轴对称模型进行演示。

该模型的边界划分如下图所示。

在这里插入图片描述
在这里插入图片描述

使用下述代码即可自动下载该模型文件

import ansys.fluent.core as pyfluent
from ansys.fluent.core import examples
import_filename = examples.download_file("mixing_elbow.pmdb", "pyfluent/mixing_elbow")

下载好的模型文件默认保存在下述路径

C:\Users\"你的用户名"\AppData\Local\ansys_fluent_core\ansys_fluent_core\examples

案例文件可能会因为网络问题而下载失败,如需该几何模型文件可以关注“基算仿真”公众号,在后台回复:"elbow"获取下载链接

2 选择工作流并读取几何模型

完成了几何模型的准备工作即可进行网格划分。首先以meshing模式启动fluent,核心数和是否开启gui可按照自己的需求来。

meshing = pyfluent.launch_fluent(precision="double", processor_count=4, mode="meshing")

按照使用Gui的操作顺序,我们下一步应该按照下图选择密闭几何工作流

选择工作流

在PyFluent中实现初始化工作流功能需要使用到下述代码

meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")

接着就可以读取几何文件了,将几何文件保存在python工作目录。接着使用下述代码即可读取几何模型。

geom='mixing_elbow.pmdb'
meshing.workflow.TaskObject["Import Geometry"].Arguments = dict(
    FileName=geom, LengthUnit="in"
)
meshing.workflow.TaskObject["Import Geometry"].Execute()

3 添加局部尺寸与面网格划分

按照顺序,接下来需要进行局部尺寸的定义与面网格划分。

在这里插入图片描述

这里选择默认直接输出

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

使用以下代码调整最大尺寸并生成面网格

meshing.workflow.TaskObject["Generate the Surface Mesh"].Arguments = {
    "CFDSurfaceMeshControls": {"MaxSize": 0.3}
}
meshing.workflow.TaskObject["Generate the Surface Mesh"].Execute(

4 几何与边界处理

接下来的步骤为几何描述、边界条件定义与边界层的生成

在这里插入图片描述

几何描述,定义几何为没有空隙的流体域,其他保持默认

meshing.workflow.TaskObject["Describe Geometry"].UpdateChildTasks(
    SetupTypeChanged=False
)
meshing.workflow.TaskObject["Describe Geometry"].Arguments = dict(
    SetupType="The geometry consists of only fluid regions with no voids"
)
meshing.workflow.TaskObject["Describe Geometry"].UpdateChildTasks(SetupTypeChanged=True)
meshing.workflow.TaskObject["Describe Geometry"].Execute()

更新边界条件,这里FluentMeshing将wall-inlet识别为了速度入口,使用下述代码将其类型修改为壁面。

meshing.workflow.TaskObject["Update Boundaries"].Arguments = {
    "BoundaryLabelList": ["wall-inlet"],
    "BoundaryLabelTypeList": ["wall"],
    "OldBoundaryLabelList": ["wall-inlet"],
    "OldBoundaryLabelTypeList": ["velocity-inlet"],
}
meshing.workflow.TaskObject["Update Boundaries"].Execute()

接着更新计算域类型即可,保持默认的流体域直接更新即可

meshing.workflow.TaskObject["Update Regions"].Execute()

下面进行边界层的划分,保持默认设置

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

5 生成体网格并保存

最后一步便是生成体网格

在这里插入图片描述

这里选择生成多面体网格,最大单元尺寸设置为0.3

meshing.workflow.TaskObject["Generate the Volume Mesh"].Arguments = {
    "VolumeFill": "poly-hexcore",
    "VolumeFillControls": {
        "HexMaxCellLength": 0.3,
    },
}
meshing.workflow.TaskObject["Generate the Volume Mesh"].Execute()

使用下述代码进行网格质量检查,无误后便可以进行保存。

meshing.tui.mesh.check_mesh()#检查质量
meshing.tui.file.write_mesh("mixing_elbow.msh.h5")#保存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/771088.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Appium自动化测试框架1

电脑的浏览器 手机的浏览器 手机上的app 原生的应用 纯java 手机上的app apk 移动网页应用 纯HTML CSS 手机的浏览器上 电脑的浏览器上 混合应用 java html css python代码 Appium python库 Appium 手机 都是代表本机 0.0.0.0 127.0.0.1 localhost 如何启动app 启动参…

UE插件与云渲染:10个提升效率的选择

Unreal Engine(虚幻引擎)的插件生态丰富多样,从提升视觉效果到优化工作流程,为开发者提供了无限扩展的可能。本文推荐10款备受欢迎的插件,助你激发创意,提升开发效率. 一、地牢建筑师:程序化关…

【论文速读】|FuzzAug:探索模糊测试作为神经网络测试生成的数据增强

本次分享论文:FuzzAug: Exploring Fuzzing as Data Augmentation for Neural Test Generation 基本信息 原文作者:Yifeng He, Jicheng Wang, Yuyang Rong, Hao Chen 作者单位:University of California, Davis 关键词:软件测试…

Dungeonborne联机失败、延迟高、卡顿的解决方法

Dungeonborne将第一人称动作的即时性与经典的西幻RPG职业设计巧妙融合,为玩家带来了一场前所未有的游戏体验。在这款沉浸式第一人称PvPvE地下城探险游戏中,我们可以独自深入探索,也可以与值得信赖的伙伴并肩作战,共同揭开地下城的…

汽车电子工程师入门系列——AUTOSAR通信服务框架(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

使用微信开发者工具连接gitee

编写代码 打开微信开发者工具 编写小程序代码 提交代码 在微信开发者工具提交代码到gitee仓库的步骤: 1.在gitee创建仓库,得到仓库url 2.微信开发者工具设置远程仓库 点击版本管理-->点击设置-->网络和认证-->认证方式选择 使用用户名和…

【重磅】“一招”解决智能算法中不满足“预期”的问题【以微电网优化调度为例】

1主要内容 之前完整复现了微电网优化调度的模型,具体链接为:【完全复现】基于改进粒子群算法的微电网多目标优化调度,这是一个并不复杂的模型,甚至不借助智能算法,我们也能大致分析出电网、柴油发电机、微型燃气轮机等…

英国皇家物理学会(IOP)数据库简介及个人获取IOP文献的方法

一、英国皇家物理学会(IOP)简介 英国皇家物理学会(IOP)成立于1873年,IOP现有科技期刊75种,具有较高的科研水平,还与多个世界知名的学协会合作出版,包括:中国物理学会、欧洲物理学会、德国物理学会、日本应用物理学会、欧洲光学学会、国际计量…

论文学习笔记1:Federated Graph Neural Networks: Overview, Techniques, and Challenges

文章目录 一、introduction二、FedGNN术语与分类2.1主要分类法2.2辅助分类法 三、GNN-ASSISTED FL3.1Centralized FedGNNs3.2Decentralized FedGNNs 四、FL-ASSISTED GNNS4.1horizontal FedGNNs4.1.1Clients Without Missing Edges4.1.1.1Non-i.i.d. problem4.1.1.2Graph embed…

小白福音:teamOS系统,一键部署企业网盘,实现在线预览功能

在传统的办公模式中,当我们需要查看一份文件时,往往需要下载、打开、编辑等一系列繁琐的步骤,如果是PDF、CAD、Markdown等特殊格式,还需要安装各种软件才能打开。 但最近get到了一个好用的东西,如果同事发来的文件格式…

轮廓检测(python和c++实现)

利用轮廓检测,我们可以检测物体的边界,并在图像中轻松定位。这通常是许多有趣应用的第一步,如图像前景提取、简单图像分割、检测和识别。 无人看管物体检测:公共场所的任何无人看管物体一般都被视为可疑物体。一种有效而安全的解…

一文搞懂MySsql的Buffer Pool

Buffer Pool是什么 Buffer Pool是MySQL数据库中一个非常关键的组件。数据库中的数据最终都是存放在磁盘文件上的。但是在对数据库执行增删改查操作时,不可能直接更新磁盘上的数据。因为如果直接对磁盘进行随机读写操作,那速度是相当的慢的。随便一个大磁…

联系表单提交后,自动发送邮件的实现方法?

联系表单自动邮件回执功能怎么样?如何设置邮件回执? 联系表单是用户与网站所有者沟通的重要渠道。为了提升用户体验,许多网站会在联系表单提交后自动发送确认邮件给用户。AokSend将探讨如何实现这一功能,介绍不同的方法和步骤&am…

如何在 Selenium Python 中解决验证码 | 2024 完整指南

由于在进行网络自动化时遇到验证码是让许多人感到不知所措的问题。这些验证码专为区分人类用户和自动化脚本而设计,对于使用Selenium进行网络爬虫或自动化任务而言,无疑是一个巨大的挑战。2024年的完全指南将为您提供全面的解决方案,帮助您高…

LabVIEW新能源汽车电池性能测试系统

新能源汽车的核心部件之一是电池,其性能直接关系到整车的续航里程、安全性和寿命。为了确保电池的性能和可靠性,测试是必不可少的环节。本文介绍了一种基于LabVIEW的新能源汽车电池性能测试系统,通过LabVIEW与数据采集设备的无缝集成&#xf…

【Spring Boot 源码学习】初识 ConfigurableEnvironment

《Spring Boot 源码学习系列》 初识 ConfigurableEnvironment 一、引言二、主要内容2.1 Environment2.1.1 配置文件(profiles)2.1.2 属性(properties) 2.2 ConfigurablePropertyResolver2.2.1 属性类型转换配置2.2.2 占位符配置2.…

docker容器技术、k8s的原理和常见命令、用k8s部署应用步骤

容器技术 容器借鉴了集装箱的概念,集装箱解决了什么问题呢?无论形状各异的货物,都可以装入集装箱,集装箱与集装箱之间不会互相影响。由于集装箱是标准化的,就可以把集装箱整齐摆放起来,装在一艘大船把他们…

C++基础(五):类和对象(上)

从今天开始,我们正式进入面向对象编程,这是C与C语言的重要区别,编程思想发生变化,那到底什么是面向对象编程呢?接下来,我们慢慢的深入学习。 目录 一、面向过程和面向对象初步认识 1.1 面向过程 1.2 面…

【Python】变量与基本数据类型

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言变量声明变量变量的命名规则 变量赋值多个变量赋值 标准数据类型变量的使用方式存储和访问数据:参与逻辑运算和数学运算在函数间传递数据构建复杂的数据结构 NameE…

腾讯混元文生图开源模型推出小显存版本,6G显存即可运行,并开源caption模型

7月4日,腾讯混元文生图大模型(混元DiT)宣布开源小显存版本,仅需6G显存即可运行,对使用个人电脑本地部署的开发者十分友好,该版本与LoRA、ControlNet等插件,都已适配至Diffusers库;并…