How to get the surface area between two phases in VOF model
Do anyone know if there has a macro to get the surface area between two phases in VOF model. I used GeoReconstrust Discretization for VOF.
I found C_VOF_S(c,t) and Get_Surface_Distance(cell_t c, Thread *t) in "sg_vof.h". I wanted to use them to found what did they return. But always fluent return errors: Error: FLUENT received fatal signal (ACCESS_VIOLATION) 1. Note exact events leading to error. 2. Save case/data under new name. 3. Exit program and restart to continue. 4. Report error to your distributor. I tried mixture thread and one phase thread for t in C_VOF_S(c,t) and Get_Surface_Distance(cell_t c, Thread *t),but the errors still exist. 
Hi, Cloud,
Have you solve you problem? I need to calculate the interface area in VOF model, and I'm wondering how to implement this. If you've solve this problem, plz help. Thank you ! 
any luck?
Hi,
I just posted a similar question and I am wondering if you guys have found out how to obtain the area of the interface using an UDF? Bradley 
Interfacial area could be calculated by the following:
Magnitude of Gradient(Alpha) * Volume Hope it helps. 
Quote:
Does the fluent help has this equation? 
Quote:
Hi, I also confused with such a difficult question when i want to simulate the gasliquid flow in a falling film reactor. how to get the the interface area in a cell using UDF micros? there were an equation in "help" to calculate the area density, area =2.0*[alpha]*the gradient of [alpha]. But this equation may be a wrong one. Besides of this, how to get the gradient of [alpha]? when you use the macro C_VOF_G, there will be notes: access violate. Are you from China? Maybe we can discuss this problem in Chinese.my email:classic1573@163.com:) 
Hi vig,
I wonder if the equation is also applied to the wickvapor interface? Regards, Bill 
Finding interface area
Dear All
Hello Finding the premier of the interface (in 2D cases) or surface of interface (in 3D simulations) is my concern also. I didn't found how I can use Ansys for calculating these parameters. using the equation Area = Magnitude of Gradient(Alpha) * Volume is not straightforward because in addition to non constant valued of Gradient(Alpha) in all domain, finding its amount has been not predicted in Fluent. So now my question is how I can find the solution for this matter. Thanks 
UDF for surface between 2 phases
Here are 2 different ways of obtaining the area_density between 2 phases :
2.0 * magnitude(gradient(alpha)) * alpha magnitude(gradient(alpha)) * Cell_Volume I don't know which one is appropriate, but those 2 were mentioned across Fluent's help guide and within the previous posts : /* ###################################### Steps to take to make it work 1. Read in the converged case and data 2. Link the udf (Define>User Defined>Functions>Compiled) 3. Hook adjust funtion (Define>User Defined>Function Hooks>Adjust Function) 4. Define UDM (Define>User Defined>Memory 3) 5. Define UDS (Define>User Defined>Scalars 2) 6. Turn off all equations (Solve>Controls>Solution) 7. Do one iterations 8. Execute store_gradient (Define>User Defined>Execute On Demand) 9. Execute store_area_density_1 (Define>User Defined>Execute On Demand) 10.Execute store_area_density_2 (Define>User Defined>Execute On Demand) ######################################*/ # include "udf.h" # define domain_ID 2 DEFINE_ADJUST(adjust_gradient, domain) { Thread *t; cell_t c; face_t f; domain = Get_Domain(domain_ID); /* Fill UDS with the variable. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { /* Obtains VOF at cell center and saves it as scalar */ C_UDSI(c,t,0) = C_VOF(c,t); /* Obtains Cell Volume and saves it as scalar */ C_UDSI(c,t,1) = C_VOLUME(c,t); } end_c_loop (c,t) } thread_loop_f (t,domain) { if (THREAD_STORAGE(t,SV_UDS_I(0))!=NULL) begin_f_loop (f,t) { F_UDSI(f,t,0) = F_VOF(f,t); } end_f_loop (f,t) } } DEFINE_ON_DEMAND(store_gradient) { Domain *domain; cell_t c; Thread *t; domain=Get_Domain(1); /* Fill the UDM with magnitude of gradient. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDMI(c,t,0) = NV_MAG(C_UDSI_G(c,t,0)); } end_c_loop (c,t) } } DEFINE_ON_DEMAND(store_area_density_1) { Domain *domain; cell_t c; Thread *t; domain=Get_Domain(1); /* Fill the UDM with are_adensity. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDMI(c,t,1) = 2.0 * NV_MAG(C_UDSI_G(c,t,0)) * C_UDSI(c,t,0) ; } end_c_loop (c,t) } } DEFINE_ON_DEMAND(store_area_density_2) { Domain *domain; cell_t c; Thread *t; domain=Get_Domain(1); /* Fill the UDM with are_adensity. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDMI(c,t,2) = NV_MAG(C_UDSI_G(c,t,0)) * C_UDSI(c,t,1) ; } end_c_loop (c,t) } }  JS 
Quote:

vof gradient
I am using this code, it works and you don't need UDS.
Code:
#include "udf.h" 
All times are GMT 4. The time now is 14:44. 