FLUENT UDF并行化(1)

article/2025/9/1 11:47:54

来源:ANSYS FLUENT UDF帮助文档,翻译自用,如有错误,欢迎指出!

本章概述了并行ANSYS Fluent的用户定义函数(UDF)及其用法。有关并行UDF功能的详细信息,请参见以下部分,本文介绍前两部分 。

7.1.Overview of Parallel ANSYS Fluent

7.2.Cells and Faces in a Partitioned Mesh

7.3.Parallelizing Your Serial UDF

7.4.Reading and Writing Files in Parallel

7.5.Enabling Fluent UDFs to Execute on General Purpose Graphics Processing Units (GPGPUs)

7.1. Overview of Parallel ANSYS Fluent

        ANSYS Fluent的并行求解器通过同时使用可能在同一台机器上或网络中的不同机器上执行的多个进程来计算大型问题的解。它通过将计算域拆分为多个分区(图7.1:并行ANSYS Fluent中的分区网格),并将每个数据分区分配给不同的计算进程,称为计算节点(compute node)(图7-2:分布在两个计算节点之间的分区网格)。

        每个计算节点在其自己的数据集上与每个其他计算节点同时执行相同的程序。主机进程(host process)或简单的主机(host)不包含网格单元、面或节点(使用DPM共享内存模型时除外)。其主要目的是解释来自Cortex(负责用户界面和图形相关功能的ANSYS Fluent进程)的命令,然后将这些命令(和数据)传递给计算节点(compute node-0),该节点将其分发给其他计算节点。

        计算节点在其网格部分上存储和执行计算,而沿分区边界的单层重叠单元提供跨分区边界的通信和连续性(图7.2:分布在两个计算节点之间的分区网格)。即使单元和面是分区的,网格中的所有域和线程(domains and threads)都在每个计算节点上镜像(图7.3:分布式网格中的域和线程镜像)。线程存储为链表(The threads are stored as linked lists as in the serial solver.),与串行解算器一样。计算节点可以在大规模并行计算机、多CPU工作站或使用相同或不同操作系统的工作站网络上实现。

  • 7.1.1 Command Transfer and Communication

ANSYS Fluent会话中涉及的进程由Cortex、主机进程(host)和一组n个计算节点(node)进程(称为node)定义,计算节点标记为 0 到 n-1 (图7.4:ANSYS Fluent架构)。主机从Cortex接收命令,并将命令传递给compute node-0compute node-0 反过来将命令发送给所有其他计算节点。所有计算节点(0除外)都从compute node-0接收命令。在计算节点将消息传递给主机(通过compute node-0)之前,它们彼此同步。

每个计算节点“虚拟地”连接到每个其他计算节点,并依靠其“通信器”("communicator")执行发送和接收阵列、同步、执行全局缩减(如所有单元的求和)以及建立机器连接等功能。ANSYS Fluent communicator是一个消息传递库。例如,它可以是消息传递接口(MPI)标准的供应商实现,如图7.4:ANSYS Fluent Architecture所示。

所有ANSYS Fluent进程(包括主机进程)都由唯一的整数ID标识。主机进程被分配ID host(=999999)。主机从compute node-0收集消息,并对所有数据执行操作(如打印、显示消息和写入文件)(见图7.5:ANSYS Fluent中的命令传输示例)。

7.2 Cells and Faces in a Partitioned Mesh

引入一些术语来区分分区网格中不同类型的单元和面。请注意,该术语仅适用于ANSYS Fluent中的并行编码。

7.2.1 Cell Types in a Partitioned Mesh

7.2.2 Faces at Partition Boundaries

7.2.3 PRINCIPAL_FACE_P

7.2.4 Exterior Thread Storage

7.2.5 Extended Neighborhood

  • 7.2.1 Cell Types in a Partitioned Mesh

分区网格中大致有两种类型的单元:内部单元和外部单元(interior cells and exterior cells)(图7.6)。内部单元(interior cells)完全包含在网格分区中。分区的外部单元(exterior cells)不包含在该网格分区内,而是连接到其与一个或多个相邻分区的接口上的节点。如果外部单元与内部单元共享一个面,则将其称为常规外部单元(regular exterior cell)。如果外部单元仅与内部单元共享一条边或一个节点,则将其称为扩展外部单元(extended exterior cell)。

一个计算节点(compute node)上的外部单元对应于相邻计算节点中的相同内部单元。(图7.2)。当您希望在并行网格中的单元上循环时,分区边界上的重叠单元变得非常重要。有单独的宏用于在内部单元格外部单元格所有单元格上循环。有关详细信息,See Looping Macros for details.。

