|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我想模拟沉淀池悬浮物沉降的,开始把Y方向的沉降迁移项当源项处理,反映不出来沉降作用,只有浓度的扩散和对流作用,程序如下:
#include “udf.h”
#define CON 200
DEFINE_SOURCE(source_user,cell,thread,dS,equ)
{
real source;
source=0.0005*(exp(-0.0005*(C_UDSI(c,t,i)-0.02CON)-exp(-0.015*(C_UDSI(c,t,i)-0.02CON))*C_UDSI_G(c,t,i)[1]+0.0005*(0.015*exp(-0.015*(C_UDSI(c,t,i)-0.02CON))-0.0005*exp(-0.0005*(C_UDSI(c,t,i)-0.02CON)))*C_UDSI(c,t,i)*C_UDSI_G(c,t,i)[1];
dS[equ]=0;
return source;
}
于是,便把Y方向的沉降迁移项当自定义标量对流项处理(fluent6.1):
#include"udf.h"
define CON1 800
DEFINE_UDS_FLUX(sed_uds,f,t,i)
{
Thread *t0,*t1=NULL;
cell_t c,c0,c1=-1;
real NV_VEC(psi_vec),NV_VEC(A);
real s;
s=0.0005*exp(-0.0005*(C_UDSI(c,t,i)-0.002*CON1))-0.0005*exp(-0.015*(C_UDSI(c,t,i)-0.002*CON1));
t0=THREAD_T0(f,t);
c0=F_C0(f,t);
if (NULL!=THREAD_T1(f,t))
{
t1=THREAD_T1(f,t);
c1=F_C1(f,t);
}
else
{
t1=NULL;
c1=-1;
}
if (NULL==t1)
{
NV_D(psi_vec,=,C_U(f,t),(C_V(f,t)-s),C_W(f,t));
NV_S(psi_vec,*=,C_R(f,t));
}
else
{
NV_D(psi_vec,=,C_U(c0,t0),(C_V(c0,t0)-s),C_W(c0,t0));
NV_D(psi_vec,+=,C_U(c1,t1),(C_V(c1,t1)-s),C_W(c1,t1));
NV_S(psi_vec,/=,2.);
NV_S(psi_vec,*=,(C_R(c0,t0)+C_R(c1,t1))/2.);
}
F_AREA(A,f,t);
return NV_DOT(psi_vec,A);
}
结果:C:\fluent.inc\fluent6.2.16\src\uds_flux.c:8: macro `THREAD_T0'; used with too many (2) args
看到论坛上的有关帖子,把THREAD_Ti(f,t)改成THREAD_i(t),解释通过了,但初始化后,
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: ()
麻烦大家帮我看看到底是啥错误啊,苦了一个月了,只好来求助大家
[br][br][以下内容由 likaizhan 在 2007年12月18日 05:42pm 时添加] [br]
如果作为源项处理,源项表达式为(偏微分)
d(Vs*C)/dy
Vs=0.0005[exp(-0.005(C-0.002C0)-exp(-0.015(C-0.002C0)]
Vs为沉速,C为浓度,C0 为初始浓度[br][br][以下内容由 likaizhan 在 2007年12月18日 05:45pm 时添加] [br]
如果作为对流项,Y方向的对流分量为
d[(V-Vs)]C /dy
V为y方向(垂向)分量[br][br][以下内容由 likaizhan 在 2007年12月19日 06:22pm 时添加] [br]
Y方向的对流分量为d[(V-Vs)C] /dy
上面写错了 |
|