# Mass flux as a function of pressure

 Register Blogs Members List Search Today's Posts Mark Forums Read

 April 11, 2014, 18:58 Mass flux as a function of pressure #1 New Member   Join Date: Apr 2014 Posts: 3 Rep Power: 4 Hi everyone! This is my first time posting on here but I'm no newbie to the CFDO forums. I've been using Fluent for around 2-3 years mainly for school , and am interested (by curiosity) in learning UDFs. The problem I'm trying to solve is the following: I modeled a classic 2D Laval nozzle, with a straight chamber upstream of the nozzle. In this chamber lies the mass inlet, with a given mass flux rate and initial gauge pressure. In real life, the mass flux of a solid rocket motor will depend on the burn rate of the propellant, who in turn is dependent (primarily) on this chamber pressure. So I'm trying to find a way to have Fluent do two things: - Compute after each converged transient timestep the average absolute pressure in that chamber - Modify the mass flux rate so that MF = a*(PRESSURE^b) Is this possible? If so, how should I do this, through a programmed C UDF or by defining user parameters (or something else)? I'm not really looking for someone to dump a code that I just load into Fluent (though if it is a simple code it won't take me long to decipher it), I'm more interested in learning UDFs for future use. Thanks in advance! Robin

 April 12, 2014, 15:38 #2 New Member   Join Date: Apr 2014 Posts: 3 Rep Power: 4 Okay so I wrote the following UDF to compute the average total pressure, it is compiling and giving a result, can someone please double check that it gives the correct result? Thanks! PS: My mass flux as a function of pressure is for a pressure in psi, Fluent outputting pascals Code: ```#include "udf.h" #define p_op 14.7 /*psi*/ real press; real avg_press; DEFINE_EXECUTE_AT_END(tot_press_comp) { int n=1; Domain *d; cell_t c; Thread *t; face_t f; d = Get_Domain(1); t = Lookup_Thread(d,7); press = 0; avg_press = 0; begin_c_loop(c,t) { press = press+(C_P(c,t)*0.000145037738); n=n+1; } end_c_loop(c,t) avg_press=(press/n)+p_op; printf("average total pressure in psi = %g\n", avg_press); }```

 April 13, 2014, 13:15 #3 New Member   Join Date: Apr 2014 Posts: 3 Rep Power: 4 I seem to have figured it out! I have some problems though, the code below works, but the only way I managed to make the pressure computation work was by inserting the code contained in DEFINE_EXECUTE_AT_END inside the DEFINE_PROFILE code. Apparently this computes the average pressure each iteration and not at the end of each timestep, which I'm afraid might give me convergence issues. From the code below, how can I change to have it: - Compute the average pressure at the end of each time step - Use that average pressure to compute the corresponding flux and modifying the inlet's flux Thanks! Code: ```#include "udf.h" #define p_op 14.7 /*psi*/ real press; real avg_press; real flux; /*-------------------------------------------- CODE TO COMPUTE THE AVERAGE PRESSURE FOR SOME REASON NOT RUN AFTER EACH TIME STEP ---------------------------------------------*/ DEFINE_EXECUTE_AT_END(tot_press_comp) { int n=1; Domain *d; cell_t c; Thread *t; face_t f; d = Get_Domain(1); t = Lookup_Thread(d,7); press = 0; avg_press = 0; flux = 0; begin_c_loop(c,t) { press = press+(C_P(c,t)*0.000145037738); n=n+1; } end_c_loop(c,t) avg_press=(press/n)+p_op; flux = 1.4929*pow(avg_press,0.3483); printf("average total pressure in psi = %g\n", avg_press); } /*------------------------------------ CODE TO CHANGE MASS FLUX -------------------------------------*/ DEFINE_PROFILE(inlet_mf,th,i) { face_t f; /* GET THE CHAMBER PRESSURE */ int n=1; Domain *d; cell_t c; Thread *t; d = Get_Domain(1); t = Lookup_Thread(d,7); press = 0; avg_press = 0; flux = 0; begin_c_loop(c,t) { press = press+(C_P(c,t)*0.000145037738); n=n+1; } end_c_loop(c,t) avg_press=(press/n)+p_op; flux = 1.4929*pow(avg_press,0.3483); /* APPLY THE NEW FLUX */ begin_f_loop(f,th) { F_PROFILE(f,th,i) = flux; } end_f_loop(f,th) printf("Internal chamber pressure = %g\n", avg_press); printf("Adjusted mass flux = %g\n", flux); }```

 Tags mass flux, pressure, udf

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Saturn CFX 45 February 8, 2016 05:42 volo87 CFX 5 June 14, 2013 17:44 Attesz CFX 7 January 5, 2013 04:32 Antonin OpenFOAM 10 April 24, 2012 09:50 skabilan OpenFOAM Installation 3 July 28, 2009 00:35

All times are GMT -4. The time now is 00:37.