|
[Sponsors] |
April 16, 2015, 10:14 |
phase_diameter
|
#1 |
New Member
michela cagna
Join Date: Sep 2014
Posts: 2
Rep Power: 0 |
Hi everyone! I'm trying to simulate the encapsulation of pancreatic islets in a very simple chamber. In the attachments we find a picture that describe it.
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, as is shown in the second attachment (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: [I]/*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); 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) } }} 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 Last edited by michimichi88; April 16, 2015 at 10:32. Reason: attachment forgotten |
|
Tags |
eulerian multiphase model, multiphase flows, udf |
Thread Tools | Search this Thread |
Display Modes | |
|
|