24小时热门版块排行榜    

查看: 437  |  回复: 1

guolongma

新虫 (初入文坛)


[交流] 如何将一个实时计算得到的值有效作用于一个源项中

最近在多相流的模拟中遇到了一个难题,还请各位高手指点啊!

想达到的目的是:首先初始化一个h值(数值很小),再通过DEFINE_ADJUST宏实时计算得到一个h值,然后将其带入到最后的源项中,将其作为源项的一个判定条件和变量。

遇到的问题:得到的h值作用不到
1、用DEFINE_INIT初始化h值
2、如何将DEFINE_INIT初始化的值以及DEFINE_ADJUST宏实时得到的值带入到源项中
3、下面是UDF,h和Zmin定义为了全局变量
(1)初始化这样直接赋值行吗?
DEFINE_INIT(my_int,d)
{
h=1.0e-5
}
(2)这个是否有问题?编译可以通过
DEFINE_ADJUST(adjust_fraction, d)
{
    Thread *t;
    cell_t c;
    Thread **pt;  
    real x,y,z,e[ND_ND];
    d = Get_Domain(1);
    mp_thread_loop_c (t,d,pt)   
        {
                if (FLUID_THREAD_P(t))
                begin_c_loop (c,t)
                {
                    C_CENTROID(e,c,t);
                z=e[2];
             if(C_VOF(c,pt[0])>0.3 && C_VOF(c,pt[0])<0.9) //根据VOF数值判断界面.
                {
              if(Zmin              Zmin=z;
                }
                h=fabs(Zmin);
                }
                end_c_loop (c,t)
        }
}
4、想实现目的,还有没有其他的途径呢?

希望高手多多指点,散尽家财,只为求得一良方啊!
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

得得315

禁虫 (正式写手)


guolongma(金币+1): 谢谢参与
本帖内容被屏蔽

2楼2016-06-07 16:57:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guolongma 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见