UDF学习(二)数据访问宏

数据访问宏一

网格节点相关宏**
NODE_X (v) 节点v的x方向的坐标 (Node *v)
NODE_Y (v) 节点v的y方向的坐标 (Node *v)
NODE_Z (v) 节点v的z方向的坐标 (Node *v)
F_NODE (f,t,n) 获取节点 (face_t f, Thread *t, int n 节点索引号)
F_NNODES(f,t) 获取面上的节点数量 (face_t f, Thread *t)

网格面相关宏(压力基求解器
F_CENTROID(x, f, t)获取网格面中心坐标; 注释:(real x[ND_ND],face_t f, Thread *t)
F_AREA(A,f,t)获取网格面的法向量 (real A[ND_ND]或NV_VEC(A),)其中A[0]为x方向投影面积、A[1]…、A[2]…、face_t f, Thread *t)
面物理量获取宏
F_U(f, t) u方向速度 (face_t f, Thread *t)
F_V(f, t) v方向速度 (face_t f, Thread *t)
F_W(f, t) w方向速度 (face_t f, Thread *t)
F_T(f, t) 获取面上的温度 (face_t f, Thread *t)
F_H(f, t) 获取面上的焓值 (face_t f, Thread *t)
F_K(f, t) 获取面上的湍动能 (face_t f, Thread *t)
F_D(f, t) 获取面上的湍流耗散率 (face_t f, Thread *t)
F_YI(f, t, i) 获取面上的组分质量分数 (face_t f, Thread *t)//i是组分的编号,组分中的物质编号:0,1,2
F_P(f, t) 获取面上的压力 (face_t f, Thread *t)
F_Flux(f, t) 获取通过面的质量流量 (face_t f, Thread *t)

单元数据访问宏
C_CENTROID(x,c,t) 获取网格单元中心 (real x[ND_ND],cell_t c,Thread *t)
C_VOLUME(_2D)(c,t) 获取网格单元体积 (cell_t c, Thread *t)//这是2D的案例,如果是三维的话,就把括号的2D删除!
C_NNODES(c,t) 获取网格单元节点数量 (cell_t c, Thread *t)
C_NFACES(c,t) 获取网格单元网格面数量 (cell_t c, Thread *t)

单元物理量获取宏
C_R(c, t) 获取网格单元密度 (cell_t c, Thread *t)
C_P(c, t) 获取网格单元压力 (cell_t c, Thread *t)
C_U(c, t) 获取网格单元 u方向速度 (cell_t c, Thread *t)
C_V(c, t) 获取网格单元v方向速度 (cell_t c, Thread *t)
C_W(c, t) 获取网格单元 w方向速度 (cell_t c, Thread *t)
C_T(c, t) 获取网格单元的温度 (cell_t c, Thread *t)
C_H(c, t) 获取网格单元的焓值 (cell_t c, Thread *t)
C_K(c, t) 获取网格单元的湍动能 (cell_t c, Thread *t)
C_NUT(c, t) 获取网格单元的湍流粘度 (cell_t c, Thread *t)
C_D(c, t) 获取网格单元的湍流耗散率 (cell_t c, Thread *t)
C_YI(c, t, i) 获取网格单元的组分质量分数 (cell_t c, Thread *t)//i是组分的编号,组分中的物质编号:0,1,2

单元物理量梯度获取宏
C_P_G(c, t) 获取网格单元压力梯度 (cell_t c, Thread *t)
C_U_G(c, t) 获取网格单元 u方向速度梯度 (cell_t c, Thread *t)
C_V_G(c, t) 获取网格单元v方向速度梯度 (cell_t c, Thread *t)
C_W_G(c, t) 获取网格单元 w方向速度梯度 (cell_t c, Thread *t)
C_T_G(c, t) 获取网格单元的温度梯度 (cell_t c, Thread *t)
C_H_G(c, t) 获取网格单元的焓值梯度 (cell_t c, Thread *t)
C_K_G(c, t) 获取网格单元的湍动能梯度 (cell_t c, Thread *t)
C_NUT_G(c, t) 获取网格单元的湍流粘度梯度 (cell_t c, Thread *t)
C_D_G(c, t) 获取网格单元的湍流耗散率梯度 (cell_t c, Thread *t)
C_YI_G(c, t, i) 获取网格单元的组分质量分数梯度 (cell_t c, Thread *t)//i是组分的编号,组分中的物质编号:0,1,2

注意:
UDF中能够利用宏C_T_G访问单元温度,却不能用C_U_G访问x方向速度梯度。
主要原因在于求解器为了计算效率,在求解时从内存中除了不被使用的数据。如果一定要保留这些梯度数据,可以使用TUI明亮solve/set/expert,之后再系统提示Keep temporary solve emory from being freed?后输入yes,这样的话所有的梯度数据都会被保留,但是计算过程中会消耗更多的内存。
C_P_G只能用于压力基求解器。
C_YI_G只能用于密度基求解器,若要在压力基中使用此宏,则需要设置species/save-gradient? 为#t。

