24小时热门版块排行榜    

查看: 9059  |  回复: 36

duandiancqu

金虫 (初入文坛)

[求助] UDF中DEFINE_ADJUST宏中使用C_UDSI_G 已有5人参与

我在用DEFINE_ADJUST宏时,只要加上C_UDSI_G(c,t,0),就提示错误,
Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.

将C_UDSI_G()替换成常数时,程序能够执行,是不是在这种情况下有什么要求啊,那位大神给我解释下,很纠结。
程序代码如下:
DEFINE_ADJUST(mhd_adjust,d)
{
        Thread *t;
        cell_t c;

        if (! Data_Valid_P())
        return;

        thread_loop_c(t,d)
        {
                begin_c_loop(c,t)
                {
                                               
                        C_UDMI(c,t,0)=-1*C_UDSI_DIFF(c,t,0)*C_UDSI_G(c,t,0)[0];
                        C_UDMI(c,t,1)=-1*C_UDSI_DIFF(c,t,0)*C_UDSI_G(c,t,0)[1];
                        C_UDMI(c,t,2)=-1*C_UDSI_DIFF(c,t,0)*C_UDSI_G(c,t,0)[2];
                }
                end_c_loop(c,t)
        }
}
回复此楼

» 收录本帖的淘帖专辑推荐

等离子体相关

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

759599290

银虫 (小有名气)

【答案】应助回帖

最近我也测试了使用DEFINE_ADJUST宏来获得某一变量的二阶导数。心得如下:
1、梯度变量在FLUENT计算过程中是暂存变量,计算完成后将自动释放。如果要获取,需使用如下方法强制求解器保存梯度变量已供后用:
在FLUENT主窗中输入:solve--set--expert,出现的是否保存梯度变量询问语句回答为yes
2、梯度变量在首次计算中是不存在的。即使在计算之前,UDS已经使用一定方法进行过初始化,UDS_G仍将是空值,在第一步计算时内存中不存在这一变量,因此无论如何设置,第一步计算都不能调用C_UDSI_G宏。计算进行了一步或更多步之后才可以。
3、C_UDSI_G调出的变量并不一定是内部计算使用的梯度值。在某些复杂边界处,Fluent内部有其他未公开的处理函数,C_UDSI_G只在计算区域中的绝大部分里非常接近内部计算使用的梯度值。
仅个人看法,未必正确,盼有所助。
中国热管理协会特约专家,中国热设计网高级顾问,东莞鸿艺电子技术总监
23楼2014-01-13 08:50:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

759599290

银虫 (小有名气)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-03-30 22:27:23
建议使用NNULL函数判断线程中是否存有C_UDSI_G(c,t,i)数据。data_valid_p和NNULL函数判断的侧重点可能并不一致。
中国热管理协会特约专家,中国热设计网高级顾问,东莞鸿艺电子技术总监
18楼2013-03-30 16:57:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tommyan

新虫 (初入文坛)

这个代码貌似是非法访问。
C_UDSI_G(c,t,0) 返回的是一个矢量,不能直接用在乘法表达式。
可以尝试:
求矢量模:NV_MAG(C_UDSI_G(c,t,0))再乘,
或者
real g[ND_ND];
g=C_UDSI_G(c,t,0);
使用g[0],g[1] g[2]
25楼2014-01-30 18:25:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

gyctju

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
臭水沟: 金币+1, 谢谢交流~~ 2012-07-04 20:39:50
可以尝试在不链接udf的情况下先计算几步,使得uds0的值合理。
2楼2012-07-04 12:31:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duandiancqu

金虫 (初入文坛)

引用回帖:
2楼: Originally posted by gyctju at 2012-07-04 12:31:48
可以尝试在不链接udf的情况下先计算几步,使得uds0的值合理。

我试过了,不行。。。
3楼2012-07-04 14:45:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucklhz

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
臭水沟: 金币+1, 谢谢交流~~ 2012-07-04 20:40:06
楼主,看你程序,你是想取你的UDS自定义标量uds0在空间个三个方向的梯度吗?还有,这种表达方式C_UDSI_G(c,t,0)[1],是不是有问题?C_UDSI_G(c,t,i)默认的在三个方向上的梯度是一样的
4楼2012-07-04 19:43:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duandiancqu

金虫 (初入文坛)

引用回帖:
4楼: Originally posted by lucklhz at 2012-07-04 19:43:32
楼主,看你程序,你是想取你的UDS自定义标量uds0在空间个三个方向的梯度吗?还有,这种表达方式C_UDSI_G(c,t,0),是不是有问题?C_UDSI_G(c,t,i)默认的在三个方向上的梯度是一样的

我是想取载个方向上的梯度,而且C_UDSI_G(c,t,0)[1]没有问题吧,帮助上就有这个啊,C_UDSI_G(c,t,0),i=1,2,3的
5楼2012-07-04 22:42:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yulinjun1986

新虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
臭水沟: 金币+1, 谢谢交流~~ 2012-07-05 17:20:16
我想问的是,你之前编写uds了吗?是不是编写的不对呀?如果没有编写的话,那可能就是需要编写uds了……
6楼2012-07-05 16:26:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duandiancqu

金虫 (初入文坛)

引用回帖:
6楼: Originally posted by yulinjun1986 at 2012-07-05 16:26:29
我想问的是,你之前编写uds了吗?是不是编写的不对呀?如果没有编写的话,那可能就是需要编写uds了……

写了的,就是一个电势方程,求出电势,再利用欧姆定律求出电流密度
7楼2012-07-05 21:21:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duandiancqu

金虫 (初入文坛)

引用回帖:
6楼: Originally posted by yulinjun1986 at 2012-07-05 16:26:29
我想问的是,你之前编写uds了吗?是不是编写的不对呀?如果没有编写的话,那可能就是需要编写uds了……

我现在把那个去掉了,可以计算,能量方程就是不收敛。。。。
8楼2012-07-05 21:25:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yulinjun1986

新虫 (小有名气)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 谢谢参与! 2012-07-06 22:25:11
引用回帖:
8楼: Originally posted by duandiancqu at 2012-07-05 21:25:21
我现在把那个去掉了,可以计算,能量方程就是不收敛。。。。...

你用的是非稳还是稳态?要是非稳的话,试试把时间步长调小些。另外就是要调整松弛因子了。你试试吧,如果不加uds的话,应该没问题才对。我的udf也遇到了你的问题,一加入和质量相关的源相就提示这个错误,我也相当无奈,正在求解中…希望大家相互帮助吧。
9楼2012-07-06 09:12:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duandiancqu

金虫 (初入文坛)

引用回帖:
9楼: Originally posted by yulinjun1986 at 2012-07-06 09:12:43
你用的是非稳还是稳态?要是非稳的话,试试把时间步长调小些。另外就是要调整松弛因子了。你试试吧,如果不加uds的话,应该没问题才对。我的udf也遇到了你的问题,一加入和质量相关的源相就提示这个错误,我也相当 ...

谢谢楼上了,我算的是稳态的
10楼2012-07-06 09:17:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 duandiancqu 的主题更新
信息提示
请填处理意见