Calculation per iteration
Hi,
I would like to calculate some quantities from the pressure value of a surface, per iteration. I could'nt find a way (scheme of udf way) to do it. Could anyone show me a way to do this example per iteration: a = pressure_of_a_surface * 10 b = a / x_coordinate_of_cell .. .. .. Regards |
Hi,
First define these variables for whole domain with custom field function. For data extraction over specific surfaces you have these options: - if you want to calculate something like integrals or min or max and ..., simply use (solve->monitor->surface-> ...) - if you want to have a contour for these surfaces you can use one of these procedures: 1) use transient export option (in later versions) 2) write a simple journal file to export desired data during iterations Bests, |
I'm too late but thank you Amir.
However I still have problems about this. What I want to do is to monitor pressure difference of two boundary conditions iterationally. I can't imagine why this kind of an execution is that hard to discover. |
Ok, you can do that with a UDF (define adjust macro); find your desired data over different planes and save the difference in a temporary memory. you can save it in a simple scalar variable and write it during iteration or save it in a UDM and plot it during iteration.
Bests, |
Very fast response Amir, surprised, thanks again.
I am totally a newbie about UDF, please let me ask how to select inlet and outlet faces by UDF methods. As I understand from UDF manual, after selecting appropriate faces, you can do some calculations on them. However I need area-average-surface integrals for pressure values. If it doesn't take too much time of yours, could you please guide me for this purpose. I think this post will be very helpful for any other UDF newbies because I've scanned almost all UDF posts on cfd-online and got nothing in my hands now. Kind Regards |
Quote:
Code:
Thread *t1 = Lookup_Thread(domain, ID1); Code:
begin_f_loop(f,t1) At last, as I said before, use a UDM or a simple scalar to monitor the differences. Don't hesitate to ask if it's not clear. Bests, |
Hi,
My code is below: I try to calculate and write area-weighted-average of pressure at inlet boundary (id=14). After this I will be monitoring different quantities of different surfaces. #include "udf.h" DEFINE_ON_DEMAND (HeadCalculation) { real A[3]; real total_area = 0; real ap = 0; real apsum = 0; real pressure = 0; FILE *fp=NULL; Domain *d; Thread *t1 = Lookup_Thread(d, 14); face_t f; d = Get_Domain(1); begin_f_loop(f, t1) { F_AREA(A, f, t1); total_area += NV_MAG(A); ap = NV_MAG(A) * F_P(f, t1); apsum += ap; } pressure = apsum / total_area; end_f_loop(f, t1) fp = fopen("kondi.out", "a"); fprintf(fp, "%.4f \n", total_area); fclose(fp); } Regards |
Ok, it's better to have few modifications:
Quote:
|
Thank you much Amir. I hope this thread will be very useful to the newbies.
|
All times are GMT -4. The time now is 23:11. |