24小时热门版块排行榜    

查看: 688  |  回复: 13

renzy0315

铜虫 (初入文坛)

[求助] 请教这样的udf应该怎么写

我计算了一个二维流场,想把流场边界上的一条线上面的各网格点的压力读出来,因为后面还要对这些压力做计算。请问怎么读压力呢?
回复此楼

» 猜你喜欢

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

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

suichunjie

铜虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
renzy0315: 金币+1, ★★★很有帮助, 虽然我还是没弄出来 2012-09-22 09:10:18
xiegangmai: 金币+1, 谢谢参与! 2012-09-24 08:38:47
是不是这样子的~

DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(d,ID);
    begin_c_loop(c,t)
    {
    p=C_P(c,t);
    }
    end_c_loop(c,t)
}
2楼2012-09-20 22:31:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

suichunjie

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by suichunjie at 2012-09-20 22:31:58
是不是这样子的~

DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(d,ID);
    begin_c_loop(c,t)
    {
    p=C_P(c,t);
    }
    end_c_loop(c ...

DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(domain,ID);
    begin_c_loop(c,t)
    {
    C_UDMI(c,t,0) =C_P(c,t);
    }
    end_c_loop(c,t)
}
3楼2012-09-20 22:38:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

renzy0315

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by suichunjie at 2012-09-20 22:38:35
DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(domain,ID);
    begin_c_loop(c,t)
    {
    C_UDMI(c,t,0) =C_P(c,t);
    }
    end_c_loop(c ...

那个C_UDMI是什么啊?取压力的结果应该有几百个呢,是不是应该做个数组?
4楼2012-09-21 10:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息


xiegangmai: 金币+1, 谢谢参与! 2012-09-24 08:38:57
引用回帖:
4楼: Originally posted by renzy0315 at 2012-09-21 10:57:32
那个C_UDMI是什么啊?取压力的结果应该有几百个呢,是不是应该做个数组?...

做数组也行,加个for就行。
C_UDMI与单元一一对应。详情见help。
先做最重要的事情,再做次重要的事情
5楼2012-09-21 18:55:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

renzy0315

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by b07988 at 2012-09-21 18:55:13
做数组也行,加个for就行。
C_UDMI与单元一一对应。详情见help。...

我想问一下这个C_UDMI里面存储的数据在下一个时间步还可以调用么?我作非定常计算的,需要把上一个时间步的一些数据存下来下一个时间步继续用。
6楼2012-09-22 09:19:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

renzy0315

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by suichunjie at 2012-09-20 22:38:35
DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(domain,ID);
    begin_c_loop(c,t)
    {
    C_UDMI(c,t,0) =C_P(c,t);
    }
    end_c_loop(c ...

我已经在fluent面板里面定义了UDM了,可是一运行就报错:
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.
Error Object: ()
这是怎么回事啊?
我试着用数组不用UDM,结果读出来的数据几乎都一样,和fluent自己做出来的压力图明显不一样么
7楼2012-09-22 10:08:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

renzy0315

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by suichunjie at 2012-09-20 22:31:58
是不是这样子的~

DEFINE_ON_DEMAND(get_p)
{
  Domain *domain;
  domain = Get_Domain(1);
  Thread *t=lookup_thread(d,ID);
    begin_c_loop(c,t)
    {
    p=C_P(c,t);
    }
    end_c_loop(c ...

数据读出来了,可是还是用数组弄得,另外我想做个数据统计看看总共有多少个点,可出来的数据是个xxxe-312,明显不对么……
8楼2012-09-22 10:13:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

renzy0315

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by b07988 at 2012-09-21 18:55:13
做数组也行,加个for就行。
C_UDMI与单元一一对应。详情见help。...

另外,我的一个ID下面有两条线,我只想要一条线上的结果怎么办呢?必须到gambit里面重新给定边界么?
9楼2012-09-22 10:23:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

引用回帖:
9楼: Originally posted by renzy0315 at 2012-09-22 10:23:25
另外,我的一个ID下面有两条线,我只想要一条线上的结果怎么办呢?必须到gambit里面重新给定边界么?...

不需要,用udf实现。用数组实现比较好理解。
首先你肯定知道那条线所处的坐标位置和一个大约的单元数。
然后通过循环,将压力赋值给数组就可以了。
先做最重要的事情,再做次重要的事情
10楼2012-09-22 10:40:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 renzy0315 的主题更新
信息提示
请填处理意见