CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   Dual Time Stepping (http://www.cfd-online.com/Forums/main/10093-dual-time-stepping.html)

 CFD Student October 16, 2005 11:51

Dual Time Stepping

Dear CFD people,

I wrote 2D cell-centered finite volume Navier-Stokes solver (JST scheme for convective fluxes), which handles steady flows. I will try to convert it into unsteady flow solver using explicit dual-time stepping with Runge-Kutta scheme. Since I am completely new to dual time stepping, any help (suggestions, articles) are greatly appreciated.

Best regards.

Murat Uygun

 ganesh October 17, 2005 01:53

Re: Dual Time Stepping

Dear Murat,

For information on the concept of dual time stepping please refer to Antony Jameson's paper

AIAA 91-1596 Time dependent calculations using multigrid, with application to unsteady flows past airfoils and wings

This is the paper that introduces Dual time stepping. The basic idea is to introduce a fictitious time step into the computation, so that the unsteady problem becomes a pseudo-steady problem. This brings in inherent advantages associated with a steady-state problem like local time stepping and implicit methods for convergence acceleration. Jameson's paper, uses explicit RK as you plan to do. Thus there are two time steps, one physical, which is generally fixed (dependent on certain considreations) and the pseudo-time step, which is calculated very much like in a steady state problem. The paper of Jameson, is with reference to moving grids, which is a more general scenario, wherein additional considreations just more than DTS is needed, so this paper should help you a lot. You can as well get more papers in this field, viz. Venkatakrishnan & Mavriplis(1994), Gaitonde etc ..... If you need any of these papers, kindly send me your e-mail id and I shall mail you the papers.

Hope this helps

Regards,

Ganesh

 A.S. October 17, 2005 03:39

Re: Dual Time Stepping

Also refer Wiess and Smith - p. : 2050, AIAA Journal, 1995.

Regards

A.S.

 CFD Student October 18, 2005 03:01

Re: Dual Time Stepping

Dear CFD people,

Thank you a lot for all suggestions. I downloaded the papers and article. I am going to start implementation. I would like to email Ganesh in case I have further questions about DTS.

Best regards.

CFD Student

 ganesh October 18, 2005 05:13

Re: Dual Time Stepping

Dear CFD Student,

Hope you have a nice time implementing DTS. In case you would like to have discussions on DTS, you are most welcome. You can mail me on my id as given above.

Regards,

Ganesh

 CFD STudent October 20, 2005 04:37

Re: Dual Time Stepping

Thanks a lot for your kind interest.

Best regards.

CFD Student

 daniel October 20, 2005 17:02

Re: Dual Time Stepping

It's just my personal considerations...

without a very good ( really very good!!!) multigrid strategy the DTS is totally useless. Writing a multigrid, expecially for DTS, is not a walk in the park.

 ganesh October 21, 2005 00:37

Re: Dual Time Stepping

Dear Daniel,

It is not really true that DTS is useless without multigrid. Multigrid strategy is definitely very useful, as your personal experiences may have also shown, but DTS operates independently of any such strategy and can be used with any unsteady solver to frame a pseudo-steady problem. Multigrid accelerates convergence, but there are other methods which can do it too. So, as far as an unsteady code is concerned, DTS is not in any strong relation with a multigrid. This comes out of my presonal experiences, wherin I have an unsteady 2D solver for compressible flows where I use DTS but no multigrid.

Regards,

Ganesh

Re: Dual Time Stepping

Hi Daniel, Ganesh, A.S., CFD student,

I have a 3D solver wherein I want to implement dual time stepping, so that the code has the capabilities for compressible, unsteady flows. Presently the code has DTS for Incompressible flows, based on the Weiss and Smith scheme.

I am basically extending the same schem for the compressible flow, for considering the preconditioning matrix as a unity matrix and updating in conserved variables instead of primitve as in Weiss.

While I am implementing the scheme, i have a few doubts. 1. the no. of subiterations, so that i get a converged solution for pseudo time step to get time accuracy at the physcial time step. And the computing time is less than what i will get with the global time step, so that DTS is justified. 2. the value of the physical time step. since the CFL condition will be applied to the pseudo time. 3. is it justified if sub-iterations are exlicit. coz almost everyone have discretized implicitly.

My code is finite volume, multi block, structured, without multi grid. I wuld really appreciate any comments.

 Mani October 21, 2005 14:53

Re: Dual Time Stepping

>Writing a multigrid, expecially for DTS, is not a walk in the park.

Depends on the park and on how well you know to walk. :) Efficient multigrid methods may not be very simple to write, but to say that this is so 'especially for DTS' is nonsense.

