|
[Sponsors] |
UDS of concentration solved in multiphases system |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
January 19, 2017, 12:38 |
UDS of concentration solved in multiphases system
|
#1 |
Member
Tleja
Join Date: Sep 2013
Posts: 40
Rep Power: 13 |
Hi Everyone!
I have done using UDS for multiphases system. I'm confused about Fluent solving. i 'm studying gas-solid reaction in fluidized bed. I defined User-defined scalar as molar concentration (kmol/m3) in solid phase (secondary phase). I follow equation 8–5 as shown in this link https://www.sharcnet.ca/Software/Ans..._uds_mp_theory I neglected the diffusion term because of low impact to scalar. Source term of UDS is a function of solid fraction. It means that where solid fraction appears high is where high value of source term is. I could compile and calculate this code well, but i found weird result which UDS solved appears high at where low solid fraction is. I also checked source term of the UDS. I found that source term appear high at where solid fraction is. It is reasonable source term. Basically, if i do right, UDS should increase with source term. Could anyone help me to fix this problem? I have faced this weird result for long time. I already made consistency unit for all term (unsteady, convection and source term) in the unit of kg/m3s kmol/m3 =kg/m3s(scalar unit) as shown in coding below: Code:
#include "udf.h" DEFINE_SOURCE(UDS_con,c,t,dS,eqn) { Thread *tm=THREAD_SUPER_THREAD(t);/*obtain mixture thread */ Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */ Thread *tp = pt[0]; /* Thread for primary phase */ Thread *ts = pt[1]; /* Thread for secondary phase*/ real K,source; K=702000*exp(-40230/(8.314*C_T(c,ts))); /* unit 1/s*/ source=C_R(c,ts)*C_VOF(c,ts)*K*C_UDSI(c,ts,0); /*kg/m3s kmol/m3 =kg/m3s(scalar unit)*/ dS[eqn]=C_R(c,ts)*C_VOF(c,ts)*K; return source; } DEFINE_UDS_UNSTEADY(unsteady,c,t,i,apu,su) { Thread *tm = THREAD_SUPER_THREAD(t); /*obtain mixture thread */ Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */ Thread *tp = pt[0]; /* Thread for primary phase */ Thread *ts = pt[1]; /* secondary phase thread */ real physical_dt, vol, rho_m1, rho, vofs_m1, vofs, phi_old; physical_dt = RP_Get_Real("physical-time-step"); vol = C_VOLUME(c,t); rho_m1 = C_R_M1(c,ts); rho = C_R(c,ts); vofs_m1 = C_VOF_M1(c,ts); vofs = C_VOF(c,ts); *apu = -rho*vol*vofs/physical_dt;/*implicit part*/ phi_old = C_STORAGE_R(c,ts,SV_UDSI_M1(0)); *su = rho_m1*vol*vofs_m1*phi_old/physical_dt;/*explicit part*/ } DEFINE_UDS_FLUX(my_uds_flux,f,t,i) { Thread *tm = THREAD_SUPER_THREAD(t); /*obtain mixture thread */ Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */ Thread *tp = pt[0]; /* Thread for primary phase */ Thread *ts = pt[1]; /* secondary phase thread */ cell_t c0, c1 = -1; Thread *t0, *t1 = NULL; real NV_VEC(psi_vec), NV_VEC(A), flux = 0.0; c0 = F_C0(f,ts); t0 = F_C0_THREAD(f,ts); F_AREA(A, f, t); /* If face lies at domain boundary, use face values; */ /* If face lies IN the domain, use average of adjacent cells. */ if (BOUNDARY_FACE_THREAD_P(t)) /*Most face values will be available*/ { real dens,vofs; /* Depending on its BC, density and viscosity may not be set on face thread*/ if (NNULLP(THREAD_STORAGE(t,SV_DENSITY))) dens = F_R(f,ts); /* Set dens to face value if available */ else dens = C_R(c0,t0); /* else, set dens to cell value */ if (NNULLP(THREAD_STORAGE(t,SV_VOF))) vofs = F_VOF(f,ts); /* Set vofs to face value if available */ else vofs = C_VOF(c0,t0); /* else, set vofs to cell value */ NV_DS(psi_vec, =, F_U(f,ts), F_V(f,ts), F_W(f,ts), *,dens*vofs); flux = NV_DOT(psi_vec, A); /* flux through Face */ } else { c1 = F_C1(f,ts); /* Get cell on other side of face */ t1 = F_C1_THREAD(f,ts); NV_DS(psi_vec, =, C_U(c0,t0),C_V(c0,t0),C_W(c0,t0),*,C_R(c0,t0)*C_VOF(c0,t0)); NV_DS(psi_vec, +=, C_U(c1,t1),C_V(c1,t1),C_W(c1,t1),*,C_R(c1,t1)*C_VOF(c1,t1)); flux = NV_DOT(psi_vec, A)/4.0; /* Average flux through face */ } /* ANSYS Fluent will multiply the returned value by phi_f (the scalar’s value at the face) to get the ‘‘complete’’ advective term. */ return flux; } Kindly Regard Tleja |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Set UDS on wall... | fivos | Fluent UDF and Scheme Programming | 2 | July 25, 2014 06:57 |
Doubts UDS Flux, UDS Unsteady for VOF model | kel85uk | FLUENT | 0 | March 17, 2010 09:53 |
set UDS value at interior BC | Simon | FLUENT | 0 | December 12, 2008 14:14 |
Adventure of fisrst openfoam installation on Ubuntu 710 | jussi | OpenFOAM Installation | 0 | April 24, 2008 15:25 |
ODD: no UDS flux across interior boundary | Bob | FLUENT | 1 | February 25, 2002 20:15 |