|
[Sponsors] |
Mass flow rate defined by velocity function and inlet area |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 16, 2015, 10:26 |
Mass flow rate defined by velocity function and inlet area
|
#1 |
New Member
Join Date: Jun 2015
Posts: 6
Rep Power: 11 |
Hi,
Apologies if this questions has been asked, I can't find the solution I'm looking for. I'm new to using Fluent. I am trying to figure out how to get a UDF working where a defined velocity and density is given and then mass flow rate is calculated dependent on the inlet surface area. As an example, the velocity profile is given here https://confluence.cornell.edu/pages...geId=268895958 If I change the variable, totalarea to a value that I have calculated manually, the resultant measured velocity is as expected. It appears that the problem is in the totalarea += NV_MAG(area), it does not output the correct inlet surface area. Not sure what I'm missing. Any help would be greatly appreciated. #include "udf.h" #define PI 3.141592654 #define bloodrho 1060 real area[ND_ND]; real totalarea=0.0; DEFINE_PROFILE(inlet_massflowrate,th,i) { { face_t f; double t = (CURRENT_TIME*2-floor(CURRENT_TIME*2))/2; begin_f_loop(f,th) { F_AREA(area,f,th); totalarea += NV_MAG(area); printf("Area= %d\n",totalarea); if(t <= 0.218) F_PROFILE(f,th,i) = bloodrho*(0.5*sin(4*PI*(t+0.0160236)))*totalarea; else F_PROFILE(f,th,i) = bloodrho*0.1*totalarea; } end_f_loop(f,th); } } Thanks! |
|
July 16, 2015, 12:17 |
|
#2 |
Senior Member
Andrew Kokemoor
Join Date: Aug 2013
Posts: 122
Rep Power: 14 |
You'll need to have two loops to do this: one to calculate the total area, then a second to set the profile. Doing it in one loop means that the profile is being set the with the area computed so far, not the actual total area.
I think you'll also want to reinitialize totalarea=0 inside the DEFINE_PROFILE macro, before the loop. Otherwise, your totalarea will continue to grow every iteration. |
|
July 16, 2015, 21:58 |
|
#3 | |
New Member
Join Date: Jun 2015
Posts: 6
Rep Power: 11 |
Quote:
The output of the printf is a list? Not sure if it's meant to be a list but if I summed the listed values, 6.642245e-03 4.322405e-03 2.799194e-03 0.000000e+00 1.558870e-02 5.616377e-03 9.217984e-03 4.651606e-03 It's about 0.049 or is this a coincidence? How do I sum these values in the UDF? Code:
#include "udf.h" #define PI 3.141592654 #define bloodrho 1060 DEFINE_PROFILE(inlet_massflowrate,th,i) { real totalarea=0.0; real area[ND_ND]; face_t f; begin_f_loop(f,th) { F_AREA(area,f,th); totalarea+=NV_MAG(area); } end_f_loop(f,th) printf("%e\n",totalarea); begin_f_loop(f,th) { double t = (CURRENT_TIME*2-floor(CURRENT_TIME*2))/2; if(t <= 0.218) F_PROFILE(f,th,i) = bloodrho*0.5*sin(4*PI*t+0.0160236)))*0.049;0160236)))*totalarea; else F_PROFILE(f,th,i) = bloodrho*0.1*totalarea; } end_f_loop(f,th); } |
||
July 17, 2015, 05:43 |
|
#4 |
Senior Member
Join Date: Nov 2013
Posts: 1,965
Rep Power: 26 |
You get eight numbers... Are you doing a parallel calculation with 8 processes? If so, you will have to add some code to let the processes talk to each other, since they should communicate what the total area is. I don't know from my head how, but the manual helps here.
But in any case, I would start to get it working in serial mode, and only when that works go towards parallel. |
|
July 17, 2015, 11:08 |
|
#5 |
Senior Member
Andrew Kokemoor
Join Date: Aug 2013
Posts: 122
Rep Power: 14 |
pakk is exactly right. Make sure it works in serial first, then look up global reduction macros, Section 7.5.4 in the UDF Manual.
|
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Other] mesh airfoil NACA0012 | anand_30 | OpenFOAM Meshing & Mesh Conversion | 13 | March 7, 2022 17:22 |
Issues on the simulation of high-speed compressible flow within turbomachinery | dowlee | OpenFOAM Running, Solving & CFD | 11 | August 6, 2021 06:40 |
Pressure Outlet Targeted Mass Flow Rate | LuckyTran | FLUENT | 1 | November 23, 2016 10:40 |
[blockMesh] non-orthogonal faces and incorrect orientation? | nennbs | OpenFOAM Meshing & Mesh Conversion | 7 | April 17, 2013 05:42 |
Water subcooled boiling | Attesz | CFX | 7 | January 5, 2013 03:32 |