Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ковалевский. Книжки по геостатистике / Basics_of_Reservoir_Simulation_with_eclipse_simulator.pdf
Скачиваний:
172
Добавлен:
03.06.2015
Размер:
1.34 Mб
Скачать

Preconditioning and Orthomin

If A has been preconditioned, the equations in the ORTHOMIN description are changed by replacing A with AB-1 and x with Bx. Then Equations (60) – (66) become,

Bxk +1 = Bxk +ωk qk xk +1 = xk +ωk B1qk

(68)

rk +1 = rk ωk AB1qk

(69)

ωk =

 

rk AB1qk

 

(70)

(AB1qk ) (AB1qk )

 

 

αik = −

(AB1rk +1) (AB1qi )

 

(71)

(AB1qi ) (AB1qi )

 

 

 

Note that q always appears as B-1q. We can therefore redefine the q-vector to B-1q, whereby the Equations (68) – (71) become almost identical to their origins.

The pseudo-algorithm for orthomin with preconditioning is then,

Set initial vector x0. Define r0 = b Ax0 and q0 = B-1r0. Set iteration counter k = 0.

while(not converged or k > max permitted number of iterations) {

ω

k

=

rk Aqk

 

Aqk Aqk

 

 

 

xk +1 = xk +ωk qk

rk +1 = rk ωk Aqk

for(i = 0,...,k) {

αk = −(AB1rk+1) (Aqi )

i(Aqi ) (Aqi )

}

k

qk +1 = B1rk +1 + αik qi i =0

}

(We have omitted the non-essential required modification if only a limited number of q-vectors can be stored.)

The question of how to determine a good or optimal preconditioner B is still open. Eclipse does this by a technique called Nested Factorisation, which is the last element of the Eclipse linear solver procedure.

Determining a preconditioner – Nested Factorisation

Recall the structure for the 7-point stencil scheme, which was a 7-diagonal matrix. We rewrite the example of Figure 30 with a slightly different notation,

97

D

U1

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

 

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

U3

U3

 

 

 

 

 

 

 

 

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L1

D

 

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

 

D

U1

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

 

 

 

U2

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

 

D

U1

 

 

 

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

 

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

 

 

 

 

 

 

 

 

U3

 

 

 

 

 

 

 

 

L2

 

 

L1

D

 

 

 

 

 

 

 

 

 

 

 

U3

L3

 

 

 

 

 

 

 

 

 

 

 

D

U1

U1

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

 

 

 

L1

D

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

 

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

 

 

 

L1

D

 

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

 

D

U1

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

L2

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

 

 

L1

D

U1

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

L1

D

 

 

 

U2

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

 

D

U1

 

 

 

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

 

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

L1

D

U1

 

 

 

 

 

 

 

 

 

 

 

L3

 

 

 

 

 

 

 

L2

 

 

L1

D

Figure 32. Labelling the seven diagonals in a 7-diagonal matrix

The nonzero entries in the matrix have been labelled D for the main diagonal, and L1, L2, L3 for the lower diagonals, U1, U2, U3 for the upper diagonals. The way the matrix was set up, the D, L1, and U1 correspond to communication between the centre cell (i, j, k) and the neighbours in the x-direction (i±1, j, k). This is a result of the natural ordering, and as noted earlier, the structure of the matrix is a result of the ordering used.

In the natural, or “book” ordering, by Eclipse terminology, the x-direction would be denoted as “direction 1”, the y-direction as “direction 2”, and the z-direction as “direction 3”. I.e. “direction 1” is the one where the index changes fastest, “direction 2” is used for the second fastest, and “direction 3” for the slowest.

All permutations of “direction 1” – “direction 2” – “direction 3” will give the 7-diagonal matrix structure seen in Figure 32, but the communication direction will be different between the D, L1-3, and U1-3. E.g., if the z-direction is chosen as “direction 1”, L1, D, and U1 will correspond to communication between (i, j, k) and (i, j, k±1).

So irrespective of the ordering scheme, the coefficient matrix will be (using D for the matrix comprised of all the D-elements etc.),

A = D + L1 + U1 + L2 + U2 + L3 + U3

(Reminder: All the “elements” in Figure 32 are actually 2x2 matrices for two-phase flow, 3x3 for three-phase.)

Without proof we state that in general the most efficient ordering scheme with respect to solving the system is such that “direction 1” is the direction of highest average transmissibility, “direction 2” next highest, and “direction 3” lowest transmissibility.

This criterion for setting the ordering scheme is used as default by Eclipse, which means that in most simulations, “direction 1” will be the z-direction (z-permeability is normally lowest, but the average cell thicknesses are typically much smaller than X,Y lengths.)

Users can change the ordering by the SOLVDIRS keyword. (Generally not recommended.)

98

Соседние файлы в папке Ковалевский. Книжки по геостатистике