@Mohsen certainly the drag model has not been properly coded meaning the results obtained in the paper are questionable. Did the authors of the paper use the same code? If so bring it to their attention that the code has some errors! i.e. the definition of the particle reynolds number is not correct and the condition for switching to different regimes is missing.
|
I read thesis of the paper and in appendix of the thesis that code was written for gidaspow with switch function.and i think that the code has some errors.
thanks a lot for your replies Dear Musa ,You've helped me a lot. I wish the best for you. |
You are welcome buddy!
|
aoa, i have used this udf for gas solid fluidized bed and gives accurate results now i want to change from gas to liquid(water), tell me what are the changes required to do in code for this, waiting for ur reply
udf for customizing syamlal drag law in Fluent #include "udf.h" #define pi 4.*atan(1.) #define diam2 3.e-4 DEFINE_EXCHANGE_PROPERTY(custom_drag, cell, mix_thread, s_col, f_col) { Thread *thread_g, *thread_s; real x_vel_g, x_vel_s, y_vel_g, y_vel_s, abs_v, slip_x, slip_y, rho_g, rho_s, mu_g, reyp, afac, bfac, void_g, vfac, fdrgs, taup, k_g_s; /* find the threads for the gas (primary) */ /* and solids (secondary phases) */ thread_g = THREAD_SUB_THREAD(mix_thread, s_col);/* gas phase */ thread_s = THREAD_SUB_THREAD(mix_thread, f_col);/* solid phase*/ /* find phase velocities and properties*/ x_vel_g = C_U(cell, thread_g); y_vel_g = C_V(cell, thread_g); x_vel_s = C_U(cell, thread_s); y_vel_s = C_V(cell, thread_s); slip_x = x_vel_g - x_vel_s; slip_y = y_vel_g - y_vel_s; rho_g = C_R(cell, thread_g); rho_s = C_R(cell, thread_s); mu_g = C_MU_L(cell, thread_g); /*compute slip*/ abs_v = sqrt(slip_x*slip_x + slip_y*slip_y); /*compute Reynold's number*/ reyp = rho_g*abs_v*diam2/mu_g; /* compute particle relaxation time */ taup = rho_s*diam2*diam2/18./mu_g; void_g = C_VOF(cell, thread_g);/* gas vol frac*/ /*compute drag and return drag coeff, k_g_s*/ afac = pow(void_g,4.14); if(void_g<=0.85) bfac = 0.281632*pow(void_g, 1.28); else bfac = pow(void_g, 9.076960); vfac = 0.5*(afac-0.06*reyp+sqrt(0.0036*reyp*reyp+0.12*reyp*(2.*bfac-afac)+ afac*afac)); fdrgs = void_g*(pow((0.63*sqrt(reyp)/ vfac+4.8*sqrt(vfac)/vfac),2))/24.0; k_g_s = (1.-void_g)*rho_s*fdrgs/taup; return k_g_s; } |
i have used this udf for gas solid fluidized bed and gives accurate results now i want to change from gas to liquid(water), tell me what are the changes required to do in code for this, waiting for ur reply
udf for customizing syamlal drag law in Fluent #include "udf.h" #define pi 4.*atan(1.) #define diam2 3.e-4 DEFINE_EXCHANGE_PROPERTY(custom_drag, cell, mix_thread, s_col, f_col) { Thread *thread_g, *thread_s; real x_vel_g, x_vel_s, y_vel_g, y_vel_s, abs_v, slip_x, slip_y, rho_g, rho_s, mu_g, reyp, afac, bfac, void_g, vfac, fdrgs, taup, k_g_s; /* find the threads for the gas (primary) */ /* and solids (secondary phases) */ thread_g = THREAD_SUB_THREAD(mix_thread, s_col);/* gas phase */ thread_s = THREAD_SUB_THREAD(mix_thread, f_col);/* solid phase*/ /* find phase velocities and properties*/ x_vel_g = C_U(cell, thread_g); y_vel_g = C_V(cell, thread_g); x_vel_s = C_U(cell, thread_s); y_vel_s = C_V(cell, thread_s); slip_x = x_vel_g - x_vel_s; slip_y = y_vel_g - y_vel_s; rho_g = C_R(cell, thread_g); rho_s = C_R(cell, thread_s); mu_g = C_MU_L(cell, thread_g); /*compute slip*/ abs_v = sqrt(slip_x*slip_x + slip_y*slip_y); /*compute Reynold's number*/ reyp = rho_g*abs_v*diam2/mu_g; /* compute particle relaxation time */ taup = rho_s*diam2*diam2/18./mu_g; void_g = C_VOF(cell, thread_g);/* gas vol frac*/ /*compute drag and return drag coeff, k_g_s*/ afac = pow(void_g,4.14); if(void_g<=0.85) bfac = 0.281632*pow(void_g, 1.28); else bfac = pow(void_g, 9.076960); vfac = 0.5*(afac-0.06*reyp+sqrt(0.0036*reyp*reyp+0.12*reyp*(2.*bfac-afac)+ afac*afac)); fdrgs = void_g*(pow((0.63*sqrt(reyp)/ vfac+4.8*sqrt(vfac)/vfac),2))/24.0; k_g_s = (1.-void_g)*rho_s*fdrgs/taup; return k_g_s; } |
@ Temour buddy sorry but I do not have any experience with gas-liquid fluidized beds!
|
Quote:
#include "udf.h" #include "dpm.h" #define ZERO 0.0000001 DEFINE_DPM_DRAG(dpm_gidaspow_drag,Re,p) { Thread *thread_g, *thread_s, *mix_thread; real x_vel_g, x_vel_s, y_vel_g, y_vel_s, abs_v, slip_x, slip_y, rho_g, rho_s, mu_g, dp, reyp, reyp1,void_g, void_s, cd, D; cell_t cell; real left_term; real dragcoefficient; /*find the cell index and thread of the cell that the particle is currently in*/ cell=P_CELL_THREAD(p); mix_thread=THREAD_SUB_THREAD(P_CELL_THREAD(p),0); /* find the threads for the gas (primary) */ thread_g = THREAD_SUB_THREAD(mix_thread,0);/* gas phase thread */ thread_s = THREAD_SUB_THREAD(mix_thread,1);/* solid phase thread */ /* find phase velocities and properties*/ x_vel_g = C_U(cell, thread_g); y_vel_g = C_V(cell, thread_g); x_vel_s=P_VEL(p)[0]; y_vel_s=P_VEL(p)[1]; slip_x = x_vel_g - x_vel_s; slip_y = y_vel_g - y_vel_s; rho_g = C_R(cell, thread_g); /*density*/ rho_s =P_RHO(p); mu_g = C_MU_L(cell, thread_g); /*laminar viscosity*/ dp =P_DIAM(p); /*compute slip*/ abs_v = sqrt(slip_x*slip_x + slip_y*slip_y); /*absolute value of slip velocity*/ void_g = C_VOF(cell, thread_g);/* gas vol frac*/ Message ("Voidage of gas phase %f \n", void_g); void_s = 1-void_g;/*particle vol frac*/ /*compute reynolds number*/ reyp =rho_g*abs_v*dp/mu_g; /*no volume fraction???*/ reyp1 = void_g*reyp; if(reyp1<1000) cd=24/reyp1*(1+0.15*pow(reyp1,0.687)); else cd = 0.44; if (void_g <=0.8) { /* Ergun Drag Model */ D = 150.0*void_s*void_s*mu_g/void_g/dp/dp+1.75*void_s*rho_g*abs_v/dp; } else { /* Wen & Yu Model */ D = 0.75*cd*void_g*void_s*rho_g*abs_v/dp/pow(void_g,2.65); } left_term=rho_s*pow(dp,2)/mu_g; dragcoefficient=left_term*D/(abs_v+ZERO); return dragcoefficient; } |
Hi All,
I am trying to model 2D fluidized bed with laminar flow conditions and validate it with a paper. Following is the Gidaspow model that I wrote in UDF. Looking at the discussion in this thread, I feel that the code that I have written is correct but I am not able to get good convergence for continuity. I would appreciate if someone can guide me on this. DEFINE_EXCHANGE_PROPERTY (custom_drag, cell, mix_thread,s_col,f_col) { Thread *thread_g, *thread_s; real x_vel_g, x_vel_s, y_vel_g, y_vel_s, abs_v, slip_x, slip_y, rho_g, mu_g, reyp, void_g, k_g_s, cd; /*find the threads for the gas (primary) */ /*and solid (secondary phases) */ thread_g =THREAD_SUB_THREAD (mix_thread, s_col); /*gas phase */ thread_s=THREAD_SUB_THREAD (mix_thread, f_col);/*solid phase*/ /*find phase velocities*/ x_vel_g = C_U(cell, thread_g); y_vel_g = C_V(cell, thread_g); x_vel_s = C_U(cell, thread_s); y_vel_s = C_V(cell, thread_s); slip_x = x_vel_g-x_vel_s; slip_y = y_vel_g-y_vel_s; rho_g = C_R (cell, thread_g); mu_g = C_MU_L (cell, thread_g); void_g = C_VOF (cell, thread_g); /*gas vol fraction*/ /*compute slip*/ abs_v=sqrt(slip_x*slip_x+slip_y*slip_y); /*compute Reynolds number*/ reyp=rho_g*abs_v*diam2/mu_g; /*compute drag coefficient*/ if (reyp <= 1000) cd = (24/(void_g*reyp)*(1+0.15*pow((void_g*reyp), 0.687))); else cd = 0.44; if (void_g <= 0.8) k_g_s = ((150*(1-void_g)*(1-void_g)*mu_g)/(void_g*diam2*diam2))+((1.75*rho_g*abs_v)/(diam2)); else k_g_s = (3/4)*cd*((void_g*(1-void_g)*rho_g*abs_v*pow(void_g,-2.65))/diam2); return k_g_s; } |
if UDF works without problems, your convergence issue is related to other factors (most likely):
1. discretization scheme 2. time step resolution 3. mesh resolution 4. boundary conditions |
asking some questions
Quote:
I'm trying to write the UDF of gidaspow drag model then I want to write my own drag model UDF buy I don't know how to do it would you please help me? |
All times are GMT -4. The time now is 17:08. |