Civil Engineering Reference
In-Depth Information
or
[ K m ][ P ]
{
U
} =
[ P ]
{
F
}
(3.25)
With excessive computational effort, [ P ] could be calculated as the inverse of [ K m ]and
the solution obtained in one step as,
[ K m ] 1
{
U
} =
{
F
}
(3.26)
In practice it turns out that relatively crude approximations to [ K m ] 1 can be used to
construct [ P ] and hence be used in the iteration process. For example, “diagonal” precon-
ditioning uses the inverse of the diagonal terms of [ K m ] as a vector
. This approach
is easy to program and carries over easily to the parallel solutions in Chapter 12. Alter-
natively, element-by-element preconditioning (Hughes et al ., 1983; Smith et al ., 1989) can
be exploited, which also carries over in parallel.
{
P
}
3.5.3 Unsymmetric systems
It was shown in Section 2.16 that finite element discretisation of the Navier-Stokes
equations leads to unsymmetric element matrices which, if assembled, result in unsym-
metric global systems of equations. When these are solved (see Chapter 9) appropriate
Gaussian elimination solvers have to be used.
In an element-by-element context, we therefore seek equivalent iterative techniques
to the conjugate gradient processes described above for symmetric systems. The essential
feature that such a technique must possess is that it consists only of matrix-vector mul-
tiplications which can be carried out by (3.23) together with vector operations and inner
products which are readily parallelisable.
Kelley (1995) and Greenbaum (1997) have described variations on this theme. Typical
methods are:
GMRES
Generalised minimum residual
BiCGStab
Stabilised bi-conjugate gradient
BiCGStab(l)
Stabilised hybrid bi-conjugate gradient
all of which have been applied to finite element systems by Smith (2000), who includes
code for both left- and right-preconditioned BiCGStab following (3.24) and (3.25).
In this topic, the method selected is BiCGStab(l), described by Sleijpen et al . (1994)
for example. The BiCGStab algorithm is
{
P
} 0 ={
} 0 ={
}−
{
} 0
R
F
[ K m ]
U
(3.27)
{
} 0 is the “residual” or error for a first trial
{
} 0 .
where
R
U
{ R 0 }
0 { R 0 } =
T
We then choose a vector
such that
{
R
}
0, followed by k steps of the
process:
(a)
{
Q
} k 1 =
[ K m ]
{
P
} k 1
{
U
} k
={
U
} k 1 + α k 1 {
P
} k 1
1
2
Search WWH ::




Custom Search