CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   What is Pre-Conditioning? (https://www.cfd-online.com/Forums/main/15065-what-pre-conditioning.html)

Rif April 11, 2008 21:43

What is Pre-Conditioning?
 
Can anybody tell me what is meant by pre-conditioning in a cfd simulation?

Cheerios Rif

BastiL April 12, 2008 11:08

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.

Cfd-hobby April 12, 2008 14:37

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.

adam April 13, 2008 14:34

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.