openfoam中的toposet

ops/2025/3/1 6:42:18/

1openfoam中的toposet

在 OpenFOAM 中,toposet是一个用于操作网格的集合定义和操作的工具。以下是关于toposet的一些关键信息:

1.1基本概念:

  • toposet的含义是拓扑集合(topology
    set)。其作用是将一些点、面或者体网格提取出来存放在指定名字的集合里,用以辅助前后处理。
  • set和zone在概念上基本一致,都是包含一系列点(或者面、体)的集合。由于历史原因,目前set和zone并存于 OpenFOAM
    中,有的前后处理工具可能同时支持使用set或zone,但也有的只支持其中一种。

1.2操作类型:

  • toposet可以对不同的网格元素进行操作,生成多种类型的集合,包括pointset(点集)、faceset(面集)、cellset(体集)、pointzone、facezone、cellzone等。其操作方式包括将边界转换为网格元素(如boundary
    to cell、boundary to face、boundary to point)、基于几何形状选择网格元素(如box to
    cell、cylinder to cell、sphere to cell等)以及基于其他集合或条件选择网格元素(如set to cell
    zone、set to face zone、set to point zone等)。

1.3使用方法:

  • 定义集合:通过编辑toposetdict文件来定义要操作的集合。例如,可以指定选择的区域、选择的条件等。
  • 执行操作:在命令行中运行toposet命令来执行在toposetdict文件中定义的操作,操作结果会存储在constant/polymesh/sets文件夹中。

1.4 应用场景:

  • 网格加密:结合refineMesh工具,先使用toposet定义需要加密的区域,然后使用refineMesh对该区域进行网格加密,常用于需要局部细化网格的模拟场景,例如在流体力学模拟中对边界层、漩涡区域等进行加密。
  • 设置初始条件和边界条件:可以使用toposet选择特定的区域,然后结合setfields等工具对该区域设置特定的初始条件或边界条件,例如设置非均匀的初始场或自定义边界条件。
  • 定义复杂形状的区域:当需要定义一些复杂形状的区域时,可以使用toposet结合其他工具,如searchableSurfaceToFace等,来创建复杂形状的面集或面区域集合,以便进行后续的分析或处理。

2实例

2.1标记两个区域并合并为一个

在这里插入图片描述
这段代码是 OpenFOAM 中 toposetdict 文件的一部分,toposetdict 文件用于定义 toposet 工具的操作。下面来详细解释这段代码的具体含义和作用:
整体功能概述
这段代码的主要目的是定义一个名为 heater 的单元区域(cellZone),该区域由两个不同的长方体盒子所包含的单元组成。通过上述三个操作块,代码首先定义了一个由第一个盒子内单元组成的 heaterCellSet 集合,然后将第二个盒子内的单元添加到该集合中,最后将这个集合转换为一个名为 heater 的单元区域。这个单元区域可以在后续的模拟中用于设置特定的边界条件、初始条件或进行其他操作。、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 反转得到最后的剩余区域

// bottomWater is all the other cells{name    bottomWaterCellSet;type    cellSet;action  new;source  cellToCell;sourceInfo{set heaterCellSet;}}{name    bottomWaterCellSet;type    cellSet;action  add;source  cellToCell;sourceInfo{set leftSolidCellSet;}}{name    bottomWaterCellSet;type    cellSet;action  add;source  cellToCell;sourceInfo{set rightSolidCellSet;}}{name    bottomWaterCellSet;type    cellSet;action  add;source  cellToCell;sourceInfo{set topAirCellSet;}}{name    bottomWaterCellSet;type    cellSet;action  invert;}{name    bottomWater;type    cellZoneSet;action  new;source  setToCellZone;sourceInfo{set bottomWaterCellSet;}}

这段 OpenFOAM 的 toposetdict 文件代码块的主要目的是定义一个名为 bottomWater 的单元区域(cellZone),该区域包含除了 heaterCellSet、leftSolidCellSet、rightSolidCellSet 和 topAirCellSet 这些集合所包含单元之外的所有网格单元。这段代码通过一系列操作,先将 heaterCellSet、leftSolidCellSet、rightSolidCellSet 和 topAirCellSet 中的单元添加到 bottomWaterCellSet 中,然后反转该集合,最后将反转后的集合转换为名为 bottomWater 的单元区域。在后续的 OpenFOAM 模拟中,可以针对这个 bottomWater 单元区域设置特定的物理属性、边界条件等。
在这里插入图片描述
action: add 表示将指定集合中的单元添加到已有的 bottomWaterCellSet 集合中。
在这里插入图片描述
在这里插入图片描述

具体例子参考openfoam4.0中的multiRegionHeater,其他的都中规中矩,主要是一个叠加多个区域和反转的应用。


http://www.ppmy.cn/ops/162161.html

相关文章

经典算法 最多约数问题

最多约数问题 正整数x的约数是能整除x的正整数。正整数x 的约数个数记为div(x)。例如,1,2,5,10 都是正整数10 的约数,则div(10)4。设a 和b 是2 个正整数,a≤b,找出a和b之间约数个数最多的数x的…

ShenNiusModularity项目源码学习(15:ShenNius.Admin.API项目分析)

ShenNius.Admin.Mvc项目是MVC模式的入口,ShenNius.Admin.Hosting项目是前后端分离模式的后台服务入口,这两个项目都依赖ShenNius.Admin.API项目,前者使用ShenniusAdminApiModule类注册服务及配置管道,而后者的webapi实现都在ShenN…

ubuntu22.04安装docker engine

在Ubuntu 22.04上安装Docker Engine可以通过以下步骤完成: 更新系统包索引: sudo apt update安装必要的依赖包: 这些包允许apt通过HTTPS使用仓库。 sudo apt install -y apt-transport-https ca-certificates curl software-properties-commo…

基于反激电路的电池充放电均衡控制

基于反激电路的电池充放电均衡控制是一种高效的能量转移型主动均衡方法,适用于锂离子电池组等串联电池组的管理。以下从原理、拓扑结构、控制策略和设计要点进行详细分析: 一、基本原理 反激电路(Flyback Converter)是一种隔离型…

【Kubernetes】API server 限流 之 maxinflight.go

这个文件实现了一个基于信号量(Channel)的简单限流器。 基础知识 总共有四种channel 带缓冲的channel nonMutatingChan、mutatingChan 都是带缓冲的channel ,这类channel 的特点是: 这允许最多 mutatingLimit /nonMutatingLimit 个请求同时获取令牌并执…

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作 今天我们来说说上午发布的GPT-4.5,接下来我们说说GPT4.5到底如何,有哪些功能?有哪些性能提升?怎么快速使用到GPT-4.…

探索 Hutool - JSON:高效的 JSON 处理利器

各位开发者们,咱今天来好好聊聊在 Java 开发里特别实用的一个工具——Hutool - JSON。在现代的软件开发中,JSON(JavaScript Object Notation)已经成为了数据交换的标准格式之一,无论是前后端交互,还是与第三…

SpringCloud之Eureka、Ribbon、OpenFeign

目录1. SpringCloud Eureka(服务注册与发现组件)2. SpringCloud Ribbon(负载均衡与服务调用组件)3. SpringCloud OpenFeign(负载均衡与服务调用组件)SpringCloud:用于开发高度可扩展、高性能的分…