24小时热门版块排行榜    

查看: 1149  |  回复: 12

duwei789551

新虫 (小有名气)

[求助] 关于fluent写udf时计算式后的条件控制 已有1人参与

c++菜鸟求助
ps是一个参数,经由前式计算后得到结果,现想要控制其数值大于1时为原值,否则等于1.但使用下述语句没有效果,求帮助。
if (ps>=1.0)
        {
                ps=ps;
}
else
{
        ps=1.0;
}
回复此楼
qq:2777094835
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

qc12345

至尊木虫 (职业作家)

【答案】应助回帖

是不是應該要return ps; 您可以加上去試試
聽海
4楼2016-08-22 20:57:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

qc12345

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
duwei789551: 金币+50, ★★★★★最佳答案 2016-10-12 16:40:03
你是要改變那個位置的參數呢?必須先把要改變的Thread , cell或 Domain先弄清楚

» 本帖已获得的红花(最新10朵)

聽海
2楼2016-08-22 17:08:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duwei789551

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by qc12345 at 2016-08-22 17:08:01
你是要改變那個位置的參數呢?必須先把要改變的Thread , cell或 Domain先弄清楚

域内用线指针,后面的参数计算中也没有特别声明使用什么指针,这里条件控制需要特别声明吗?
DEFINE_SOURCE(lradius_source,c,c_thread,dS,eqn)
{
    real T,rou,p;
    real ps;
double j0=-5674.5;
double j1=6.3925;
double j2=0.9677e-2;
double j3=0.6221e-6;
double j4=0.2074e-8;

double j6=4.16359;
double j7=2.71828;
double j8;
Domain *domain;
   
        Thread *mix_th, *sec_th;

       T=C_T(c,c_thread);
       p=C_P(c,c_thread);
       rou=C_R(c,c_thread);
j8=j0/T+j1-j2*T+j3*pow(T,2.0)-j4*pow(T,3.0)+j6*log(T);
ps=pow(j7,j8);
if (ps>=1.0)
        {
                ps=ps;
}
else
{
        ps=1.0;
}
}
qq:2777094835
3楼2016-08-22 19:53:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duwei789551

新虫 (小有名气)

引用回帖:
4楼: Originally posted by qc12345 at 2016-08-22 20:57:27
是不是應該要return ps; 您可以加上去試試

不是,这只是关于ps的一段程序,返回值是其他的,我只是想知道这样编写条件控制语句有什么问题,因为从结果上来说似乎没有体现
qq:2777094835
5楼2016-08-23 09:55:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qc12345

至尊木虫 (职业作家)

1.条件控制语的語法?K沒有什麼問題,?某绦蛑锌梢缘弥猵s是溫度的函數,用溫度值限制ps的一個關係式
2.程序應該還有後段吧?回傳值才是重點喔

» 本帖已获得的红花(最新10朵)

聽海
6楼2016-08-23 10:39:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duwei789551

新虫 (小有名气)

送红花一朵
引用回帖:
6楼: Originally posted by qc12345 at 2016-08-23 10:39:30
1.条件控制语的語法?K沒有什麼問題,?某绦蛑锌梢缘弥猵s是溫度的函數,用溫度值限制ps的一個關係式
2.程序應該還有後段吧?回傳值才是重點喔

S=0.01*p/ps;
C_UDMI(c,c_thread,2)=S;
后面还有这么一段,把比值存起来,我在结果里看udm-2的时候ps还是远远小于1了,看这个udm跟返回值没关系吧
qq:2777094835
7楼2016-08-23 11:04:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qc12345

至尊木虫 (职业作家)

1.ps还是远远小于1,所以ps=ps,ps不變
2.UDF中回傳值才是程式中源項的值,你的目的不是改變源項嗎?

» 本帖已获得的红花(最新10朵)

聽海
8楼2016-08-24 08:04:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duwei789551

新虫 (小有名气)

送红花一朵
引用回帖:
8楼: Originally posted by qc12345 at 2016-08-24 08:04:17
1.ps还是远远小于1,所以ps=ps,ps不變
2.UDF中回傳值才是程式中源項的值,你的目的不是改變源項嗎?

我的目的是在域中ps大于1的部分使之为原值,小于1的使之为1,然后计算S,然后存储。但刚刚的条件控制在存储中没有体现。
但是计算后的uds中确实能够体现出这个条件控制。
意思是存储的无法体现这个控制,但计算后的自定义标量方程中的源相中可以提现?
qq:2777094835
9楼2016-08-24 14:28:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qc12345

至尊木虫 (职业作家)

範例中C_UDMI都用loop引入值,如下,不知你程式中有沒有加.
thread_loop_c (t,domain)
{
begin_c_loop (c,t)
{
C_UDMI(c,t,0) = NV_MAG(C_UDSI_G(c,t,0));
}
end_c_loop (c,t)
}

» 本帖已获得的红花(最新10朵)

聽海
10楼2016-08-24 19:58:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 duwei789551 的主题更新
信息提示
请填处理意见