|
[Sponsors] |
February 16, 2005, 20:24 |
Re: Any questions about Runge-Kutta methods
|
#21 |
Guest
Posts: n/a
|
I know about the problems of multistep methods to work with flexible time steps.
My idea was just to be able to track the error in a multistep method with a fixed time step and, did it experiment a variation out of some minimum and maximum boundaries, I would increase or dicrease the time step. The initialization of the multistep simulation with the new time step would be realized with a RK. It would be practical only if there were no huge variations in the error, so that very few modifications in the time step would, actually, be needed. One looses fine control about the size of the time step, yet it may be advantageous if each computation of f(U) is CPU expensive. |
|
February 17, 2005, 00:02 |
Re: Any questions about Runge-Kutta methods
|
#22 |
Guest
Posts: n/a
|
I'm not sure where you're going with those comments. I hope you are distinguishing between variable step size implementations of multistep methods and error controllers for variable step size multistep methods. I'm saying that having information from previous steps makes error control more dicey not that there is any intrinsic issue with variable step size multistep methods. By the way, variable step size multistep methods generally come in 3 flavors; variable coefficient, fixed coefficient, and fixed leading coefficient methods. I think variable coefficient is generally believed to be the best.
Oftentimes in CFD with explicit integrators, it is the stability boundary that is the bottleneck. There is little difference between ERK and explicit multistep methods methods in terms of the RHS evaluations per unit step size at fixed local error with low-order methods. The ERK methods are easier to implement and admit error control better. If storage is an issue, ERKs can be designed with reduced memory requirement. |
|
February 17, 2005, 02:44 |
Re: Any questions about Runge-Kutta methods
|
#23 |
Guest
Posts: n/a
|
I was pointing out that, while it is trivial to work with variable step methods with ERK, it is much more difficult with multistep methods.
All the implementations I know of multistep methods work with a fixed step (and a RK to feed the initial data). However, it would be worth to have a measure of the error, not to work with a fixed error as in RK, but to check that it is kept between aceptable boundaries. In DNS (collocation codes), second order AB is the most popular method in the published papers. And there is a big win in CPU time with regard to ERK2 (the time step is only ~ 20% smaller whereas the number of FFT operations is one half). |
|
February 17, 2005, 04:17 |
Re: Any questions about Runge-Kutta methods
|
#24 |
Guest
Posts: n/a
|
About DNS, are you speaking of incompressible, low-Mach, or compressible? People who like to adorn themselves in the phrase DNS yet run second-order methods (without any error control) are kidding themselves. In compressible DNS, I see most people using 3rd- or 4th-order ERKs. For the incompressble, low-Mach situations, these are differential algebraic equations and not ODEs. Here multistep methods have a distinct advantage because they always update the solution to design order while Runge-Kutta methods do not. I will spare you my rant about the issues with most low-Mach number codes and some of those with incompressible codes. I'll just say that DAEs have something called an index. You can speak of a differential or perturbation index. ODEs are index-0 DAEs. The low-Mach and incompressible equations are index-2 DAEs. People cheat and manipulate the equations into index-1 form. This (index-reduction) can burn you. Further, it ESSENTIAL to know the exact form of the index-2 constraint or you're TOTALLY bombing.
By the way, if you're good with finite difference stencils, just create a finite difference stencil that is compatible with your multistep method but with one order less. Take the difference between the new solution vector by both stencils. Normalize this by either solution provided you're not dividing by zero. |
|
February 17, 2005, 17:29 |
Re: Any questions about Runge-Kutta methods
|
#25 |
Guest
Posts: n/a
|
Thank you, again! Your points about error control are very good (in comparison to the Courant number criterion I had been taught of).
I was only talking about fully incompressible NS. The second order constraint is that the velocity field must be divergence free. In pseudospectral methods, this is exactly accomplished by means of a projector operator FT(U_i) = (\delta_{ij} - k_i k_j / k^2) FT(U_j) where FT means FourierTransform and there is addition over j. This projector is applied after either each step (multistep methods) or each substage (multistage methods). Is there any problem with that way of working? I know that to accomplish exact divergence free solutions with finite differences is another question and that a Poisson solver for the pressure may not be completely accurate. |
|
February 17, 2005, 20:36 |
Re: Any questions about Runge-Kutta methods
|
#26 |
Guest
Posts: n/a
|
You are living in an unusual world with your pseudospectral code for the incompressible NSEs. First, you have a simple index-2 constraint; Div(U)=0. What is unusual is that you can enforce the constraint analytically at each stage or step. Most people cannot. I suspect your system acts just like an ODE system. Now your stability is driven be the magnitude and position of the scaled eigenvalues associated with diffusion (or reaction). Since you have a DNS code, the effective grid spacing may place you near the integrators stability boundary near the real axis. I don't know if you'd be stability or accuracy bound in your calculations.
When you move to a spatial discretization that no longer allows you to enforce your DAE constraint analytically, life changes for the worse. If you solve a pressure Poisson equation, you are no longer solving the proper constraint but rather the derivative of the constraint. That makes a big difference and means that you need to take steps to compensate for using the index-reduced constraint (reduced from index-2 to index-1). By the way, for the NSEs with a constraint, Runge-Kutta methods now have 2 different orders of accuracy. One is for the pressure (the algebraic variable) and another order of accuracy for the other integration variables. Go find 10 people who routinely solve the incompressible NSEs and ask them if they solve the index-1 or index-2 constraint. If less than 10 out of 10 give you a blank stare, I'd be surprised. By the way, the essential attribute of DNS, in my humble opinion, is CFD at very tight error tolerances. I don't really care how people achieve these tight error tolerances. But different methods deliver tight error tolerances at different costs. The trick is to honestly and reliably achieve these tolerances as cheaply as possible. People who claim DNS but do nothing to measure or control error are very unlikely to be running at tight tolerances. |
|
February 18, 2005, 10:36 |
Re: Any questions about Runge-Kutta methods
|
#27 |
Guest
Posts: n/a
|
how can i implement of inflow and outflow boundary condition to flow between blade of turbine. i need to use charactristic metod to implemet of boundary condition and i solve my euler equation with jameson method
|
|
February 18, 2005, 14:13 |
Re: Any questions about Runge-Kutta methods
|
#28 |
Guest
Posts: n/a
|
There are many ways to consider characteristic BCs. Sometimes you want to actually tell the code specific values for certain quantities at the boundaries and sometimes you don't. Oftentimes at inflows, you'd like to specify {u,v,w,T}. Some people call this a hard inflow because you want to hardwire certain values. Anyway, implementing a hard inflow is different than a fully nonreflecting outflow. Next, how many BCs are you permitted to impose on the Euler eqns? It is exactly the number of characteristics that are entering the domain. Your eigenvalues are (u_n + c), (u_n - c), and the rest are u_n. At a subsonic inflow, you have N_dim + 1. At a supersonic inflow, you have N_dim + 2. At outflows, it is 1 for subsonic and 0 for supersonic. By the way u_n is the wall normal velocity with positive being out of the computational domain. N_dim is the number of dimensions that you are computing in.
As far as the Runge-Kutta method goes, update the solution vector and then impose the BCs. Manipulating characteristics generally means that you are manipulating the wall normal convective terms. If you have quantities that you wish to impose, you might try to impose them as you build the right hand side. |
|
February 24, 2005, 09:46 |
Re: Any questions about Runge-Kutta methods
|
#29 |
Guest
Posts: n/a
|
well,
let me know the other methods od solving bounbdry value problems in CFD. |
|
February 27, 2005, 14:57 |
Re: Any questions about Runge-Kutta methods
|
#30 |
Guest
Posts: n/a
|
||
February 28, 2005, 08:19 |
cfd problem solving
|
#31 |
Guest
Posts: n/a
|
sir, please tell me about the easy method to solve the CFD problems other than the numerical methods and tdma methods.
|
|
February 28, 2005, 23:33 |
Re: Any questions about Runge-Kutta methods
|
#32 |
Guest
Posts: n/a
|
How is the Runge Kutta Gills Method able to solve the Second derivative equations of Stagnation flows. Is Runge Kutta Method able to solve only linear ODE's.
Help required |
|
March 1, 2005, 02:41 |
Re: Any questions about Runge-Kutta methods
|
#33 |
Guest
Posts: n/a
|
The Runge-Kutta Gill method, as I recall, is simply a 4-stage, 4th-order, explicit Runge-Kutta method designed for first-order ODEs. One may always recast higher-order ODEs in terms of a system of first-order ODEs. Imagine you would like to solve the Falkner-Skan equation
f''' = -f*f'' - b*(1 -f'*f') using RK-Gill. Since the equation is third-order, your system of equations goes from 1 to 3. At each stage you solve F(2) = -f(0)*f(2) - b*(1. - f(1)*f(1)) F(1) = f(2) F(0) = f(1) where f(0)=f, f(1)=f', and f(2)=f''. Runge-Kutta methods can be designed with different things in mind. Most people quote the order of a Runge-Kutta method for general nonlinear equations. The classic explicit Runge-Kutta method and almost every explicit Runge-Kutta method you've ever heard of is accurate "as advertised" on linear or nonlinear problems. There are exceptions though. Gill's method is 4th-order on nonlinear problems. For a bit more detail, to get some order of accuracy with RK methods, the coefficients of the method have to satisfy certain conditions. The number of conditions increases rapidly as the order increases. At 4th-order, there are 8 equations to solve for the coefficients. At 5th-order, there are 17 while for 6th-order there are 37. Not only are there lots of them, they get more and more algebraically nonlinear at high-order. This is why not many people design high-order explicit Runge-Kutta methods. One last thought. There are generally 4 different flavors of order conditions: quadrature, subquadrature, extended subquadrature and nonlinear. Most people satisfy all four but occasionally people don't - I think Zingg had 2 papers like that and Hu had one. They do this occasionally for methods designed to have special dissipation and dispersion properties. |
|
September 9, 2019, 17:32 |
|
#34 |
New Member
ahmed
Join Date: Jan 2016
Posts: 5
Rep Power: 10 |
Hello there,
I'm trying to build up my own DNS solver, so i started building up a solver for NS equations and then to march this solver with respect to time. Basically im asking if u have any discretized equations for unsteady NSE in the time domain using RK2 so that i can debug my code? Thanks in advance |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
1D Burgers euqation with 4th Runge Kutta | dokeun | Main CFD Forum | 3 | August 8, 2011 07:34 |
Runge Kutta for unsteady flow | Hooman | Main CFD Forum | 2 | August 3, 2011 09:58 |
Runge Kutta Optimization | vasanth | Main CFD Forum | 6 | December 2, 2005 14:07 |
Diagonally Implicit Runge Kutta | Anthony Iannetti | Main CFD Forum | 1 | February 3, 2001 01:14 |
Diagonally Dominate Runge Kutta Method | Anthony Iannetti | Main CFD Forum | 0 | January 23, 2001 22:27 |