|
[Sponsors] |
![]() |
![]() |
#1 |
Guest
Posts: n/a
|
I'd really like to know what's the time marching procedure used by CFX for steady flows cause it's not written in the manual.
Thank you |
|
![]() |
![]() |
![]() |
#2 |
Guest
Posts: n/a
|
I believe CFX employs artificial time stepping to a steady state.
My question then becomes: Will the transient term be retained once steady state is reached? |
|
![]() |
![]() |
![]() |
#3 |
Guest
Posts: n/a
|
yes it is artificial time stepping, it's written in the manual but they don't say much about it... But I still don't understand that principle : what methods does it involve?
if Robin could be there I'm sure I'd know... |
|
![]() |
![]() |
![]() |
#4 |
Guest
Posts: n/a
|
Once steady state is reached the transient term is zero....
|
|
![]() |
![]() |
![]() |
#5 |
Guest
Posts: n/a
|
Okay, then what happens in transient simulations? How are the inner iterations marched in time?
If the transient term equals zero when steady state is reached, how is the the transient term updated in transient flows once the solution is converged at each timestep? |
|
![]() |
![]() |
![]() |
#6 |
Guest
Posts: n/a
|
with the first or second order Euler Backward method...
wha's artificial timestepping? |
|
![]() |
![]() |
![]() |
#7 |
Guest
Posts: n/a
|
Hi guys,
This is discussed in the manual. It is an implicit time differencing scheme of first or second order. Some people think of "time marching schemes" as explicit schemes and CFX is not explicit, so just be careful to not get confused there. In steady state the transient term goes to zero. In steady state simulations a number of the non-linear parts of the true transient scheme are removed, but most of the terms remain - hence it is a "psuedo-transient" scheme. Glenn Horrocks |
|
![]() |
![]() |
![]() |
#8 |
Guest
Posts: n/a
|
Thank you I see more what's the idea. But how does it come that you don't have to specify the time discretisation method (first or second order backward euler) when you perform a steady state simulation?
|
|
![]() |
![]() |
![]() |
#9 |
Guest
Posts: n/a
|
The solution does not need to be "time accurate" hence the accuracy of the time discretization does not matter. The only thing you are trying to do is drive the time derivative to zero as fast as possible which in theory should recover the steady solution. Most every book written on CFD will have covered this....perhaps it is time to visit the library....
|
|
![]() |
![]() |
![]() |
#10 |
Guest
Posts: n/a
|
I have the book Introduction to CFD of Versteeg. It's written nowhere about this artificial time stepping. I'm not new to numerical methods, I already had classes on that, and I never heard of artificial timestepping. In the manual it's written nowhere either. Sorry but for me steady state is steady state, so the transient term is zero and I don't see why it wouldn't, and so I didn't understand why it was still discretized in time.
|
|
![]() |
![]() |
![]() |
#11 |
Guest
Posts: n/a
|
Hi Gui,
Basically the transient term is left in the steady state equations as a form of relaxation, which is why there are no relaxation coefficients for users to modify in CFX. Although the steady state behavior may be time-like, it is not an accurate transient (unless you were to run with a very, very small timestep), because it is only a first order backward Euler scheme and the non-linear coefficients are not updated within the timestep. Furthermore, the calculation of residuals in a steady state calculation does not include the influence of the transient term. Since the objective is to reach steady state, the residual is calculated as: What goes in - What goes out = Steady State Residual In a transient calculation it is important to accurately resolve the time-evolution of the flow. This requires a second order treatment of the transient term and also requires that the non-linear coefficients be updated within the timestep, wheras the transient term is not updated until the next timestep (thus advancing the solution). For a transient timestep to be converged the time accurate residual must be small (although not usually as small as required by a steady solution), but keep in mind that this includes the transient term, thus: What goes in + What accumulates - What goes out = Transient Residual Where the accumulation is the change in momentum, mass, etc. within the control volume. This often results in confusion, because users wonder why a transient calculation appears to converge, whereas a steady state one does not. The reality is that the residuals are representing different (steady vs. transient) convergence criteria. Regards, Robin |
|
![]() |
![]() |
![]() |
#12 |
Guest
Posts: n/a
|
Thank you for all these precisions. Maybe I'm asking too much,but what do you mean by the non linear coefficients?
|
|
![]() |
![]() |
![]() |
#13 |
Guest
Posts: n/a
|
A very simplified way to think of it is this: If you consider the transport of momentum, for instance, you have a term which is the mass flow through the face times the velocity (momentum per unit mass) which it is tranporting (i.e. m_dot*v). But, the mass flow itself is a function of the flowfield, hence the term is non-linear, because it depends on itself.
In order to solve this, some coefficients need to be "lagged", which is to say it uses the old value. For advection of momentum you break it up into "advected" and "advecting" components. The advected component is the velocity you are solving for whereas the advecting component is the velocity used to calcuale mass flow, which is lagged. So in a steady state calculation, the advecting velocity is always lagged, whereas the advected velocity is active (i.e. solve for). This means they are out of sync, but the disparity between the two will eventually go away when a steady state is reached. For a time-accurate transient having such a disparity will not do. To resolve this, the solver will take additional "coefficient loops", where it will update the advecting velocity to use the new value of advected velocity acheived by the previous coefficient loop. While these updates are ocurring, the transient term is kept the same, which prevents the flow from advancing in time and allows the non-linear terms to converge within the timestep. In reality it is a lot more complicated, but this is where we sit back and be grateful for masochistic solver developers, who worry about the details. Regards, Robin |
|
![]() |
![]() |
![]() |
#14 |
Guest
Posts: n/a
|
Robin, you're the man ! Thanks a lot
|
|
![]() |
![]() |
![]() |
#15 |
Guest
Posts: n/a
|
Robin,
Looking at transient simulations now. How are the inner iterations (coefficient iterations) marched in time? Does CFX employ some sort of dual-time marching? Thanks in advance. |
|
![]() |
![]() |
![]() |
#16 |
Guest
Posts: n/a
|
Inner iterations are purely coefficient loops and aren't marched in time.
|
|
![]() |
![]() |
![]() |
#17 |
Guest
Posts: n/a
|
Robin,
Are you saying then, that the resulting equation set is no longer hyperbolic/parabolic in time? What is the nature of the equation set that is being solved during the inner iterations? Thanks in advance. |
|
![]() |
![]() |
![]() |
#18 |
Guest
Posts: n/a
|
No, the equations are still hyperbolic/parabolic. The transient term is still assembled during each coefficient loop. It's not like it's magically deleted or something.
The multiple coefficient loops are needed to update "lagged" non-linearities. The advecting mass flows/velocity Robin previously mentioned are one example. Another example is if you run the high-resolution advection model (the default BTW), the control volume gradients, used for the second order correction terms, are under relaxed so you do not get their full effect until the time step converges. In some cases, with a small enough time step (CFL~1) and particular physical models (say single phase compressible laminar or turbulent flow), you can get away with one coefficient loop per timestep, which really speeds things up. |
|
![]() |
![]() |
![]() |
#19 | |
Member
phd
Join Date: Oct 2013
Posts: 76
Rep Power: 12 ![]() |
Quote:
Hi, Robin, thank you very much for you nice explanation. I now know for the steady state simulation, the pseudo time marching is obtained by 1st order implicit Euler method. Is there any method, such as expert parameter that we can use to implement the 1st order explicit Euler method? I have specific need for this temporal scheme despite its instability. Or if we use transient simulations, is there any chance we can run the explicit simulations? Thanks! |
||
![]() |
![]() |
![]() |
![]() |
#20 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,816
Rep Power: 144 ![]() ![]() ![]() ![]() |
I answered your question on the other thread. Do you doubt my answer?
__________________
Note: I do not answer CFD questions by PM. CFD questions should be posted on the forum. |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Extrusion with OpenFoam problem No. Iterations 0 | Lord Kelvin | OpenFOAM Running, Solving & CFD | 8 | March 28, 2016 11:08 |
Modeling in micron scale using icoFoam | m9819348 | OpenFOAM Running, Solving & CFD | 7 | October 27, 2007 00:36 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 18:07 |
Runge Kutta vs adams bashforth time marching | vasanth | Main CFD Forum | 5 | January 1, 2006 00:17 |
unsteady calcs in FLUENT | Sanjay Padhiar | Main CFD Forum | 1 | March 31, 1999 12:32 |