CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (http://www.cfd-online.com/Forums/fluent-udf/)
-   -   Effects of droplets to each other in an electrostatic field (http://www.cfd-online.com/Forums/fluent-udf/88507-effects-droplets-each-other-electrostatic-field.html)

alighaffari May 19, 2011 02:39

Effects of droplets to each other in an electrostatic field
 
Hi every body
I want to calculate the electrostatic forces between a large numbers of water droplets dispersed in oil continuum under the electrostatic field. I have used lagrangian frame work in DPM model in fluent 6.3.26. and for electrostatic body forces acting on droplets I have written a UDF code according to Dipole-Dipole interaction model. My UDF searches all particles in the all cells all over the domain to calculate electrostatic forces. But this is very time consuming and for large number of droplets it is not so efficient. Some have suggested using parcel concept in this case but I donít know how I can use parcels concept in my UDF to reduce run time. If anybody has suggestion in this case or any suggestion that help me I will be very thankful.
This is my UDF code:
/* UDF for computing the electric force on particles in all cells of a domain */

#include "udf.h"
#include "mem.h"
#include "dpm.h"
#include "surf.h"
#include "stdio.h"
#define epsoil 2.2 /* epsilon for oil */
#define E0 25 /* electric background field,v/m */
#define beta 0.9934
#define M_PI 3.14159265358979323846



DEFINE_DPM_BODY_FORCE(particle_body_force,p,i)
{
double bforce,Fr,Ft,d2,d1,s,tet,k1,k2,m;

/* get the cell and Thread that the particle is currently in */
cell_t c;
Thread *t;
Domain *d;
/* Particle index for looping over all particles in the cell */
Particle *pi;
/* loop over all particles in all cells of domain to find their position and diameter */
int ii;
double p1[2],p2[2];
Fr=0;
Ft=0;
bforce=0;

d = Get_Domain(1); /* mixture domain if multiphase */
for(ii=0;ii<2;ii++)
{p1[ii]= p->state.pos[ii];
}
d1 = P_DIAM(p);
m=P_MASS(p);

thread_loop_c(t,d) /*loops over all cell threads in domain*/
{

begin_c_loop(c,t) /* loops over cells in a cell thread */
{



begin_particle_cell_loop(pi,c,t)
{


for(ii=0;ii<2;ii++)
{
p2[ii]=pi->state.pos[ii];
}
d2=pi->state.diam;
s=sqrt(pow(p1[0]-p2[0],2)+pow(p1[1]-p2[1],2));
if (s > (d1/2+d2/2))
{
tet=atan((p2[1]-p1[1])/(p2[0]-p1[0]));
Fr=12*M_PI*pow(beta,2)*epsoil*pow(E0,2)*pow(d1/2,3)*pow(d2/2,3)*(3*k1*pow(cos(tet),2)-1)/pow(s,4);
Ft=(1)*12*M_PI*pow(beta,2)*epsoil*pow(E0,2)*pow(d1/2,3)*pow(d2/2,3)*k2*sin(2*tet)/pow(s,4);
if(i==0) bforce+=((1)*Fr*cos(tet)+(1)*Ft*cos(M_PI/2+tet));
else if(i==1) bforce+=((-1)*Fr*sin(tet)+(-1)*Ft*sin(M_PI/2+tet));


}

}
end_particle_cell_loop(pi,c,t)


}
end_c_loop(c,t)



}/*end of thread_loop_c(t,d)*/



return (bforce/m);

}



mojtaba1365 May 19, 2011 02:56

Hey guy.
Your question is very attractive..
Did you manage to get any solution to this problem? I am also stuck there.

sfotovati June 18, 2012 19:32

I wanted to consider the intraction of partciles to each other. I wrote a UDF.

Apparently it is impossible to ccombine begin_particle_loop macro and define_body_force. How would you be able to run this udf?

mojtaba1365 July 10, 2012 23:56

droplets
 
Hi guys, how is every things?
This is a very important issue and i wanna join you guys. Dr.ghaffari please have more explanation about the issue and let us to join. any details may be important.

Have a good time. :)


All times are GMT -4. The time now is 15:53.