- #1

- 1

- 0

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);

Thread **pt;

Thread *t;

cell_t c;

float diam_islet;

float diam_water_islet;

float radius_islet;

float radius_water;

float coating;

float vof_islet;

int ID[3]={3,10,13};

int i;

diam_islet=0.;

radius_islet=0.;

i=0;

mp_thread_loop_c(t,d,pt)

{

begin_c_loop(c,t)

{

for(i=0;i<=2;i++)

{

t=Lookup_Thread(d,ID

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

#include "udf.h"

#include "stdio.h"

#include "stdlib.h"

DEFINE_EXECUTE_AT_END(diameter)

{

Domain *d=Get_Domain(1);

Thread **pt;

Thread *t;

cell_t c;

float diam_islet;

float diam_water_islet;

float radius_islet;

float radius_water;

float coating;

float vof_islet;

int ID[3]={3,10,13};

int i;

diam_islet=0.;

radius_islet=0.;

i=0;

mp_thread_loop_c(t,d,pt)

{

begin_c_loop(c,t)

{

for(i=0;i<=2;i++)

{

t=Lookup_Thread(d,ID

*);**vof_islet = C_VOF(c,pt[2]);**vof_water = C_VOF(c,pt[1]);**printf("%f\n", vof_islet);**if (vof_islet>0.0505 && vof_islet<=1)**{**diam_islet=C_PHASE_DIAMETER(c,pt[2]);**printf ("islets diameter: %f\n",diam_islet);**}**}**if (0.0505<=vof_water<=1)**{**diam_water=C_PHASE_DIAMETER(c,pt[1]);**printf("water diameter: %f\n", diam_water);**}**radius_islet=diam_islet/2;**printf("radius_islet: %f\n", radius_islet);**radius_water=diam_water/2;**printf("radius_water: %f\n", radius_water);**coating=radius_water-radius_islet;**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