7.2.2 Faces at Partition Boundaruies

分区网格中的面有三种分类:内部、边界区域和外部( interiorboundary zone, and external  图7.7)。内部面有两个相邻单元。位于分区边界上的内部面称为“分区边界面”(partition boundary faces)。边界分区面(Boundary zone faces)位于物理网格边界上,并且只有一个相邻单元相邻。外部面(Boundary zone faces)是属于外部单元的非分区边界面。外部面通常不用于并行UDF,因此,这里将不讨论

注意,每个分区边界面在相邻计算节点上重复(图7.2)。这是必要的,以便每个计算节点可以计算其自己的面值。然而,当UDF涉及包含分区边界面的线程中的求和数据的操作时,这种重复可能导致面数据被计数两次。例如,如果UDF对网格中所有面上的数据求和,则当每个节点在其面上循环时,重复的分区边界面可以计数两次。

因此,ANSYS Fluent将每个相邻集合中的一个计算节点指定为分区边界面的“主要”(principal)计算节点。换句话说,虽然每个面可以出现在一个或两个分区上,但它只能“正式”属于其中一个分区。如果面f是当前计算节点上的主面,则布尔宏PRINCIPAL_FACE_Pft返回TRUE

7.2.3 PRINCIPAL_FACE_P

可以使用PRINCIPAL_FACE_P来测试给定的面是否是主面,然后将其包含在面循环求和中。在下面的示例源代码中,只有当面是主面时,才将面面积添加到总面积。PRINCIPAL_FACE_P只能在编译的UDF中使用。

Example:

begin_f_loop(f,t)if PRINCIPAL_FACE_P(f,t) /* tests if the face is the principal faceFOR COMPILED UDFs ONLY */{F_AREA(area,f,t);  /* computes area of each face */total_area +=NV_MAG(area); /* computes total face area byaccumulating magnitude of eachface’s area */}end_f_loop(f,t) 

7.2.4 Exterior Thread Storage

每个线程将与其单元格或面关联的数据存储在一组数组中。(Each thread stores the data associated with its cells or faces in a set of arrays.)例如,压力存储在阵列(array)中,单元c的压力通过访问该阵列的单元c获得。外部单元和面数据的存储发生在每个线程数据数组的末尾。对于单元线程,常规外部单元的数据出现在扩展外部单元之前,如图7.8。

7.2.5 Extende Neighborhood

ANSYS Fluent基于interface面和corner节点创建完整的扩展外部单元邻域。这使得某些操作更容易(例如网格操作和求解器梯度重建),并增强了此类操作的性能。解算器仅使用常规邻域(regular neighborhood),因此解算器相关数据仅填充规则外部单元,而不填充扩展外部单元( extended exterior cells)。


http://chatgpt.dhexx.cn/article/v2N1kY8N.shtml

相关文章

FLUENT UDF并行化(2)

来源:ANSYS FLUENT UDF帮助文档,翻译自用,如有错误,欢迎指出! 本章概述了并行ANSYS Fluent的用户定义函数(UDF)及其用法。有关并行UDF功能的详细信息,请参见以下部分,本…

udf开发入门(python udf、hive udf)

开发前的声明 udf开发是在数据分析的时候如果内置的函数解析不了的情况下去做的开发,比方说你只想拆分一个字段,拼接一个字段之类的,就不要去搞udf了,这种基本的需求自带函数完全支持,具体参数可参考文档: …

UDF的入门科普

新入门的小伙伴们好像对udf有一些疑问,那么今天就给大家整理一些udf的学习资料供大家参考。(公众号:刘华强仿真笔记) 01 UDF的基本概念 UDF的定义? UDF 是用户自己用C语言写的一个函数,可以和FLUENT动态链接 用UDF…

FLUENT中初识UDF——UDF的简单使用(1)

FLUENT中初识UDF——UDF的简单使用(1) 注意:不包含其他ANSYS基本操作流程!!!1:UDF的编写:2:ANSYS中导入UDF函数:2.1:首先打开Fluent,导…

对window的注册表进行优化

Regclean pro是一款优秀的注册表扫描、清理工具,由微软金牌合作伙伴Systweak开发。 它具有强大的Windows注册表检测及修复功能,可以帮助用户轻松而有效的清理、修复Windows 系统注册表中缺省的、被破坏的或残缺的系统参数,轻松提升系统性能。…

Windows注册表基本管理配置

一.注册表优化 注册表的优化分为几点: 1.系统安装是产生的无用信息 (1) 删除多余的时区 路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 删除除了China Standard Time中国时区以外的其他时区…

