Civil Engineering Reference
In-Depth Information
!----------------------------pcg process ---------------------------------
up =DOT_PRODUCT_P(ans_pp,d_pp); alpha=up/DOT_PRODUCT_P(p_pp,u_pp)
xnew_pp = x_pp + p_pp* alpha; ans_pp = ans_pp - u_pp*alpha
d_pp = diag_precon_pp*ans_pp
beta = DOT_PRODUCT_P(ans_pp,d_pp)/up; p_pp = d_pp + p_pp * beta
CALL checon_par(xnew_pp,x_pp,cjtol,cj_converged,neq_pp)
IF(cj_converged.OR.cjiters==cjits) EXIT
END DO conjugate_gradients
!----------- end of pcg process-------------------------------------------
ans_pp = xnew_pp; loads_pp = ans_pp
IF(numpe==1) THEN
WRITE(11,'(A,I5,A)')
&
"Conjugate gradients took ",cjiters, " iterations to converge"
WRITE(11,'(A)') " The nodal displacements and porepressures are
:"
WRITE(11,'(4E12.4)') ans_pp(1:4)
END IF
!-------------------recover stresses at gauss-points --------------------
eld_pp = .0_iwp; CALL gather(ans_pp,eld_pp) ; iel = 1
coord=p_g_co_pp(:,:,iel) ; eld = eld_pp(:,iel)
IF(numpe==1) WRITE(11,'(A,I5,A)') &
"The Gauss Point effective stresses for element",iel," are"
gauss_pts_2: DO i = 1,nip
CALL shape_der (der,points,i); jac= MATMUL(der,coord)
CALL invert ( jac ); deriv= MATMUL(jac,der)
CALL beemat(bee,deriv);sigma= MATMUL(dee,MATMUL(bee,eld))
IF(numpe==1.AND.i==1) THEN
WRITE(11,'(A,I5)') "Point ",i;WRITE(11,'(6E12.4)') sigma
END IF
END DO gauss_pts_2
END DO time_steps
IF(numpe==1) WRITE(11,*) "This analysis took :", elap_time( )-timest(1)
CALL shutdown( )
END PROGRAM p127
New scalar integer:
ns
timestep counter
New dynamic real arrays:
ans_pp distributed answer vector
c coupling matrix
kd total element matrix
storkd_pp distributed kd matrices
vol
array for volumetric strain
array for fluid volumetric strain
volf
Again the main differences between serial and parallel programs relate to the change
in geometry from 2D to 3D. Loop elements_1 uses geometry_20bxz in place of
geom_rect in serial and loop elements_2 with embedded gauss_pts_1 is almost
identical although the parallel version assumes constant element properties. Ramp loading
is also assumed rather than the general pattern allowed in serial (2D). Loop elements_4
carries over from serial to parallel but in the latter case only a few surface displacements
are printed and only the stresses in the “first” (central surface) element are computed
and printed. Data are listed as Figure 12.32 with results as Figure 12.33 and performance
statistics as Figure 12.34.
Search WWH ::




Custom Search