|
[Sponsors] |
February 28, 2022, 14:35 |
UDF phase-change at surface
|
#1 |
New Member
Join Date: Jan 2022
Posts: 1
Rep Power: 0 |
Hi,
I want to implement a a reaction happening at a Wall (surface) where the gas phase (primary phase) changes to a liquid phase (secondary phase). It should be noted that these phases are completely different substances undergoing a "reaction" at the surface. Reading up on the topic it seems like i must implement a UDF on the surface, much like discussed from this previous post: How to use a UDF to set the volume fraction in the cells next to a wall? Containing the UDF: [CODE #include "udf.h" DEFINE_ADJUST(remove_air,domain) { /* Cut-off volume fraction */ real VOF_limit=0.3; /* Volume fraction limit (of air) */ /* Create the thread pointers for the wall */ Thread *t; /* Mixture level thread */ Thread *t_air; /* Phase level thread */ Thread *t_water; /* Phase level thread */ face_t f; /* Face thread */ cell_t c; /* Cell thread */ domain = Get_Domain(1); /* Get the domain */ /* Set thread id's of wall (from Fluent) and phase domain indices */ int surface_thread_id=12; /* Wall thread id */ host_to_node_int_1(surface_thread_id); /* Pass thread id to nodes */ int phase_domain_index_air = 0; /* Air phase index */ int phase_domain_index_water = 1; /* Water phase index */ host_to_node_int_2(phase_domain_index_air, phase_domain_index_water); /* Pass domain index to nodes */ /* Calculate viscous resistance */ real R_V=0.0; real volume_fraction_air; real volume_fraction_water; /* Node calculations */ #if !RP_HOST /* Find mixture level thread and phase level threads */ t = Lookup_Thread(domain,surface_thread_id); t_air = THREAD_SUB_THREAD(t, phase_domain_index_air); t_water = THREAD_SUB_THREAD(t, phase_domain_index_water); /* Loop through faces on wall */ begin_f_loop(f,t) { if (PRINCIPAL_FACE_P(f,t)) { /* Get thread for adjacent cell */ c = F_C0(f,t); volume_fraction_air=C_VOF(c,t_air); volume_fraction_water=C_VOF(c,t_water); /* Message("Volume fraction air %f\n", volume_fraction_air); */ if (volume_fraction_air >= 0.38 && volume_fraction_air <= 0.39) { Message("Volume fraction air: %f\n", volume_fraction_air); Message("Volume fraction water: %f\n", volume_fraction_water); } R_V -= F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR)[0]; } } end_f_loop(f,t) /* Sum values from nodes */ R_V = PRF_GRSUM1(R_V); #endif node_to_host_real_3(R_V, volume_fraction_air, volume_fraction_water); /* Print variables to validate UDF */ #if !RP_NODE Message("Viscous force: %f [N]\n", -R_V); Message("Volume fraction air: %f\n", volume_fraction_air); Message("Volume fraction water: %f\n", volume_fraction_water); #endif }][/CODE] However, it seems like it wasn't solved completely. Is there anybody who can help we with this? |
|
Tags |
multiphase boundary wall, pdf, surface reaction udf |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Multiphase solvers and non-isothermal phase change | erlend_grotle | OpenFOAM | 1 | September 25, 2021 10:48 |
UDF for phase change | N400 | Fluent UDF and Scheme Programming | 17 | March 13, 2019 06:25 |
[Gmsh] Error : Self intersecting surface mesh, computing intersections & Error : Impossible | velan | OpenFOAM Meshing & Mesh Conversion | 3 | October 22, 2015 12:05 |
[Gmsh] Problem with Gmsh | nishant_hull | OpenFOAM Meshing & Mesh Conversion | 23 | August 5, 2015 03:09 |
udf for phase change | ranjit.prakash | FLUENT | 0 | February 26, 2007 11:10 |