Windows与网络基础-19注册表维护与优化

目录 一、注册表维护 1.1注册表被破坏后的常见现象 1.2注册表被破坏的原因 1.3备份注册表 1.4恢复注册表 1.5锁定和解锁注册表 二、注册表的优化 2.1删除多余的DLL文件 2.2安装卸载应用程序的垃圾信息 2.3系统安装时产生的无用信息 2.3.1删除多余时区(必…

Win7注册表优化工具箱

软件名称:Win7注册表优化工具箱 软件版本:1.0.0.0 软件大小 1.04MB 适用环境: win7 软件性质: 国产软件 - 系统工具 - 优化设置 下载地址 http://pan.baidu.com/share/link?shareid104303&uk4160867570# 本文转自hai…

windows注册表

第一课 注册表基础 一、什么是注册表 注册表是windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统。 注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息&#…

玩转电脑|盘点一下Windows 10 注册表系统优化【 InsCode Stable Diffusion 美图活动一期】

目录 什么是注册表 组成 Windows 注册表的层次结构 如何在 Windows 11/10 中创建注册表项 1、使用注册表编辑器 2、使用命令行 3、使用记事本创建REG文件 注意:在本文中主要就是使用记事本创建REG文件来修改。 注册表代码 修改状态栏透明度 任务栏时间显…

计算机系统的优化具体操作,注册表优化电脑内存的详细操作步骤

注册表优化电脑内存 当我们在使用电脑出现内存不足的情况下,通常会选择升级内存的方式来解决相关问题。而加了一个内存条之后,通常你会发现运行速度并没有等到比较显著的改善。只有在运行一些大程序的时候才能感觉到有所提升。这是因为系统会照顾到使用低…

win10清理注册表的方法

如果不需要某款软件之后,我们将其从电脑上卸载之后,如果不清理干净注册表信息的话可能日积月累会对电脑运行造成影响。那么win10如何清理注册表多余信息呢?今天小编就教下大家win10清理注册表的方法。 具体的方法如下: 1、在桌面…

Reg Organizer v8.75 注册表及系统清理优化工具

前言 Reg Organizer是一个非常好用的编辑、整理注册表文件软件,在导入reg文件前,会先分析结构,供您确认。它是一个功能丰富的应用程序,旨在编辑、清理和维护注册表,修复系统中的错误,并提高计算机性能。深…

暴力解决注册表删不掉的问题

今天在使用注册表编辑器修改注册表权限的时候,不小心把所有用户对某个注册表的权限全部拒绝了。等到我再想修改的时候,右键点击该文件,选择了“权限”后,弹出的编辑界面的“组或用户名”一栏中没有出现任何内容。倒腾了半天也实在…

Windows与网络基础:注册表基础和注册表维护与优化

学习目标 1.理解注册表概念 2.掌握注册表维护及优化方法 目录 一、注册表基础1、概述2、早期的注册表3、Windows 95后的注册表4、注册表结构4.1、注册表以树状结构进行呈现4.1.1子树(实际只有两棵子树,为了方便操作,分成了5棵子树)4.1.2、项…

No1.Windows10系统优化设置注册表项

Windows10.22H2.19045.2193 2022‎年‎11‎月‎4‎日 Windows Registry Editor Version 5.00#在锁屏界面上显示通知、提醒和VoIP来电、播放声音-关闭 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings] "NOC_GLOBAL_SETTING_AL…

注册表的维护与优化,硬核实操讲解

作者介绍大家好,我是柒烨~ 系列专栏 《网络安全 --> Windows与网络基础》 学习是一个好习惯,更是你和我每个人的成长手段,如何灵活应用且高效的去使用才是关键!不要让生活中的拖延占据你过多的时间,更要和生活中的…

Windows与网络基础-19-注册表维护与优化

目录 一、 注册表维护 1.1 注册表被破坏后的常见现象 1.2 注册表被破坏的原因 1.3 备份注册表 1.4 恢复注册表 1.5 注册表锁定和解锁 二、注册表优化 2.1 清除多余的DLL文件 2.2 安装卸载应用程序的垃圾信息 2.3 系统安装时产生的无用信息 一、 注册表维护 1.1 注册表被…

Binder机制原理、源码、AIDL,IBinder,Binder,IInterface,BinderDriver,需要的都在这里了

导读: 本文分为三个阶段, 第一阶段,原理概述,力争说人话的基础上,讲明白Binder机制在搞什么,为什么这样搞,以及具体是怎么搞的。第二阶段,代码层面描述,主要描述了&…