udf for help
when I use this udf,there is some problem,it dosen't calculate.I don't know why?Can somebody help me?
#include "udf.h" #include "math.h" real C_Diff; real N_eq,N_1; real Ct; real Q,A3; real P1,P2; real IIs,IIw,IIIs,IV; real beta,beta_eq,beta_1,beta_3,beta_4,beta_6,beta_9; real UU,VV,WW,UV,UW,VW; DEFINE_SOURCE(u_source, c, t, dS, eqn) { real source; dS[eqn]=0.0; source=-C_R(c,t)*(C_UDSI_G(c,t,UU)[0]+C_UDSI_G(c,t,UV)[1]+C_UDSI_G(c,t,UW)[2]); return source; } DEFINE_SOURCE(v_source, c, t, dS, eqn) { real source; dS[eqn]=0.0; source=-C_R(c,t)*(C_UDSI_G(c,t,UV)[0]+C_UDSI_G(c,t,VV)[1]+C_UDSI_G(c,t,VW)[2]); return source; } DEFINE_SOURCE(w_source, c, t, dS, eqn) { real source; dS[eqn]=0.0; source=-C_R(c,t)*(C_UDSI_G(c,t,UW)[0]+C_UDSI_G(c,t,VW)[1]+C_UDSI_G(c,t,WW)[2]); return source; } DEFINE_ADJUST(kw_adjust,domain) { Thread *t; cell_t c; real T; real sign; real S11, S12, S13, S21, S22, S23, S31, S32, S33; real W11, W12, W13, W21, W22, W23, W31, W32, W33; thread_loop_c(t,domain) if (FLUID_THREAD_P(t)) { begin_c_loop(c,t) { T=MAX(1.0/(beta*C_O(c,t)),Ct*sqrt(C_MU_L(c,t)/(C_R(c,t)*beta*C_K(c,t)*C_O(c,t)))); S11=0.5*(C_DUDX(c,t)+C_DUDX(c,t))*T; S12=0.5*(C_DUDY(c,t)+C_DVDX(c,t))*T; S13=0.5*(C_DUDZ(c,t)+C_DWDX(c,t))*T; S21=0.5*(C_DVDX(c,t)+C_DUDY(c,t))*T; S22=0.5*(C_DVDY(c,t)+C_DVDY(c,t))*T; S23=0.5*(C_DVDZ(c,t)+C_DWDY(c,t))*T; S31=0.5*(C_DWDX(c,t)+C_DUDZ(c,t))*T; S32=0.5*(C_DWDY(c,t)+C_DVDZ(c,t))*T; S33=0.5*(C_DWDZ(c,t)+C_DWDZ(c,t))*T; W11=0.5*(C_DUDX(c,t)-C_DUDX(c,t))*T; W12=0.5*(C_DUDY(c,t)-C_DVDX(c,t))*T; W13=0.5*(C_DUDZ(c,t)-C_DWDX(c,t))*T; W21=0.5*(C_DVDX(c,t)-C_DUDY(c,t))*T; W22=0.5*(C_DVDY(c,t)-C_DVDY(c,t))*T; W23=0.5*(C_DVDZ(c,t)-C_DWDY(c,t))*T; W31=0.5*(C_DWDX(c,t)-C_DUDZ(c,t))*T; W32=0.5*(C_DWDY(c,t)-C_DVDZ(c,t))*T; W33=0.5*(C_DWDZ(c,t)-C_DWDZ(c,t))*T; beta=0.09; Ct=6.0; N_eq=4.05; C_Diff=2.2; Q=5.0/6*(N_1*N_1-2*IIw)*(2*N_1*N_1-IIw); P1=(A3*A3/27.0+9.0/20.0*IIs-2.0/3.0*IIw)*A3; P2=P1*P1-pow(A3*A3/9.0+9.0/10.0*IIs+2.0/3.0*IIw,3); A3=9.0/5.0+9.0/4.0*C_Diff*MAX(1+beta_eq*IIs,0); IIs=S11*S11+S21*S12+S31*S13+S12*S21+S22*S22+S32*S2 3+S13*S31+S23*S32+S33*S33; IIw=W11*W11+W21*W12+W31*W13+W12*W21+W22*W22+W32*W2 3+W13*W31+W23*W32+W33*W33; IIIs=S11*S11*S11+S11*S12*S21+S11*S13*S31+S12*S21*S 11+S12*S22*S21+S12*S23*S31+S13*S31*S11+S13*S32*S21 +S13*S33*S31 +S21*S11*S12+S21*S12*S22+S21*S13*S32+S22*S21*S12+S 22*S22*S22+S22*S23*S32+S23*S31*S12+S23*S32*S22+S23 *S33*S32 +S31*S11*S13+S31*S12*S23+S31*S13*S33+S32*S21*S13+S 32*S22*S23+S32*S23*S33+S33*S31*S13+S33*S32*S23+S33 *S33*S33; IV=S11*W11*W11+S11*W12*W21+S11*W13*W31+S12*W21*W11 +S12*W22*W21+S12*W23*W31+S13*W31*W11+S13*W32*W21+S 13*W33*W31 +S21*W11*W12+S21*W12*W22+S21*W13*W32+S22*W21*W12+S 22*W22*W22+S22*W23*W32+S23*W31*W12+S23*W32*W22+S23 *W33*W32 +S31*W11*W13+S31*W12*W23+S31*W13*W33+S32*W21*W13+S 32*W22*W23+S32*W23*W33+S33*W31*W13+S33*W32*W23+S33 *W33*W33; beta_eq=-6.0/5.0*N_eq/(N_eq*N_eq-2*IIw); beta_1=-N_1*(2*N_1*N_1-7*IIw)/Q; beta_3=-12*IV/(N_1*Q); beta_4=-2*(N_1*N_1-2*IIw)/Q; beta_6=-6.0*N_1/Q; beta_9=6.0/Q; sign=P1-sqrt(P2); if(sign>=0) {sign=1.0;} else {sign=-1.0;} if(P2>=0) {N_1=A3/3.0+pow(P1+sqrt(P2)*1.0,1.0/3)+sign*pow(abs(P1-sqrt(P2))*1.0,1.0/3);} else {N_1=A3/3.0+2*pow((P1*P1-P2*1.0),1.0/6)*cos(1.0/3*acos(P1/(sqrt(P1*P1-P2))));} C_UDSI(c,t,UU)=beta_3*(W11*W11+W12*W21+W13*W31-1.0/3*IIw)+beta_4*(S11*W11+S12*W21+S13*W31- W11*S11-W12*S21-W13*S31)+beta_6*(S11*W11*W11+S11*W12*W21+S11*W13*W 31+S12*W21*W11+S12*W22*W21+ S12*W23*W31+S13*W31*W11+S13*W32*W21+S13*W33*W31+W1 1*W11*S11+W11*W12*S21+W11*W13*S31+W12*W21*S11+ W12*W22*S21+W12*W23*S31+W13*W31*S11+W13*W32*S21+W1 3*W33*S31-IIw*S11-2.0/3*IV)+beta_9*(W11*S11*(W11*W11+ W12*W21+W13*W31)+W11*S12*(W21*W11+W22*W21+W23*W31) +W11*S13*(W31*W11+W32*W21+W33*W31)+W12*S21*(W11*W1 1+ W12*W21+W13*W31)+W12*S22*(W21*W11+W22*W21+W23*W31) +W12*S23*(W31*W11+W32*W21+W33*W31)+W13*S31*(W11*W1 1+ W12*W21+W13*W31)+W13*S32*(W21*W11+W22*W21+W23*W31) +W13*S33*(W31*W11+W32*W21+W33*W31)-W11*W11*(S11*W11+ S12*W21+S13*W31)-W11*W12*(S21*W11+S22*W21+S23*W31)-W11*W13*(S31*W11+S32*W21+S33*W31)-W12*W21*(S11*W11+ S12*W21+S13*W31)-W12*W22*(S21*W11+S22*W21+S23*W31)-W12*W23*(S31*W11+S32*W21+S33*W31)-W13*W31*(S11*W11+ S12*W21+S13*W31)-W13*W32*(S21*W11+S22*W21+S23*W31)-W13*W33*(S31*W11+S32*W21+S33*W31)); C_UDSI(c,t,VV)=beta_3*(W21*W12+W22*W22+W23*W32-1.0/3*IIw)+beta_4*(S21*W12+S22*W22+S23*W32- W21*S12-W22*S22-W23*S32)+beta_6*(S21*W11*W12+S21*W12*W22+S21*W13*W 32+S22*W21*W12+S22*W22*W22+ S22*W23*W32+S23*W31*W12+S23*W32*W22+S23*W33*W32+W2 1*W11*S12+W21*W12*S22+W21*W13*S32+W22*W21*S12+ W22*W22*S22+W22*W23*S32+W23*W31*S12+W23*W32*S22+W2 3*W33*S32-IIw*S22-2.0/3*IV)+beta_9*(W21*S11*(W11*W12+ W12*W22+W13*W32)+W21*S12*(W21*W12+W22*W22+W23*W32) +W21*S13*(W31*W12+W32*W22+W33*W32)+W22*S21*(W11*W1 2+ W12*W22+W13*W32)+W22*S22*(W21*W12+W22*W22+W23*W32) +W22*S23*(W31*W12+W32*W22+W33*W32)+W23*S31*(W11*W1 2+ W12*W22+W13*W32)+W23*S32*(W21*W12+W22*W22+W23*W32) +W23*S33*(W31*W12+W32*W22+W33*W32)-W21*W11*(S11*W12+ S12*W22+S13*W32)-W21*W12*(S21*W12+S22*W22+S23*W32)-W21*W13*(S31*W12+S32*W22+S33*W32)-W22*W21*(S11*W12+ S12*W22+S13*W32)-W22*W22*(S21*W12+S22*W22+S23*W32)-W22*W23*(S31*W12+S32*W22+S33*W32)-W23*W31*(S11*W12+ S12*W22+S13*W32)-W23*W32*(S21*W12+S22*W22+S23*W32)-W23*W33*(S31*W12+S32*W22+S33*W32)); C_UDSI(c,t,WW)=beta_3*(W31*W13+W32*W23+W33*W33-1.0/3*IIw)+beta_4*(S31*W13+S32*W23+S33*W33- W31*S13-W32*S23-W33*S33)+beta_6*(S31*W11*W13+S31*W12*W23+S31*W13*W 33+S32*W21*W13+S32*W22*W23+ S32*W23*W33+S33*W31*W13+S33*W32*W23+S33*W33*W33+W3 1*W11*S13+W31*W12*S23+W31*W13*S33+W32*W21*S13+ W32*W22*S23+W32*W23*S33+W33*W31*S13+W33*W32*S23+W3 3*W33*S33-IIw*S33-2.0/3*IV)+beta_9*(W31*S11*(W11*W13+ W12*W23+W13*W33)+W31*S12*(W21*W13+W22*W23+W23*W33) +W31*S13*(W31*W13+W32*W23+W33*W33)+W32*S21*(W11*W1 3+ W12*W23+W13*W33)+W32*S22*(W21*W13+W22*W23+W23*W33) +W32*S23*(W31*W13+W32*W23+W33*W33)+W33*S31*(W11*W1 3+ W12*W23+W13*W33)+W33*S32*(W21*W13+W22*W23+W23*W33) +W33*S33*(W31*W13+W32*W23+W33*W33)-W31*W11*(S11*W13+ S12*W23+S13*W33)-W31*W12*(S21*W13+S22*W23+S23*W33)-W31*W13*(S31*W13+S32*W23+S33*W33)-W32*W21*(S11*W13+ S12*W23+S13*W33)-W32*W22*(S21*W13+S22*W23+S23*W33)-W32*W23*(S31*W13+S32*W23+S33*W33)-W33*W31*(S11*W13+ S12*W23+S13*W33)-W33*W32*(S21*W13+S22*W23+S23*W33)-W33*W33*(S31*W13+S32*W23+S33*W33)); C_UDSI(c,t,UV)=beta_3*(W11*W12+W12*W22+W13*W32)+be ta_4*(S11*W12+S12*W22+S13*W32- W11*S12-W12*S22-W13*S32)+beta_6*(S11*W11*W12+S11*W12*W22+S11*W13*W 32+S12*W21*W12+S12*W22*W22+ S12*W23*W32+S13*W31*W12+S13*W32*W22+S13*W33*W32+W1 1*W11*S12+W11*W12*S22+W11*W13*S32+W12*W21*S12+ W12*W22*S22+W12*W23*S32+W13*W31*S12+W13*W32*S22+W1 3*W33*S32-IIw*S12)+beta_9*(W11*S11*(W11*W12+ W12*W22+W13*W32)+W11*S12*(W21*W12+W22*W22+W23*W32) +W11*S13*(W31*W12+W32*W22+W33*W32)+W12*S21*(W11*W1 2+ W12*W22+W13*W32)+W12*S22*(W21*W12+W22*W22+W23*W32) +W12*S23*(W31*W12+W32*W22+W33*W32)+W13*S31*(W11*W1 2+ W12*W22+W13*W32)+W13*S32*(W21*W12+W22*W22+W23*W32) +W13*S33*(W31*W12+W32*W22+W33*W32)-W11*W11*(S11*W12+ S12*W22+S13*W32)-W11*W12*(S21*W12+S22*W22+S23*W32)-W11*W13*(S31*W12+S32*W22+S33*W32)-W12*W21*(S11*W12+ S12*W22+S13*W32)-W12*W22*(S21*W12+S22*W22+S23*W32)-W12*W23*(S31*W12+S32*W22+S33*W32)-W13*W31*(S11*W12+ S12*W22+S13*W32)-W13*W32*(S21*W12+S22*W22+S23*W32)-W13*W33*(S31*W12+S32*W22+S33*W32)); C_UDSI(c,t,UW)=beta_3*(W11*W13+W12*W23+W13*W33)+be ta_4*(S11*W13+S12*W23+S13*W33- W11*S13-W12*S23-W13*S33)+beta_6*(S11*W11*W13+S11*W12*W23+S11*W13*W 33+S12*W21*W13+S12*W22*W23+ S12*W23*W33+S13*W31*W13+S13*W32*W23+S13*W33*W33+W1 1*W11*S13+W11*W12*S23+W11*W13*S33+W12*W21*S13+ W12*W22*S23+W12*W23*S33+W13*W31*S13+W13*W32*S23+W1 3*W33*S33-IIw*13)+beta_9*(W11*S11*(W11*W13+ W12*W23+W13*W33)+W11*S12*(W21*W13+W22*W23+W23*W33) +W11*S13*(W31*W13+W32*W23+W33*W33)+W12*S21*(W11*W1 3+ W12*W23+W13*W33)+W12*S22*(W21*W13+W22*W23+W23*W33) +W12*S23*(W31*W13+W32*W23+W33*W33)+W13*S31*(W11*W1 3+ W12*W23+W13*W33)+W13*S32*(W21*W13+W22*W23+W23*W33) +W13*S33*(W31*W13+W32*W23+W33*W33)-W11*W11*(S11*W13+ S12*W23+S13*W33)-W11*W12*(S21*W13+S22*W23+S23*W33)-W11*W13*(S31*W13+S32*W23+S33*W33)-W12*W21*(S11*W13+ S12*W23+S13*W33)-W12*W22*(S21*W13+S22*W23+S23*W33)-W12*W23*(S31*W13+S32*W23+S33*W33)-W13*W31*(S11*W13+ S12*W23+S13*W33)-W13*W32*(S21*W13+S22*W23+S23*W33)-W13*W33*(S31*W13+S32*W23+S33*W33)); C_UDSI(c,t,VW)=beta_3*(W21*W13+W22*W23+W23*W33)+be ta_4*(S21*W13+S22*W23+S23*W33- W21*S13-W22*S23-W23*S33)+beta_6*(S21*W11*W13+S21*W12*W23+S21*W13*W 33+S22*W21*W13+S22*W22*W23+ S22*W23*W33+S23*W31*W13+S23*W32*W23+S23*W33*W33+W2 1*W11*S13+W21*W12*S23+W21*W13*S33+W22*W21*S13+ W22*W22*S23+W22*W23*S33+W23*W31*S13+W23*W32*S23+W2 3*W33*S33-IIw*S23)+beta_9*(W21*S11*(W11*W13+ W12*W23+W13*W33)+W21*S12*(W21*W13+W22*W23+W23*W33) +W21*S13*(W31*W13+W32*W23+W33*W33)+W22*S21*(W11*W1 3+ W12*W23+W13*W33)+W22*S22*(W21*W13+W22*W23+W23*W33) +W22*S23*(W31*W13+W32*W23+W33*W33)+W23*S31*(W11*W1 3+ W12*W23+W13*W33)+W23*S32*(W21*W13+W22*W23+W23*W33) +W23*S33*(W31*W13+W32*W23+W33*W33)-W21*W11*(S11*W13+ S12*W23+S13*W33)-W21*W12*(S21*W13+S22*W23+S23*W33)-W21*W13*(S31*W13+S32*W23+S33*W33)-W22*W21*(S11*W13+ S12*W23+S13*W33)-W22*W22*(S21*W13+S22*W23+S23*W33)-W22*W23*(S31*W13+S32*W23+S33*W33)-W23*W31*(S11*W13+ S12*W23+S13*W33)-W23*W32*(S21*W13+S22*W23+S23*W33)-W23*W33*(S31*W13+S32*W23+S33*W33)); } end_c_loop(c,t) } } |
mind me ask what the error message?
|
udf-hlep
iter continuity x-velocity y-velocity z-velocity k omega time/iter
100 9.1994e-03 5.1518e-08 6.9043e-09 6.9100e-09 5.2052e-08 5.4165e-08 0:00:00 100 ! 101 solution is converged 101 1.#QNBe+00 1.#QNBe+00 1.#QNBe+00 1.#QNBe+00 1.#QNBe+00 1.#QNBe+00 0:04:57 99 this is the error message.in fact ,it doesn't converge and stop calculate.i don't know why?:( |
Oh, I really have not met this problem before. But, I have an idea that may help you. I've noticed that your source term has a purely explicity expression. Its convergence may be dependent on the grid size and the time step size. For example, if your grid is fine while your time step size is not small enough, the simulation may not converge at all. So, please play with them to see if you can get better results.
best |
All times are GMT -4. The time now is 09:59. |