24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2666  |  回复: 10

东山

木虫 (正式写手)

[求助] 求教在不同UDF之间传递数组数据已有1人参与

在使用Fluent中,需要在不同的UDF之间传递数据,数据为n维的数组,请问该如何操作。

case描述如下:
(1)使用DEFINE_ADJUST在每次运行时提取梯度后,再根据自定义的模型计算,得到x方向n维的数组(x方向网格数为n)作为中间变量提供给源项计算时使用;
(2)在UDF源项中使用n维数组计算各单元格的源项值。

考虑使用static来定义数组var_int[n],不知道有Fluent中有没有更好的方法。

感谢任何指导和建议。
回复此楼
有动力,不机械
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

tumu_tu

金虫 (小有名气)

引用回帖:
4楼: Originally posted by 东山 at 2018-03-20 08:23:47
我的理解是UDM是定义的Cell相关变量,与p,u等类似。而我需要的只是程序计算的中间变量,与网格没有相关性,是一个数组形式。当然UDM也能用来处理中间变量,但是内存花销太大,程序结构也复杂了,应该是不太可取的 ...

UDM确实要占用不少内存。如果不关心变量的值,而且不是每个cell都有值的话,还是用static声明全局变量比较好。建议在每个宏里输出一条信息确定一下执行顺序,有时候不是我们想的那样。

发自小木虫Android客户端
6楼2018-03-20 08:59:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (正式写手)

本帖仅楼主可见
3楼2018-03-20 00:11:35
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页
普通回帖

tumu_tu

金虫 (小有名气)

2楼2018-03-19 21:07:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

东山

木虫 (正式写手)

引用回帖:
2楼: Originally posted by tumu_tu at 2018-03-19 21:07:37
有没有考虑过用UDM?

我的理解是UDM是定义的Cell相关变量,与p,u等类似。而我需要的只是程序计算的中间变量,与网格没有相关性,是一个数组形式。当然UDM也能用来处理中间变量,但是内存花销太大,程序结构也复杂了,应该是不太可取的方法吧
有动力,不机械
4楼2018-03-20 08:23:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

东山

木虫 (正式写手)

引用回帖:
3楼: Originally posted by 刀锋上追梦 at 2018-03-20 00:11:35
udf也是c,试试用c把梯度抛出来

现在想到用c来传递变量的方法就是static变量。

想了想你的建议后觉得是不是能够把所有UDF写在同一个c中,在所有宏之前就定义一个数组各个宏通用呢?
有动力,不机械
5楼2018-03-20 08:27:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gearboy78

禁虫 (小有名气)

本帖内容被屏蔽

7楼2018-03-26 15:29:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

主宰是剑圣

木虫 (著名写手)

8楼2018-05-23 01:55:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (小有名气)

本帖仅楼主可见
9楼2019-06-10 20:56:12
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

keen_xq

铁虫 (小有名气)

我也是利用static变量求组存储中间变量。我也暂且只有这一个方法

发自小木虫Android客户端
勿忘初心,方得始终。
10楼2019-06-14 07:30:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 东山 的主题更新
信息提示
请填处理意见