|
[Sponsors] |
June 11, 2003, 12:00 |
concentration
|
#1 |
Guest
Posts: n/a
|
Does anyone know how to get the DPM concentraion in each cell of the domain?
|
|
June 11, 2003, 15:28 |
Re: concentration
|
#2 |
Guest
Posts: n/a
|
Hi
There isnot a direct macro that can report the number of particles in each cell ( at least that I am aware of). However, you can write a UDF where you count the number of particles in a cells as follow: There is a macro P_CELL(p) ---cell index of the cell that the particle is currently in--- Then you can count the number of particles in each cell through the whole domain. I hope I could help you Alex Munoz |
|
June 11, 2003, 15:57 |
Re: concentration
|
#3 |
Guest
Posts: n/a
|
Hi Alex,
Thanx for your help. I hope u can help me more for the same. Now u know, we can get DPM concentrarion contours. What does that mean is, Fluent has some variables which store Particle concentration value for each cell. On the otherside, I have looked on to the option of counting no. of particles in each cell. But I didn't find it possible or better to say found very difficult. Can U help me giving some hints regarding? |
|
June 12, 2003, 01:04 |
Re: concentration
|
#4 |
Guest
Posts: n/a
|
Hi
First at all, Fluent user's guide define DPM concentration as the total concentration of discrete phase, and its unit quantity is density. As I understood DPM concentration gives you the mass of discrete phase per control volume. As a results you can get both the P_MASS(p) at the current position and the C_VOLUME(c,t) For instance if you want to get the concentration at the end of a time step or iteration you can write a UDF simmilar to this example in fluent /************************************************** ********* Example UDF that demonstrates DEFINE_DPM_SPRAY_COLLIDE ************************************************** **********/ #include "udf.h" #include "dpm.h" #include "surf.h" DEFINE_DPM_SPRAY_COLLIDE(udf_man_spray_collide, tp, p) { /* non-physical collision UDF that relaxes the particle */ /* velocity and diameter in a cell to the mean over the */ /* specified time scale t_relax */ const real t_relax = 0.001; /* seconds */ /* get the cell and Thread that the particle is currently in */ cell_t c = RP_CELL(&(tp->cCell)); Thread *t = RP_THREAD(&(tp->cCell)); /* Particle index for looping over all particles in the cell */ Particle *pi; /* loop over all particles in the cell to find their mass */ /* weighted mean velocity and diameter */ int i; real u_mean[3]={0.}, mass_mean=0.; real d_orig = tp->state.diam; real decay = 1. - exp(-t_relax); begin_particle_cell_loop(pi,c,t) { mass_mean += pi->state.mass; for(i=0;i<3;i++) u_mean[i] += pi->state.V[i]*pi->state.mass; } end_particle_cell_loop(pi,c,t) /* relax particle velocity to the mean and diameter to the */ /* initial diameter over the relaxation time scale t_relax */ if( mass_mean > 0. ) { for(i=0;i<3;i++) u_mean[i] /= mass_mean; for(i=0;i<3;i++) tp->state.V[i] += decay*( u_mean[i] - tp->state.V[i] ); tp->state.diam += decay*( P_INIT_DIAM(tp) - tp->state.diam ); /* adjust the number in the droplet parcel to conserve mass */ tp->number_in_parcel *= CUB( d_orig/tp->state.diam ); } } ================================================= see in this example how they get the cell index throgh the macro cell_t c = RP_CELL(&(tp->cCell)); Thread *t = RP_THREAD(&(tp->cCell)); and then how they loop over all the particles in the cell to find their mass, you can define a "real conc"to calculate the concentation on that cell as follow begin_particle_cell_loop(pi,c,t) { mass_mean += pi->state.mass; conc=mass_mean/C_volume(c,t) C_UDMI(c,t,UDM_RH)=conc; } end_particle_cell_loop(pi,c,t) do not forget a pointer to the particle Particle *pi; ================================================== = The only doubt that I have is if this DPM macro will allow to print the concentration. I guess you can define a UDM to store the value (donot forget to define a UDM_RH (i.e.#define UDM_RH 0) ================================================== == I cannot help you more, you have to work on your own to implement the UDF Best regards Alex Munoz |
|
June 12, 2003, 16:10 |
Re: concentration
|
#5 |
Guest
Posts: n/a
|
Many thanx for yr help.
Umesh |
|
June 12, 2003, 16:17 |
Re: concentration
|
#6 |
Guest
Posts: n/a
|
Hi
Let me know if it work!! Just I still having some doubt of which DPM macro to use for this purpose. Fluent does not provide an especific DPM macro meither for the concentration nor for UDF estimation. Regards Alex Munoz |
|
June 12, 2003, 21:05 |
Re: concentration
|
#7 |
Guest
Posts: n/a
|
Fluent stores the DPM concetration in the variable:
C_STORAGE_R(c,t,SV_DPMS_CONCENTRATION) |
|
June 16, 2003, 14:07 |
Re: concentration
|
#8 |
Guest
Posts: n/a
|
Do U know what value C_STORAGE_R(c,t,SV_DPMS_CONCENTRATION) returns?
Does it return, kg_of_DPM/c_volume or kg_of_DPM/unit_volume. |
|
June 17, 2003, 14:35 |
Re: concentration
|
#9 |
Guest
Posts: n/a
|
kg / m^3 == kg_of_DPM/c_volume
|
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Concentration waves | QuasiParticle | CFX | 7 | March 13, 2011 06:36 |
dpm concentration | HK | FLUENT | 0 | March 6, 2008 06:44 |
Concentration Scale Data Interpretation | usker | Siemens | 4 | October 23, 2007 21:30 |
negative species concentration again | Andrew Garrard | FLUENT | 0 | March 22, 2005 12:36 |
initial concentration in multicomponent mixtures | isidro | Siemens | 0 | April 26, 2004 08:40 |