数据访问宏二

相邻网格索引宏:
在这里插入图片描述
C0=F_C0(f,t) C1=F_C1(f,t)
T0=THREAD_T0(t) T1=THREAD_T1(t)
注:比较重要
边界面判断宏
BOUNDARY_FACE_THREAD(t)
begin_f_loop(f,t)
{
if(BOUNDARY_FACE_THREAD(t) )
{

}

                         }edn_f_loop(f,t)

获取域指针宏
Get Domain (id)
Domian *d=Get_Domain(id)
注:对于单向流,id值为1;对于多相流,混合相的id值为1,其余每一相id值可以在Phase面板中查看。
设置边界值
F_PROFILE(f,t,i)
DEFINE_PROFILE(name,t,i)
{

begin_f_loop(f,t)
{

F_PROFILE(f,t,i)=…

                         }end_f_loop(f,t)}

获取shadow面的thread宏
THREAD_SHADOW(t)
ND操作宏
ND_ND
向量运算宏
NV_MAG(x)=sqrt(x[0]*x[0]+x[1]*x[1]+x[2]*x[2])
NV_MAG2(x)=x[0]*x[0]+x[1]*x[1]+x[2]*x[2]///模的平方;
时间相关宏
CURRENT_TIME (或者RP_Get Real(“flow time”)) 当前流动时间
CURRENT_TIMENSTEP (RP_Get_Real(“physical-time-setp”)) 当前时间步长
PREVIOUS_TIME 上个时间步的流动时间
PREVIOUS_2_TIME 上两个时间步的流动时间
PREVIOUS_TIMESTEP 上一个时间步长
N_TIME (或者RP_Get_Real(“time-step”)) 时间步数
N_ITER 迭代步数
其他宏:
Data_Valid_P//
FLUID_THRED_P//判断是否是个流体域,比较少见
M_PI//这就是π,
N_UDM//UDM个数
N_UDS//UDS个数
SQR(k)//k的平方
UNIVERSAL_GAS_CONSTANT//
Lookup_thread(d,id)//比较重要,通过指针和ID值,可以对应的类型指针

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础进阶03-注解和单元测试

目录 一、注解 1.概述 2.作用 3.自定义注解 (1)格式 (2)使用 (3)练习 4.元注解 (1)概述 (2)常见元注解 (3)Target &#x…

vue3预览pdf文件的几种方法

vue3预览pdf集中方法 方法一&#xff1a; iframe&#xff1a;这种方法显示有点丑 <iframesrc"E:\\1.pdf"frameborder"0"style"width: 80%; height: 100vh; margin: auto; display: block"></iframe>方法二&#xff1a; 展示效果&…

【RA6M3 HMI Board线下培训笔记】 RT Thread实现物联网应用 ETH+MQTT+LVGL+RTOS 实现温湿度监测

【RA6M3 HMI Board线下培训笔记】 RT Thread实现物联网应用 ETHMQTTLVGLRTOS 实现温湿度监测 1. 序言 随着物联网技术的飞速发展&#xff0c;越来越多的生活场景变得越来越智能&#xff0c;网联化、智能化越来越成为主旋律。 值此之际&#xff0c;RT-Thread 和 瑞萨电子共同…

光耦驱动继电器电路图大全

光耦驱动继电器电路图&#xff08;一&#xff09; 注&#xff1a; 1U1-1脚可接12V&#xff0c;也可接5V&#xff0c;1U1导通&#xff0c;1Q1导通&#xff0c;1Q1-30V&#xff0c;线圈两端电压为11.7V. 1U1-1脚不接或接地&#xff0c;1U1不通&#xff0c;1Q1截止&#xff0c;1…

蓝桥OJ3694肖恩的投球游戏plus

二维差分 #include<bits/stdc.h> using namespace std;const int N 1e3 5; int a[N][N],d[N][N];int main() {int n, m, q;cin >> n >> m >> q;for (int i 1 ; i < n; i){for (int j 1; j < m; j){cin >> a[i][j];d[i][j] a[i][j] a…

webug存在的越权漏洞-水平越权以及垂直越权的漏洞复现(超详解)

越权漏洞-webug、 1.登录 账号&#xff1a;admin 密码&#xff1a;admin 2.进入逻辑漏洞 3.进入越权修改密码靶场 &#xff08;1&#xff09;输入账号密码 进入进去会发现没有权限进入 方法一&#xff1a; 这里我们只需要将 127.0.0.1:8080/control/a/auth_cross/cross_a…

pytorch实战-图像生成与对抗

1 概述 what&#xff1a;给定一句话&#xff0c;或一些要求&#xff0c;按要求生成需要的图像。 本篇总结主要包含反卷积和GAN&#xff08;generative adversial network, GAN&#xff09; 2 反卷积与图像生成 what&#xff1a;反卷积可以看成卷积的反操作&#xff0c;但不…

