# FLUENT 6 - How to Implement Brownian Motion With variable Cunningham Correction Factor

 When the default Brownian motion of FLUENT is used in DPM it assumes a constant Cunningham correction factor. But because of the pressure drop across the orifices, the Cunningham might not be a constant in all applications. A DEFINE_DPM_BODY_FORCE udf is used to implement this. The results are somewhat dependent on the Step Length Factor, as is the FLUENT default model. Careful selection of the Step Length Factor will minimize dependence on this model parameter. #include "udf.h" #include "dpm.h" #include "surf.h" #include "random.h" #define gasconst 1.38e-23 #define Dm 3.7e-10 #define S 110.4 #define sigma 5.669e-8 /*stefan-Boltzmann const*/ #define pi 3.1415926 DEFINE_DPM_BODY_FORCE(particle_body_force, p, i) { real bforce; cell_t c = RP_CELL(&p->cCell); Thread *t = RP_THREAD(&p->cCell); real pressure=C_P(c,t); real temp=C_T(c,t); real mu=C_MU_L(c,t); real rho=C_R(c,t); real nu=mu/rho; real Dp=P_DIAM(p); real rhop=P_RHO(p); real pdt=P_DT(p); real conc,mfp,Cc; real x1,x2,w,y1,y2; real ss; conc=pressure/gasconst/temp; /*This is a Model for Calculating Mean Free Path with slip correction*/ mfp=3155.53*temp/pressure/(1.0+S/temp); /*You can have other models to take care of this*/ Cc=1.0+2.0*mfp/Dp*(1.257+0.4*exp(-1.1*Dp/2.0/mfp)); y1=cheap_gauss_random(); y2=cheap_gauss_random(); if(P_TIME(p)==0.0) bforce=0.0; else { ss=216.0*nu*gasconst*temp/pow(pi,2.0)/rho/pow(Dp,5.0)/pow((rhop/rho),2.0)/Cc; if(i==0) bforce=y1*sqrt(pi*ss/pdt); else if(i==1) bforce=y2*sqrt(pi*ss/pdt); } /* an acceleration should be returned */ return (bforce); }

 No comments yet. Be the first to add a comment!