If you know how to write a multigrid algorithm for steady-state computations, you will have no problem implementing the exact same algorithm for DTS. That's the whole purpose of DTS (and the ingenuity of Jameson), to separate the real-time stepping from the accelerated steady-state pseudo-time iterations, in order to apply any steady-state acceleration techniques (local time-stepping, multigrid, residual smoothing, ...) to unsteady problems without having to change the algorithm. The acceleration is simply applied in the pseudo-time domain.

 ganesh October 22, 2005 09:35

Re: Dual Time Stepping

The basic idea behind DTS is to transform the unsteady problem in real-time to a pseudo-steady problem in fictitious time. This enables use of all acceleration convergence techiniques that we normally use for steady flow.

Here are my opinions on your doubts. I work on unsteady flows in 2D and have not implemented DTS in 3D as of now, but will be doing so shortly, however I believe that the ideas and concepts are essentially the same.

1. The number of sub-iterations you need to take in the pseudo-time to have time accurate solutions is not an easy one to answer. The fact is this could very well be problem dependent. Strictly speaking, you need to converge the pseudo-steady problem, which is same as convergence for steady-state problems that we solve otherwise. I generally converge my steady codes to 6 decades ie. 1e-6. Now, if I were to use the same criteria in DTS then you would really have to wait long, depending on the problem at hand. For Euler flows, this is not a serious problem and more so with coarser grids, but with finer grids and viscous problems, these may not be really practical, although this seems to be theoretically correct approach. I use a maximum of 100 subiterations or convergence of 1e-4 ( whichever is earlier) for my simulations. I have however seen cases where 10 or only 20 subiterations are performed(this roughly corresponds to a convergence of 1e-2, again being problem depepndent), for a 3D unsteady simulation for helicopter rotors. You can check the work of Dutta & Dutta regarding the same, although I am sure you would find many more in this field.

The important thing is that the solution match favourably with validation results (either experiments or other standard computations).

2. The value of physical time step for time -accurate computations is also not an easy one. What is generally known is that the physical time-step is fixed. Its value for time accurate computations depends on the problem at hand again.

3. There is no problem if you step explicitly in DTS, in fact that is what Jameson did in his paper that srated off DTS. The fact that most pepople do implicit stepping, is because of the obvious reason that it accelerates convergence of the pseudo-steady problem.

As I had mentioned earlier, DTS enables use of all acceleration convergence techiniques in pseudo-time. So, if you want to actually justify DTS, it is necessary that you use some of these tools, like local time stepping, multigrid or implicit stepping etc... Do not be bothered if you do not have a multigrid, it is always possibel for you to use local time stepping in DTS as of now and once you have implemented explicit RK successfully for DTS, you could as well try out some implicit schemes.

And as for questions (1) and (2), there is no apriori way to fix the physical time step and the sub-iterations, they will differ from problem to problem. However you could try the following. Once you have implemented your code, try it on a sample problem in the following way.

1. Fix all parameters except the physcial time step. Vary the physical time step and obtain the solution. In each case monitor some quantity of interest,say Cl for example. After repeating for say 4 or 5 times, use the principle of Richardson extrapolation, since delt should -> 0, in theory. If we assume that RE gives the exact solution, then we can compute the error in solution for all the cases run. You can then plot error v/s delt. See the slope on a log-log plot. There will be a point before and after which the slopes would be markedly different, say 1 and 2.( On avreage). This slope actually gives you the time accuaracy as we assume error~C delt ^ p, which is a straight line of slope p on log-log plot.

2. As for the number of sub-iterations, you can try out starting from 10 or 20 , upto 100 in steps of 10. In each case, all the parameters except the number of sub-iterations. Monitor some value of interest, say Cl. Beyond some value say N of the number of iterations, a definitive difference in solution may not be percievable. Choose this as your threshold. You could do the same with the convergence criteria,ie. EPS in DTS also by varying from say 1e-1 to 1e-6.

In some of the experiments I conducted, I have seen that for very high values of physical time step and EPS, say of order 0.1 and 1e-1, the code does not go through at all, which reflects the instability clearly. While these experiments do help in checking the time accuarcy and understanding DTS deeply I would like to mention two points worth noting

1. If problem has no exact solution, only then we need to make the RE estimate. Most practcical problems have no exact solution. The RE estimate will come from already computed solutions and then the error depends on RE. As you make more runs, RE is refined and the values monitored being generally close enough if the grid is sufficinetly fine to atleast detect the faeture), it will not be very easy to find the POINT at which slope change is observed. This comes from my personal experience. You can really see the closeness of values and the similar experiment if you refer to the paper

AIAA-95-1835-CP Efficiency and Accuarcy of Time-Accurate Navier-Stokes Computations, Christopher Rumsey etal.

2. Even if these experiments are conducted, carrying out such studies for practical problems esp in 3D is not only easy but does not yield much information. The choice of the parameters thus come mostly from experience. For my 2D computations, I find EPS=1e-4 and physical time step= 0.001 to be a good choice.