紫光展锐T760_芯片性能介绍_展锐T760安卓核心板定制

展锐T760核心板是一款基于国产5G芯片的智能模块&#xff0c;采用紫光展锐T760制程工艺为台积电6nm工艺&#xff0c;支持工艺具有出色的能效表现。其采用主流的44架构的八核设计&#xff0c;包括4颗2.2GHz A76核心和4颗A55核心设计&#xff0c;内存单元板载可达8GB Ram256GB ROM…

uniapp vuecli项目融合[小记]:将多个项目融合,打包成一个小程序/App,拆分多个H5应用

前言&#xff1a; 目前两个uniapp vuecli开发的项目【A、B】&#xff0c;新规划的项目C&#xff1a;需要融合项目B 80%的功能模块&#xff0c;同时也需要涵盖项目A的所有功能模块。 应用需求&#xff1a; 1、新项目C【小程序】可支持切换到应用A/C界面【内部通过初始化、路由跳…

0125-1-vue3初体验

vue3尝鲜体验 初始化 安装vue/clinext&#xff1a; yarn global add vue/clinext # OR npm install -g vue/clinext然后在 Vue 项目运行&#xff1a; vue upgrade --next项目目录 vue3-template ├── index.html // html模板 ├── mock // mock数据 │ └── user.…

qt学习:QListWidget控件+自定义条目项+双击删除+单击获取

目录 图片 头函数 接口 显示案例 方法1 方法2 方法3 方法4 自定义 方法5 在方法4上实现 图片 头函数 #include <QListWidgetItem> 接口 //不怎么常用void addItem(const QString &label)void addItems(const QStringList &labels) //自定义条目项…

Redis客户端之Redisson(二)Redisson分布式锁

一、原理&#xff1a; Redisson并没有通过setNx命令来实现加锁&#xff0c;而是基于 Redis 看⻔狗机制&#xff0c;自己实现了一套分布式锁逻辑。 1、加锁机制&#xff1a; 二、使用方法&#xff1a;

EasyExcel实现下载模板

实体类&#xff1a; package com.aicut.monitor.domain;import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.s…

YOLOv8全网独家首发:Powerful-IoU更好、更快的收敛IoU | 2024年最新IoU

💡💡💡本文独家改进:Powerful-IoU更好、更快的收敛IoU,是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数 💡💡💡MS COCO和PASCAL VOC数据集实现涨点 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.htm…

【新课上架】安装部署系列Ⅲ—Oracle 19c Data Guard部署之两节点RAC部署实战

01 课程介绍 Oracle Real Application Clusters (RAC) 是一种跨多个节点分布数据库的企业级解决方案。它使组织能够通过实现容错和负载平衡来提高可用性和可扩展性&#xff0c;同时提高性能。本课程基于当前主流版本Oracle 19cOEL7.9解析如何搭建2节点RAC对1节点单机的DATA GU…

数学知识第一期 质数

前言 本文是关于质数的一些内容&#xff0c;希望能够对大家有帮助&#xff01;&#xff01;&#xff01; 一、质数的基本内容 定义&#xff1a; 质数又称素数。一个大于1的自然数&#xff0c;除了1和它自身外&#xff0c;不能被其他自然数整除的数叫做质数&#xff1b;否则…

Go Zero微服务个人探究之路(十)实战走通微服务前台请求调用的一套流程model->rpc微服务->apiHTTP调用

前言 Go语言凭借低占用&#xff0c;高并发等优秀特性成为后台编程语言的新星&#xff0c;GoZero框架由七牛云技术副总裁团队编写&#xff0c;目前已经成为Go微服务框架里star数量最多的框架 本文记录讲述笔者一步步走通前台向后台发出请求&#xff0c;后台api调用rpc服务的相…

VR数字展厅,平面静态跨越到3D立体化时代

近些年&#xff0c;VR的概念被越来越多的人提起&#xff0c;较为常见的形式就是VR数字展厅。VR数字展厅的出现&#xff0c;让各地以及各行业的展厅展馆的呈现和宣传都发生了很大的改变和革新&#xff0c;同时也意味着展览传播的方式不再局限于原来的图文、视频&#xff0c;而是…

【Redis】list以及他的应用场景

介绍 &#xff1a;list 即是 链表。链表是一种非常常见的数据结构&#xff0c;特点是易于数据元素的插入和删除并且且可以灵活调整链表长度&#xff0c;但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList&#xff0c;但是 C 语言并没有实现…

Spring Boot如何统计一个Bean中方法的调用次数

目录 实现思路 前置条件 实现步骤 首先我们先自定义一个注解 接下来定义一个切面 需要统计方法上使用该注解 测试 实现思路 通过AOP即可实现&#xff0c;通过AOP对Bean进行代理&#xff0c;在每次执行方法前或者后进行几次计数统计。这个主要就是考虑好如何避免并发情况…