What is Pre-Conditioning?
Can anybody tell me what is meant by pre-conditioning in a cfd simulation?
Cheerios Rif |
Re: What is Pre-Conditioning?
It is kind of re-structuring linear equations systems before solving them. This leads to an quicker solvable equation system. Regards.
|
Re: What is Pre-Conditioning?
You will encounter mainly two types of preconditioning: 1. - at the PDE level (and its discretization) 2. - linear system level
1. When simulating (steady-state or unsteady with dual-time formulation) flows using a density-based (compressible) solver, in the low Mach# regimes (typically below Mach 0.3), the solution algorithm will require "low-Mach preconditioning". This is basically a time-derivative preconditioning, which will modify the way the solution evolves in pseudo-time towards convergence (or at each time step, for unsteady). The whole idea is to produce a different (!) hyperbolic PDE, but which will converge to the same steady-state (or same quasi steady-state, when unsteady), with wave-speeds that are closer in value, thus having much better convergence characteristics. An additional benefit of low-Mach preconditioning is that the numerical dissipation of the preconditioned scheme is in a sense .. optimal (thus accuracy improves also, besides convergence). The "modified" PDE will look like: (Gamma/dt+dRes/dw)*dw = - Res(w_n) (where Gamma is the time-derivative preconditioning matrix, w is the "work" variable (p,V,T), Q is the conservative variable (rho, rhoV, rhoE)) The non-preconditioned PDE is just: (dQ/dw / dt+dRes/dw)*dw = -Res(w_n) Thus [Gamma] preconditioning matrix replaces the [dQ/dw] Jacobian. 2. When solving the linear system, if the system is ill-conditioned (large condition number) or the matrix is difficult to invert, one would like to replace the problem of solving using the original matrix, with one of (more) solves with a simpler matrix, call it preconditiner, which is a matrix with much better conditioning (and preserves the same "characteristics" of the original matrix -> eigenvalues sign, etc.) and is easier to invert. Of coarse, the final result should satisfy the original linear system of equations. Thus instead of solving A.x + b = 0, you could think of solving in .. correction-form: P.dx = -(A.x + b) where P is the preconditioning matrix, and the update x = x + dx, etc. I gave you a glimpse of the real deal, but there are many papers out there on the subject. John C.S. |
Re: What is Pre-Conditioning?
any books in this subject or background specially when it comes to numerical analysis with fortran
|
All times are GMT -4. The time now is 10:33. |