Civil Engineering Reference
In-Depth Information
CALL deemat(dee,prop(1,etype(iel)),prop(2,etype(iel))); num=g_num(:,iel)
coord=TRANSPOSE(g_coord(:,num)); g=g_g(:,iel); eld=loads(g)
gauss_pts_2: DO i=1,nip
CALL shape_der(der,points,i); CALL shape_fun(fun,points,i)
gc=MATMUL(fun,coord); jac=MATMUL(der,coord); CALL invert(jac)
deriv=MATMUL(jac,der); CALL beemat(bee,deriv)
sigma=MATMUL(dee,MATMUL(bee,eld)); WRITE(11,'(I8,4X,3E12.4)')iel,gc
WRITE(11,'(6E12.4)')sigma
END DO gauss_pts_2
END DO elements_3
STOP
END PROGRAM p55
New scalar integers:
cg iters
pcg iteration counter
pcg iteration ceiling
cg limit
New scalar reals:
alpha
α from equations (3.22)
β from equations (3.22)
beta
pcg convergence tolerance
cg tol
T
holds dot product
{
R
}
k {
R
} k
from equations (3.22)
up
Scalar logical:
cg converged set to .TRUE. if pcg process has converged
New dynamic real arrays:
d
preconditioned rhs vector
diagonal preconditioner vector
diag precon
“descent” vector used in equations (3.22)
p
stores augmented diagonal terms
store
holds element stiffness matrices
storkm
vector used in equations (3.22)
u
“old” solution vector
x
xnew
“new” solution vector
Section 3.5 described a “mesh-free” approach to the solution of linear static equilibrium
problems in which the equation solution process could be carried out by the precondi-
tioned conjugate gradient (pcg) technique without ever assembling element matrices into a
global (stiffness) matrix. The essential process was described by equations (3.20) to (3.23).
Program 5.5 will now be used to solve once more the problem illustrated in Figure 5.24
and previously solved using an assembly technique by Program 5.3. A structure chart for
the pcg algorithm is shown in Figure 5.35.
All of the elements are looped in order to compute their stiffness matrices, which are
stored in the array storkm for use later in the pcg solution algorithm. This loop (called
Search WWH ::




Custom Search