|
[Sponsors] |
Previous time step variable to be used in UDF |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 18, 2012, 09:48 |
Previous time step variable to be used in UDF
|
#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... |
|
July 19, 2012, 09:51 |
|
#3 |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 |
||
July 19, 2012, 13:00 |
|
#4 | |
Senior Member
|
Quote:
Bests,
__________________
Amir |
||
July 19, 2012, 17:28 |
|
#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
|
|
July 20, 2012, 01:57 |
|
#6 |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 |
||
July 20, 2012, 01:58 |
|
#7 | |
New Member
CFD-user
Join Date: Jul 2012
Posts: 5
Rep Power: 14 |
Quote:
|
||
July 20, 2012, 03:47 |
|
#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 |
|
July 24, 2012, 04:56 |
|
#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. |
||
July 24, 2012, 06:50 |
|
#10 | ||
Senior Member
|
Quote:
Quote:
Bests,
__________________
Amir |
|||
May 23, 2013, 19:06 |
|
#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?
|
|
May 24, 2013, 17:37 |
|
#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?
|
|
May 29, 2014, 04:33 |
|
#13 |
Senior Member
Svetlana Tkachenko
Join Date: Oct 2013
Location: Australia, Sydney
Posts: 416
Rep Power: 15 |
same question - how to access a variable value from previous time step - no answer in this thread
|
|
May 29, 2014, 05:07 |
|
#14 |
Senior Member
Join Date: Nov 2013
Posts: 1,965
Rep Power: 27 |
||
October 18, 2015, 06:34 |
|
#15 |
Member
Pranjal Singh
Join Date: Sep 2015
Posts: 34
Rep Power: 11 |
||
March 20, 2017, 07:16 |
Previous Time step data in Custom field functions
|
#16 | |
Member
sebastian bergman
Join Date: Mar 2017
Location: seattle
Posts: 52
Rep Power: 9 |
Quote:
Hello, can '_M1' Extension be used while defining custom field functions too to get previous time step data? |
||
March 20, 2017, 07:31 |
|
#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.
|
|
July 31, 2018, 15:33 |
|
#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?
|
|
June 23, 2022, 02:17 |
|
#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); } |
|
|
|
Similar Threads | ||||
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 |