24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2676  |  回复: 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的回帖

匿名

用户注销 (正式写手)

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

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的回帖
信息提示
请填处理意见