流体为nacl,水两组分溶液,在壁面wall处,由于水渗透的原因,nacl浓度增加,质量分数增大,由此编辑udf,如下:
DEFINE_PROFILE(wall_nacl_mass_fractionin,thread,position) /*壁面处nacl的质量分数 */
{
cell_t c;
face_t f;
cell_t c0=F_C0(f,thread);
Thread *t0=THREAD_T0(thread);
real x[ND_ND];
real y;
real x_adj[ND_ND];
real y_adj;
real c1 ;
real m_adj,m_wall,mw_nacl; /* m_adj为壁面附近nacl的质量分数,m_wall为壁面处nacl的质量分数,mw_nacl为nacl的分子量*/
int i;
Material *mix=THREAD_MATERIAL(thread); /*区域d的材料属性*/
Material *sp; /*材料属性sp*/
real r_mix=0.0;
begin_f_loop(f,thread)
{
begin_c_loop(c0,t0)
{
if(MATERIAL_TYPE(mix)==MATERIAL_MIXTURE)
{
mixture_species_loop(mix,sp,i) /* 循环遍历混合相中的所有组分*/
{
if((0==strcmp(MIXTURE_SPECIE_NAME(mix,i),"nacl"))||(0==strcmp(MIXTURE_SPECIE_NAME(mix,i),"NaCl")))
{
m_adj=C_YI(c0,t0,i);
mw_nacl=MATERIAL_PROP(sp,PROP_mwi);
}
}
}
C_CENTROID(x_adj,c0,thread);
y_adj=fabs(x_adj[1]);
F_CENTROID(x,f,thread);
y=fabs(x[1]);
c1=(m_adj-0.0082)*exp(4950.81*y_adj);
m_wall=c1*exp(-4950.81*y)+0.0082;
F_PROFILE(f,thread,position)=m_wall;
printf("壁面y值=%f\n",y);
}
end_c_loop(c0,t0)
}
end_f_loop(f,thread)
}
当初始化时,fluent提示有错误,
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: ()
不知该如何解决,期待大家的帮助,希望能和大家探讨,QQ:451484235 .