24小时热门版块排行榜    

查看: 2387  |  回复: 13

seazsh

金虫 (小有名气)

[求助] 温度区域能量源项的添加

1想在某温度或者某温度区间施加能量源项, 按下面的编写好像加不上去,

2还有如果要在某温区添加动量源项怎么处理?

DEFINE_SOURCE(energy_source,c,t,dS,eqn)
{
   real source;
   real r;
   real x[ND_ND];
   real xi,yi;      
   real cs,temp;
cs=3/pow(R0,2);  
temp=C_T(c,t);   
C_CENTROID(x,c,t);
        xi=x[0];
        yi=x[1];
          r=sqrt(xi*xi);              
  if(temp<=235&&temp>=365&&yi>=0)
      {  
            source=3*cs*P/(3.14159*0.007*(1-1/exp(3)))*exp(-3*r*r*cs/log10(H/(yi+0.0001)));
           dS[eqn]=0;
      }
   else
  source=dS[eqn]=0;
return source;
}
回复此楼

» 猜你喜欢

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

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

shuai_1314

捐助贵宾 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-05-14 21:40:52
你的R0没有定义吧?还有你的return给的不对,要不就在每条条件判断语句后都return,要么在条件判断外部return

[ 发自手机版 http://muchong.com/3g ]
率真随性的射手
2楼2013-05-14 11:09:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

seazsh

金虫 (小有名气)

引用回帖:
2楼: Originally posted by shuai_1314 at 2013-05-14 11:09:46
你的R0没有定义吧?还有你的return给的不对,要不就在每条条件判断语句后都return,要么在条件判断外部return

R0和H在前面定义了,可以编译,return这样好像也可以吧?
主要的问题是1想在某温度或者某温度区间施加能量源项, 按下面的编写好像加不上去,

2还有如果要在某温区添加动量源项怎么处理?
3楼2013-05-14 13:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-05-14 21:41:00
seazsh: 金币+5, 有帮助 2013-05-15 16:52:49
if(temp<=235&&temp>=365&&yi>=0)????
错误其实挺明显的。。。
&&应该是||
还有
exp(-3*r*r*cs/log10(H/(yi+0.0001)));
自己再仔细看看原文献吧,公式不是这样的,亲。
其次,0.0001有必要吗?
自己好好想想吧。
先做最重要的事情,再做次重要的事情
4楼2013-05-14 20:44:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shuai_1314

捐助贵宾 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-05-15 11:25:05
seazsh: 金币+5, 有帮助 2013-05-15 16:52:34
引用回帖:
3楼: Originally posted by seazsh at 2013-05-14 13:24:51
R0和H在前面定义了,可以编译,return这样好像也可以吧?
主要的问题是1想在某温度或者某温度区间施加能量源项, 按下面的编写好像加不上去,

2还有如果要在某温区添加动量源项怎么处理?...

DEFINE_SOURCE(source_energe, cell, thread, dS, eqn)
{
        real energe;/*热源*/
        real C[ND_ND];
        real x;
        real y;
        real z;
   
       C_CENTROID(C,cell,thread);/*取控制体cell的坐标*/
            x=C[0];
            y=C[1];
            z=C[2];
            
            if(x >= 0.1 && x <= 0.3)
                    {
                            if(sqrt(y*y+z*z) <= 0.014)
                                    {
                                      energe = 500;
                                      dS[eqn] = 0;
                                      return energe;
                                    }
                            else
                                    {
                                      energe = 0;
                                      dS[eqn] = 0;
                                      return energe;
                                    }
                    }
            else
                    {
                            energe = 0;
                            dS[eqn] = 0;
                            return energe;
                    }
这是我以前编过的一个能量源项,判断过后马上接着return,我之前像你那样编过return,但是也加不上去!

动量源项分方向,注意单位!具体的值你要自己算一下嘛
率真随性的射手
5楼2013-05-14 23:01:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shuai_1314

捐助贵宾 (小有名气)

引用回帖:
4楼: Originally posted by b07988 at 2013-05-14 20:44:11
if(temp<=235&&temp>=365&&yi>=0)????
错误其实挺明显的。。。
&&应该是||
还有
exp(-3*r*r*cs/log10(H/(yi+0.0001)));
自己再仔细看看原文献吧,公式不是这样的,亲。
其次 ...

&&也是可以的
率真随性的射手
6楼2013-05-14 23:02:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

引用回帖:
6楼: Originally posted by shuai_1314 at 2013-05-14 23:02:44
&&也是可以的...

温度可以小于235,又大于365???
&&是并且的意思吧。。。。
先做最重要的事情,再做次重要的事情
7楼2013-05-15 08:55:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息


xiegangmai: 金币+1, 谢谢参与! 2013-05-15 11:25:14
引用回帖:
5楼: Originally posted by shuai_1314 at 2013-05-14 23:01:46
DEFINE_SOURCE(source_energe, cell, thread, dS, eqn)
{
        real energe;/*热源*/
        real C;
        real x;
        real y;
        real z;
   
       C_CENTROID(C,cell,thread);/*取 ...

最后再return,语法绝对没有问题。
事实上,就是没有问题。
先做最重要的事情,再做次重要的事情
8楼2013-05-15 08:57:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

seazsh

金虫 (小有名气)

引用回帖:
4楼: Originally posted by b07988 at 2013-05-14 20:44:11
if(temp<=235&&temp>=365&&yi>=0)????
错误其实挺明显的。。。
&&应该是||
还有
exp(-3*r*r*cs/log10(H/(yi+0.0001)));
自己再仔细看看原文献吧,公式不是这样的,亲。
其次 ...

温度区间是2350到1365修改时没注意,能源公式随便给的,主要是用温度判据加载不上,用区域(坐标)可以加载。
9楼2013-05-15 14:02:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

seazsh

金虫 (小有名气)

引用回帖:
5楼: Originally posted by shuai_1314 at 2013-05-14 23:01:46
DEFINE_SOURCE(source_energe, cell, thread, dS, eqn)
{
        real energe;/*热源*/
        real C;
        real x;
        real y;
        real z;
   
       C_CENTROID(C,cell,thread);/*取 ...

和你一样用区域(xyz坐标)判据可以加载,可是用温度判据就不行,不怎么回事
10楼2013-05-15 14:05:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 seazsh 的主题更新
信息提示
请填处理意见