# Get phase diameter udf fluent

Hi everyone! I'm trying to simulate the encapsulation of pancreatic islets in a very simple chamber. It is made of one cylinder with diameter of 10mm, a coaxial capillary of diameter 1mm. In the cylinder there is a oilic phase and in the capillary flow polymeric material and islets. when islet plus polymer exit from capillary,they meet oil in a convergent situated at the base of the cylinder. This convergent is connected to another capillary, where flow encapsulated islets.
In the small capillary flow polymeric material and islet(respectively 87% and 13% of volume fraction), in the large capillary flows oil(100%). At the outlet of the small capillary, the islet should come encapsulate, thanks to the action of the instability of Rayleigh-Plateau and also to the action of the oil on the polymeric material. In other words these islets are inside a coating of polymeric material (named conformal). These two flows (oil and polymeric material plus islets) are coaxial flows.
I am trying to write a udf that permits me to calculate the coating thickness.
My idea is to create planes in the convergent and evaluate on them the coating thickness by a volume fraction study. In other words, on this plane my udf must calculate the volume fraction of islets and water, must remove the cells that contains a vof<0.0505, and least must evaluate the diameter of these two phases.
I think it's possible to do, but i have several problems.
First of all, I don't know if it's possible declare two or more phases when I use, for example, C_VOF(c,t). "t" is my thread: is it possible to declare two phase, using for example pt[1,2]?
Another problem is the function C_PHASE_DIAMETER(c,t). In various forums I found it use in this way "C_PHASE_DIAMETER(f,t). But, why put "f" and no "c"?

My udf is this:

/*C_PHASE_DIAMETER*/

#include "udf.h"
#include "stdio.h"
#include "stdlib.h"

DEFINE_EXECUTE_AT_END(diameter)
{
Domain *d=Get_Domain(1);
cell_t c;
float diam_islet;
float diam_water_islet;
float coating;
float vof_islet;
int ID={3,10,13};
int i;
diam_islet=0.;

i=0;

{
begin_c_loop(c,t)
{

for(i=0;i<=2;i++)
{
vof_islet = C_VOF(c,pt);
vof_water = C_VOF(c,pt);
printf("%f\n", vof_islet);

if (vof_islet>0.0505 && vof_islet<=1)
{

diam_islet=C_PHASE_DIAMETER(c,pt);
printf ("islets diameter: %f\n",diam_islet);
}
}
if (0.0505<=vof_water<=1)
{

diam_water=C_PHASE_DIAMETER(c,pt);
printf("water diameter: %f\n", diam_water);
}

printf("coating thickness is: %f\n", coating);

}
end_c_loop(c,t)
}
}}

I have an alternative idea: I can create a udf that gives back coordinates of cells in this way: I want to get x max and x min, y max and y min and z max and z min of the islets and of the coating based on the volume fraction (based on passage between different phases). In other words, I want to obtain coordinates max and min about the interface of my phases. Is it possible?
Another question is the following: I'm using an Euler Euler model, but the volume fraction of the islets is approximatively 13%. Is this method suitable for my problem, or DPM is more appropriate?
Thanks a lot!
Michela

• 