Civil Engineering Reference
In-Depth Information
! IF(j/npri*npri==j)WRITE(11,'(I5,6E12.4)')iel,gc,sigma
END DO gauss_pts_2
END DO elements_5
END DO time_steps
STOP
END PROGRAM p95
New scalar reals:
up
T
holds dot product
{
R
}
k {
R
} k
from (3.22)
New dynamic real arrays:
d
vector used in (3.22)
diag precon
diagonal preconditioner vector
right hand side element matrix from “Biot” analysis
kd
stores augmented diagonal terms
storkd
“old” solution vector
x
“new” solution vector
xnew
For the final program of this chapter, we return to the analysis of a poro-elastic “Biot”
material, but this time using a “mesh free” approach with a pcg solver that involves no
global matrix assembly. The absolute loading version is demonstrated this time as described
by equation (3.112), in which each time step involves matrix-vector multiplication followed
by equation solution. The process may be written as,
[ k e ]
{ φ } 1 =
[ k d ]
{ φ } 0 + {
f
}
(9.5)
which can all be performed at the element level using the pcg algorithm. The subroutine
fmkdke forms the (symmetric) [ k e ] matrix ( ke ) on the left hand side and the (unsymmet-
ric) [ k d ] matrix ( kd ) to the right. The vectors
{ φ } 1 , called phi0 and phi1 in
programming terminology, represent the element displacements and excess pore pressures
at the “old” and “new” time steps.
Inspection of equation (3.112) shows that the left hand side matrix [ k e ] in this analyses
is not positive definite due to the negative [ k c ] terms. Simple diagonal preconditioning does
yield a symmetric positive definite preconditioned matrix however, and this is the method
used in Program 9.5. It is recognised that alternative preconditioning and iterative strategies
may well be more efficient. The ke and kd element matrices are stored as storke and
storkd for use later in the generation of right hand side “loading” and pcg solution
iterations.
The problem solved is the same as was solved by Program 9.3, and data are listed as
Figure 9.15. The extra data items are just the conjugate gradient iteration tolerance and
iteration limit, cg tol and cg limit respectively. The results are listed as Figure 9.16
which are essentially identical to those in Figure 9.10. The output in Figure 9.16 indicates
that approximately 19 pcg iterations were needed at each calculation time step.
{ φ } 0
and
Search WWH ::




Custom Search