|
[Sponsors] |
Previous time step variable to be used in UDF |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 ![]() |
Hi,
I am writing an UDF, in which I would like to use the previous time step data. Although, in FLUENT we can access previous time step data for many variables with '_M1', I would need user defined variables previous timestep rather than the standard variables. For e.g. m(t+dt) = m(t) + ............... so to solve the above equation for the new time step I will be needing m(t) i.e., previous time step data. I have been keep on trying this from last few days, but could not crack. It will be appreciated, if you can throw some light on it. Regards... |
|
![]() |
![]() |
![]() |
![]() |
#3 |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 ![]() |
||
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
|
Quote:
Bests,
__________________
Amir |
||
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
|
What Amir meant to say is that you can save your current time variable in some UDMI and the older one in another UDMI and basically keep updating them as the time passes. In this case you will never need the old time values as you will always reference current time variables
|
|
![]() |
![]() |
![]() |
![]() |
#6 |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 ![]() |
||
![]() |
![]() |
![]() |
![]() |
#7 | |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 ![]() |
Quote:
|
||
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
|
Consider for example 2 UDMs at first: UDM0, UDM1 and initialize them.
Then in your desired define-macro which does a process in each time step you have e.g.: DEFINE_X(.....) { C_UDMI(...,1)=f(....)+C_UDMI(...,0); //here UDM0 refers to previous time step . . . // At last you have: C_UDMI(...,0)=C_UDMI(...,1); // prepare UDM0 for the next time step } Just note to provide these commands each time steps not each iteration; i.e., if your macro executes each iteration, you need to use a if-clause to restrict the commands for each time step. Bests,
__________________
Amir |
|
![]() |
![]() |
![]() |
![]() |
#9 | |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 ![]() |
Quote:
I have following doubts: 1. For the first time step what would be the value of C_UDMI(...,0) 2. Suppose even if you include it in 'if-else loop' i.e., say for the first time step I will initialise C_UDMI(...,0) in 'if' loop. And subsequently I would use this in else loop. I think I have tried this without inlcuding the if loop for each time step and did not work. I would try for each time-step instead of each iteration and come to you. Thank you again. |
||
![]() |
![]() |
![]() |
![]() |
#10 | ||
Senior Member
|
Quote:
Quote:
Bests,
__________________
Amir |
|||
![]() |
![]() |
![]() |
![]() |
#11 |
Member
Shashank
Join Date: Apr 2011
Posts: 74
Rep Power: 15 ![]() |
Since Fluent does not handle the coupling of the VOF equation and the UDS equation properly and since the source term in the VOF equation is treated implicitly for volume fraction but explicitly for the UDS variable in question, I need to use "some" variables (suppose I store them in a UDM) from the previous time step. How can I do that? I think I am asking how should I loop w.r.t time?
|
|
![]() |
![]() |
![]() |
![]() |
#12 |
Member
Shashank
Join Date: Apr 2011
Posts: 74
Rep Power: 15 ![]() |
Amir, how and where would you use the if-clause to restrict the commands to each time step?
|
|
![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Svetlana Tkachenko
Join Date: Oct 2013
Location: Australia, Sydney
Posts: 419
Rep Power: 15 ![]() |
same question - how to access a variable value from previous time step - no answer in this thread
|
|
![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Join Date: Nov 2013
Posts: 1,965
Rep Power: 27 ![]() |
||
![]() |
![]() |
![]() |
![]() |
#15 |
Member
Pranjal Singh
Join Date: Sep 2015
Posts: 34
Rep Power: 11 ![]() |
||
![]() |
![]() |
![]() |
![]() |
#16 | |
Member
sebastian bergman
Join Date: Mar 2017
Location: seattle
Posts: 52
Rep Power: 10 ![]() |
Quote:
Hello, can '_M1' Extension be used while defining custom field functions too to get previous time step data? |
||
![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
|
Unless some radical change happened in the last couple of Fluent versions, custom field functions are quite different objects with respect to the data available in UDF, especially _M1 and _M2 variables. What you can do is defining your custom field function in an UDF and save it in an UDM, than just do what explained here to have current and past values available.
|
|
![]() |
![]() |
![]() |
![]() |
#18 |
New Member
Nick
Join Date: Jul 2018
Posts: 3
Rep Power: 8 ![]() |
Hi Amir, If I want to get the time-dependent values of the turbulent kinetic energy, how should I use the UDM?
|
|
![]() |
![]() |
![]() |
![]() |
#19 |
New Member
Bagher Aghasi
Join Date: Nov 2021
Posts: 1
Rep Power: 0 ![]() |
accessing to previous variable can be done by define_execute_at_and macro. at first desired variable should store in a udmi memory at this macro and then this memory can retrieve anywhere in udf. this macro execute at end of last time step so in iterations of new time step its values dont change.
for example define_execute_at_end(){ domain *mixture =Get_Domain(2); fluid_id =8; Thread t = Lookup_Thread(t,fluid_id); cell_t c; begin_c_loop(c,t) { C_UDMI(c,t,0) = c_R(c,t); } end_c_loop(c,t) } define_source(name,c,t,ds,eqn) { rho_previous = udmi(c,t,0); rho = C_R(c,t); } |
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Transient simulation not converging | skabilan | OpenFOAM Running, Solving & CFD | 14 | December 17, 2019 00:12 |
Multiple floating objects | CKH | OpenFOAM Running, Solving & CFD | 14 | February 20, 2019 10:08 |
Problems with simulating TurbFOAM | barath.ezhilan | OpenFOAM | 13 | July 16, 2009 06:55 |
Modeling in micron scale using icoFoam | m9819348 | OpenFOAM Running, Solving & CFD | 7 | October 27, 2007 01:36 |
Accessing previous time step temperature in UDF | Sam Bennett | FLUENT | 0 | February 27, 2006 11:46 |