The only important fact that is to be borne in mind is that DTS is definitely a strong tool and the choice of the right parameters finally comes down to engineering decision-making - If the code goes through and gives good results for validation, the choice is fine although a guarantee that you have made an optimal choice is difficult, but mostly you are somewhere in its neighbourhood.

Hope this helps.

Regards,

Ganesh

 daniel October 23, 2005 18:06

Re: Dual Time Stepping

Mani, thank you very much for your message.

Let me specify my statement. Of course, I am aware that my considerations can be totally wrong, but according to my experience I can say:

1) Using the classic II Backward differnce, in a DTS approach you got some sources terms depending on DT, and a term -3/(2DT)W where W is the state vector. The multigrid strategy for these terms is not straightforward, and if you apply exactly the same procedure done for a steady case (I mean restricting ALL the rhs on a coarser grid using the same operators) it doesn't work. In particular the term -3/(2DT)W needs special care. Generally it is treated implicitly otherwise you can soffer of a stronger CFL condition when integrating in a dual time and this requires extra modifications.

2) The multigrid is very efficient for Eulerian steady state solvers. When you run a DTS, the number of subiterations in the Dual variable are quite limited. Ganesh for exmaple in its post says 100 subiterations; well , if the integration path is so "short" the effect of a Multigrid is limited. It can't give a speed up of 7-10 like in the steady state calculations. In a 2D code I developed the speed up was less than 3... but it may be because I am not a good walker...:)

2) An other special issue is the convergence criteria; all the guys that use DTS fix inside the code the number of subiterations, which is on practical hand the only thing to do. If you look for a good convergence ( a real one )... I am afraid that it becomes much slower than the explicit methods, And i am even afraid that many times It fails to convergence.

3) Local Time Stepping gives nothing , if (as it usually happens )the unsteadiness of flow is localized in the region where the grid becomes more accurate.

4) Residual Smoothing and all the rest ....come on ...they can't make any miracle

they are "ad hoc" filtering operations allowing

to slightly increase the CFL

but in addition you need to solve a Thomas in all the directions.

Regards,

 daniel October 23, 2005 18:42

Re: Dual Time Stepping

Dear Ganesh,

Yes the two things are separate. You are right. I just think that the DTS without accelerating the convergence is slower than the explicit code. Anyway, for the time being I am having problems with DTS (without multigrid) in cylindrical coordinates. The code is axisymmetric/3D compressible but I guess my problems arise because of the spatial discretizations (finite differece compact+spectral) and no additional dissipation (Jameson like) added. Have you any reference of DTS for cylindrical NS with high order methods? If it's possible to have private comuncations, I will explain better the situation. Best regards,

 ganesh October 24, 2005 00:33

Re: Dual Time Stepping

Dear Daniel,

I do not have any reference for DTS for cylindrical N/S. However, your discussions on any topic in this regard are most welcome. If your problem is axisymmetric, you could as well do it using an exisiting solver (in x-y-(z) co-ordinates), but by addition of a corresponding source term, which would be a function of distance from axis in vertical direction. This is what I do for my 2D solver. I think that as long as your solver works well without axisymmetry, in which case your discretisation is right, such a modification will be a simple one, and as long as the terms are right, there would be no problems in getting the solution.

Hope this helps

Regards,

Ganesh

Re: Dual Time Stepping

Hi ganesh,

hanks for the detailed reply. I have coded the DTS now trying it out on a few cases. will revert with the results.

I got the Chistopher Rumsey paper. Can you give me more details about the Dutta and Dutta paper you mentioned and if possible a copy of it.

Thanks,

 ganesh October 24, 2005 03:16

Re: Dual Time Stepping

The Dutta & Dutta paper I mentioned is available in Proc. of 8th AeSI Symposium held in Bangalore, August 2005. I do not have a soft copy of the same, but if you really need more information, you could either directly mail to the authors (See www.nal.res.in and look for P.K. Dutta or Vimala Dutta) or you could mail me and I shall try to arrange for the same, but it could take a while.

Happy coding

Regards,

Ganesh

Re: Dual Time Stepping

Thanks, I got it. A few guys of my group presented a few papes there. So I have the report. You work in NAL?

 ganesh October 24, 2005 06:31

Re: Dual Time Stepping

Nice to know that you have got the report. I hope that it helps in your work. I do not work in NAL, but I have friends working there. I am doing my PhD in Aerospace Engg. at IISc. Where are you working/studying at ?

Regards,

Ganesh

Re: Dual Time Stepping

Hi,

I am working at Zeus Numerix, a commercial spin off of IITB's Prof Shevare's Research group IITZeus.

Well I did my final year project at Aerospace Dept., IISc under Dr. Raghurama Rao. Fantastic Place to work. What is your topic?

 ganesh October 24, 2005 08:37

Re: Dual Time Stepping