|
[Sponsors] |
UDF-How to calculate gradient of a scalar |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Guest
Posts: n/a
|
Hi! I am trying to write a UDF for fluent. I need to calculate the gradient of a scalar. Does anybody have any idea how can I do that. That is, what are the macros available in Fluent that I can usse to calculate the gradient? Thanking you in advance Tony
|
|
![]() |
![]() |
![]() |
#2 |
Guest
Posts: n/a
|
Fluent will store the gradient of all User Defined Scalars. So, enable a scalar in the Define -> Models -> User Defined Scalars panel, and turn off it's solution in the Solve -> Controls panel. Then, in your UDF, copy the scalar that you want (say temperature) into the User Defined Scalar ( C_UDSI(c,t,0) ), and you can use it's gradient ( C_UDSI(c,t,0)[i], where i=0,1 and 2 in 3D).
|
|
![]() |
![]() |
![]() |
#3 |
Guest
Posts: n/a
|
Hi Everbody I would like to thank Graham very much for his reply. On the other hand, I will need more help on this. I am trying to get the gradient of a scalar that I get by using UDS in Fluent. That is, I want to use the gradient of C_UDSI(c,t,0) in my UDF code. Is C_UDSI_G(c,t,0) will give me the gradient of C_UDSI(c,t,0)?
If that is correct why in my UDF the gradient returns no value? Thanking you in advance Regards |
|
![]() |
![]() |
![]() |
#4 |
Guest
Posts: n/a
|
Hi Everybody, I post a message concerning the calculation of a gradient of a scalar. I would like to share more information on that. There is a sample program in Fluent files. It calculates the magnitude of the gradient of T^4.I have tried to compile that code. But,the code did not generate an executable file. So there is something missing. I think I need to do something in fluent to make that code to work but I do not know what. I will aprciate your help Thanking you in advance Ilkay
|
|
![]() |
![]() |
![]() |
#5 |
Guest
Posts: n/a
|
Graham,
Thanks for your suggestions. Is it necessary to copy the scalar to a UDS as you suggest in order to determine the gradient?? For example, for temperature can one access the gradient through the macro: C_T_G(cell,thread)[x], where x = 0, 1, 2 for the spatial direction I notice that in mem.h, C_DUDX (which calculates the gradient of the velocity component U in the x-direction) and others are actually defined as:- C_U_G(cell,thread)[0] etc. Also, how do you determine the temporal gradient of a scalar in transient calculations? In particular if I have a UDS how do I get access to the transient term, to add as a source term to one of the other transport equations??? Thanks Regards Greg Perkins |
|
![]() |
![]() |
![]() |
#6 |
New Member
Nina Philipova
Join Date: Jul 2012
Posts: 11
Rep Power: 14 ![]() |
How to retrieve WSS from Fluent and calculate temporal and spatial gradients in UDF?
|
|
![]() |
![]() |
![]() |
![]() |
#7 |
New Member
Join Date: Jun 2013
Posts: 18
Rep Power: 14 ![]() |
Hi,Greg Perkins,
Implemented of the source term is a way, but there may be a convergence problem. I'm not sure if i understand U, but, in my opinion,the DEFINE_UDS_UNSTEADY udf is a good reference. Wond |
|
![]() |
![]() |
![]() |
![]() |
#8 |
New Member
Bill Wangard
Join Date: Jan 2011
Posts: 21
Rep Power: 0 ![]() |
The following code should poplulate the UDS gradient variable:
Code:
#include "udf.h" #include "sg.h" DEFINE_ADJUST(adjust,d) { int n; for(n=0; n<n_uds; ++n) uds_derivatives(d, n); /* The UDS gradients are now available */ } void uds_derivatives(Domain *d, int n) { /* Code to compute derivative of a variable. Variable storage allocation first.... */ MD_Alloc_Storage_Vars(d, SV_UDSI_RG(n), SV_UDSI_G(n), SV_NULL); Scalar_Reconstruction(d, SV_UDS_I(n), -1, SV_UDSI_RG(n), NULL); Scalar_Derivatives(d, SV_UDS_I(n), -1, SV_UDSI_G(n), SV_UDSI_RG(n), NULL); return; } Then, in your UDF, you can access the gradient with C_UDSI_G(c,t). Remember, this is a vector quantity. |
|
![]() |
![]() |
![]() |
![]() |
#9 | |
New Member
Join Date: Jun 2013
Posts: 18
Rep Power: 14 ![]() |
Quote:
As we know, The ANSYS FLUENT (V.13 or higher) have the couple level-set option. Do you have any idea to export the level-set function by udf? Thanks a lot! Wond |
||
![]() |
![]() |
![]() |
![]() |
#10 |
New Member
Nina Philipova
Join Date: Jul 2012
Posts: 11
Rep Power: 14 ![]() |
A would like to thank you so much to Bill Wangard for his immediate reply and for his help!
Wish you great further successes! Nina Philipova |
|
![]() |
![]() |
![]() |
![]() |
#11 |
New Member
Bill Wangard
Join Date: Jan 2011
Posts: 21
Rep Power: 0 ![]() |
Regarding coupled level-sets, I don't have any information for you. Sorry.
|
|
![]() |
![]() |
![]() |
![]() |
#12 |
New Member
Nina Philipova
Join Date: Jul 2012
Posts: 11
Rep Power: 14 ![]() |
I found a code, that calculate WSS as a magnitude of viscous fources vector. Area vector is given also as a magnitude of a vector.
I need to calculate components of WSS and their gradients, I don't need a magnitude of vector. Can someone help with advise, please! #include "udf.h" DEFINE_ON_DEMAND(wall_shear_calc) { Domain *d; real wall_shear_force, area; face_t f; real A[ND_ND]; cell_t c, c0; Thread *t,*t0, *c_thread; int Zone_ID=6; /* Zone ID of the wall on which shear stress has to be calculated */ /* It can be obtained from the boundary condition panel.*/ d=Get_Domain(1); /* Initialize the UDM value to zero in complete domain */ thread_loop_c(c_thread,d) { begin_c_loop(c, c_thread) { C_UDMI(c,c_thread,0)= 0; } end_c_loop(c, c_thread) } /* Calculate wall shear stress and store them in UDM */ t=Lookup_Thread(d,Zone_ID); begin_f_loop(f, t) { F_AREA(A,f,t); area = NV_MAG(A); wall_shear_force = NV_MAG(F_STORAGE_R_N3V(f,t, SV_WALL_SHEAR)); c0 = F_C0(f,t); t0 = THREAD_T0(t); C_UDMI(c0,t0,0)= wall_shear_force/area; } end_f_loop(f, t) } /* *********************************************** */ |
|
![]() |
![]() |
![]() |
![]() |
#13 |
New Member
Nina Philipova
Join Date: Jul 2012
Posts: 11
Rep Power: 14 ![]() |
Please, exuse my misunderstanding!
If I correctly understood, I must retrieve calculated by Fluent Wall Shear Stress not to caculated them again. I am not sure that the available gradients and the stored variable are exactly WSS In code of Bill Wangard. Excuse me for that. I have just a small atempt in UDF. How can I assign exactly x-, y-, z-derivatives of WSS components and to calculate WSS temporal or spatial gradient. Last edited by n.phililipova; July 23, 2013 at 07:26. |
|
![]() |
![]() |
![]() |
![]() |
#14 |
New Member
Azadeh Saeedi
Join Date: Mar 2014
Location: Canada
Posts: 23
Rep Power: 13 ![]() |
does anybody here know that how to calculate velocity gradient over tracked particles?
|
|
![]() |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 19 ![]() |
Quote:
Isn't it possible to identify the cell at which particle is present at a specific moment?! If yes, I think it would be a good approximation to use velocity gradient of the cell instead of the particle. Bests. |
||
![]() |
![]() |
![]() |
![]() |
#16 | |
New Member
Azadeh Saeedi
Join Date: Mar 2014
Location: Canada
Posts: 23
Rep Power: 13 ![]() |
Quote:
Thanks alot |
||
![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Vaze
Join Date: Jun 2009
Posts: 172
Rep Power: 18 ![]() |
Hi Bill
I found your code of gradient is not working. Have you checked at your end? Can you please tell me the procedure? Thank you |
|
![]() |
![]() |
![]() |
![]() |
#18 |
Member
Join Date: Nov 2014
Posts: 42
Rep Power: 12 ![]() |
Thanks for all posts.
Last edited by Maryam-A; September 22, 2015 at 03:16. |
|
![]() |
![]() |
![]() |
![]() |
#19 |
New Member
Join Date: May 2018
Posts: 2
Rep Power: 0 ![]() |
Hi mvee
With Bill's code my gradients were all 0. I found that using Alloc_Storage_Vars instead of Md_Alloc made it work. |
|
![]() |
![]() |
![]() |
![]() |
#20 |
New Member
anonymous96
Join Date: Nov 2022
Posts: 17
Rep Power: 4 ![]() |
Hi
I am also getting my gradients involved term zero and I tried the above code both ways and none is working for me. Can you please help me? |
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Wall shear stress gradient udf | Andrew | FLUENT | 3 | April 4, 2018 01:36 |
How to calculate the gradient along the boundaries from a known volScalarFiled? | shddx1 | OpenFOAM Programming & Development | 7 | March 16, 2017 10:47 |
how to calculate scalar data at a particular plane | premchand | Siemens | 4 | May 27, 2008 10:32 |
Calculated gradient boundary condition similar to gammaContactAngle | adona058 | OpenFOAM Running, Solving & CFD | 0 | September 26, 2007 15:23 |
Gradient of Scalar calculation in 3D BFCskew grids | james T | Phoenics | 0 | March 28, 2007 07:12 |