24小时热门版块排行榜    

查看: 1141  |  回复: 15

yanboliu

金虫 (小有名气)

引用回帖:
5楼: Originally posted by achilFes1990 at 2015-06-02 12:59:42
我觉得这个#include "math.h",是否可以去掉?
我之前有时候加上和去掉,貌似都没有什么问题

这个程序确实单双核都一样,但是有些写法还不是特别标准,有些整数后面最好加上.0以保证其为real类型...

achilFes1990您好,又来打扰您,请问在fluent瞬态计算时一段时间后,是否可以只对时间进行初始化,也就是说,使flow-time重新从0开始,而不对已计算好的流场和温度场进行初始化呢,方法是怎样的,方便的话请给予指点,谢谢
11楼2015-07-20 09:03:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

achilFes1990

木虫 (著名写手)

引用回帖:
11楼: Originally posted by yanboliu at 2015-07-20 09:03:11
achilFes1990您好,又来打扰您,请问在fluent瞬态计算时一段时间后,是否可以只对时间进行初始化,也就是说,使flow-time重新从0开始,而不对已计算好的流场和温度场进行初始化呢,方法是怎样的,方便的话请给予指 ...

那你怎么做到流动时间从零开始,而压力场,速度场保持不变呢?
这样的话,倒不如先用稳态计算,等流场稳定之后在转换成瞬态进行计算,这也是常用的方法。

[ 发自手机版 http://muchong.com/3g ]
扫一扫关注我的微信公众号,共同学习船舶CFD
12楼2015-07-21 07:48:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanboliu

金虫 (小有名气)

引用回帖:
12楼: Originally posted by achilFes1990 at 2015-07-21 07:48:31
那你怎么做到流动时间从零开始,而压力场,速度场保持不变呢?
这样的话,倒不如先用稳态计算,等流场稳定之后在转换成瞬态进行计算,这也是常用的方法。
...

谢谢您给我回复,您说的方法我试过了,用稳态计算然后再转换成瞬态的方法中,温度场有改变,变成了均匀的温度场,而我要的是在计算一个周期后温度场不变,而计算时间从0开始的这种效果,因为有一个fluent的内置程序需要时间重新开始才会周期性的起作用。我想是不是可以编写用编写UDF程序的的办法使流动时间和时间步在大于一定的数值后,将他们再赋值为0,可是我又不会用C语言编程,因此,向您请教。
13楼2015-07-21 14:41:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

achilFes1990

木虫 (著名写手)

引用回帖:
13楼: Originally posted by yanboliu at 2015-07-21 14:41:25
谢谢您给我回复,您说的方法我试过了,用稳态计算然后再转换成瞬态的方法中,温度场有改变,变成了均匀的温度场,而我要的是在计算一个周期后温度场不变,而计算时间从0开始的这种效果,因为有一个fluent的内置程序 ...

我不是很了解你要做什么,我的感觉,你是不是说,有一个程序是周期性的,一个时间段有,一个时间段没有,譬如变化周期为5s,0到5s内有这个程序,然后5到10s这个程序又没有,如此反复。
如果是这样的话,使用udf是可以实现的,其他也没有太好的方法。
扫一扫关注我的微信公众号,共同学习船舶CFD
14楼2015-07-21 18:45:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanboliu

金虫 (小有名气)

送红花一朵
谢谢您给我回复,我是想实现您说的这个意思

[ 发自手机版 http://muchong.com/3g ]
15楼2015-07-23 00:33:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanboliu

金虫 (小有名气)

引用回帖:
7楼: Originally posted by achilFes1990 at 2015-06-02 19:07:43
#include "udf.h"

DEFINE_PROFILE(unsteady_temperature, t, i)
{

real time = CURRENT_TIME;
real temperature;
face_t f;

begin_f_loop(f, t)
{
temperature = 295.869+5.3462*pow(10,- ...

achilFes1990 :
       您好!谢谢您前段时间给我的帮助,不好意思又来打扰您,请问能不能再方便的时间给我指点迷津,我要编一个udf程序,定义时间和温度的关系,关系式为y=y0+A/t0*exp(0.5*(w/t0)∧2-(x-xc)/t0)*(erf(z/sqrt(2))+1)/2
式中: double z=(x-xc)/w-w/t0;y0=-4.63764;A=81.9784;xc=5.98023;w=3.3487;t0=5.90205。
编写了以下udf程序:
#include <udf.h>
#include <math.h>
#define ERF_PI 3.141592653589793
#define ERF_N 100


double erf(double x)////erf(x) = the cumulation of { 2/sqrt(pi)*exp(-z*z) } from 0 to x; //error function
{        // 2/sqrt(pi) * { ∑[(-1)^n / n! * x^(2n+1)/(2n+1)] + x }
        double res = x;
        double factorial = 1;        //n!
        double x_pow = x;
        int one = 1, n;
        for( n=1; n<100; n++ ){
                factorial *= n;
                one *= -1;
                x_pow *= x*x;
                res += one / factorial * x_pow / ( 2*n+1 );
        }
        res *= 2 / sqrt(ERF_PI);
        return res;
}

double norm_cdf(double y)//cumulation distribution function of standard normal distribution
{
        real time = CURRENT_TIME;
        y=(time-5.98023)/3.3487-3.3487/5.90205
        return ( 1 + erf( y / sqrt(2) ) ) / 2;
}

DEFINE_PROFILE(unsteady_temperature, t, i)
{
real time = CURRENT_TIME;
real temperature;
face_t f;

begin_f_loop(f, t)
{
temperature = -4.6376+6.9448*exp(1.1742-time/5.90205)*(erf(y/sqrt(2))+1)/2;
F_PROFILE(f, t, i) = temperature;
}
end_f_loop(f, thread)

}

导入fluent出现以下错误:
ers\user\Desktop\udf unsteady temperature w 1.c: line 27: parse error.
Error: C:\Users\user\Desktop\udf unsteady temperature w 1.c: line 38: y: undeclared variable

望前辈给我指点迷津
16楼2015-09-16 08:42:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yanboliu 的主题更新
信息提示
请填处理意见