CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   ANSYS (https://www.cfd-online.com/Forums/ansys/)
-   -   udf for help (https://www.cfd-online.com/Forums/ansys/87917-udf-help.html)

sqsq220 May 2, 2011 22:57

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)
}
}

zhenglun.wei May 6, 2011 12:06

mind me ask what the error message?

sqsq220 May 6, 2011 21:37

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?:(

zhenglun.wei May 6, 2011 23:21

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 17:28.