Civil Engineering Reference
In-Depth Information
neq = reduce(neq_temp) ; nn = reduce(nn_temp)
CALL calc_neq_pp ; CALL make_ggl(g_g_pp); diag_precon_tmp = .0_iwp
DO i=1,neq_pp; IF(nres==ieq_start+i-1) THEN; it = numpe;is = i; END IF
END DO
ALLOCATE(p_pp(neq_pp),r_pp(neq_pp),x_pp(neq_pp),xnew_pp(neq_pp), &
u_pp(neq_pp),diag_precon_pp(neq_pp),d_pp(neq_pp),store_pp(neq_pp))
r_pp = .0_iwp; p_pp = .0_iwp; x_pp = .0_iwp; xnew_pp = .0_iwp
diag_precon_pp = .0_iwp ; store_pp = .0_iwp
!------- element stiffness integration and build the preconditioner-------
iel=1;CALL geometry_8bxz(iel,nxe,nze,aa,bb,cc,coord,num)
kcx = .0_iwp; kcy = .0_iwp; kcz = .0_iwp
gauss_pts_1: DO i=1,nip
CALL shape_der (der,points,i) ; jac = MATMUL(der,coord)
det=determinant(jac);CALL invert(jac);deriv = MATMUL(jac,der)
row(1,:) = deriv(1,:); eld=deriv(1,:); col(:,1) = eld
kcx = kcx + MATMUL(col,row)*det*weights(i)
row(1,:) = deriv(2,:); eld=deriv(2,:); col(:,1) = eld
kcy = kcy + MATMUL(col,row)*det*weights(i)
row(1,:) = deriv(3,:); eld=deriv(3,:); col(:,1) = eld
kcz = kcz + MATMUL(col,row)*det*weights(i)
END DO gauss_pts_1 ; kc = kcx*kx + kcy*ky + kcz*kz
elements_1: DO iel = 1,nels_pp
DO k=1,ntot
diag_precon_tmp(k,iel)=diag_precon_tmp(k,iel)+kc(k,k);END DO
END DO elements_1
CALL scatter(diag_precon_pp,diag_precon_tmp);DEALLOCATE(diag_precon_tmp)
IF(numpe==it)THEN
OPEN (11,FILE='p123.res',STATUS='REPLACE',ACTION='WRITE')
WRITE(11,'(A,I5,A)') "This job ran on ", npes , " processors"
WRITE(11,'(A)') "Global coordinates and node numbers "
DO i = 1 , nels_pp,nels_pp-1
WRITE(11,'(A,I8)')"Element ",i ; num = g_num_pp(:,i)
DO k = 1,nod;WRITE(11,'(A,I8,3E12.4)')
&
" Node",num(k),p_g_co_pp(k,:,i); END DO
END DO
WRITE(11,'(A,3(I8,A))') "There are ",nn," nodes",nr,
&
" restrained and", neq," equations"
WRITE(11,*) "Time after setup is
:", elap_time( ) - timest(1)
END IF
!-------------------- get starting r--------------------------------------
IF(loaded_freedoms>0) THEN
CALL reindex_fixed_nodes
&
(ieq_start,no,no_local_temp,num_no,no_index_start)
ALLOCATE(no_local(1:num_no)) ; no_local = no_local_temp(1:num_no)
DEALLOCATE(no_local_temp)
DO i = 1 , num_no
r_pp(no_local(i)-ieq_start+1) = val(no_index_start + i - 1)
END DO
END IF ; q = SUM_P(r_pp)
IF(numpe==it)THEN ; WRITE(11,'(A,E12.4)') "The total load is ", q
END IF
IF(fixed_freedoms>0) THEN
CALL reindex_fixed_nodes(ieq_start,no_f,no_local_temp_f,
&
num_no,no_index_start)
ALLOCATE(no_local(1:num_no)) ; no_local = no_local_temp_f(1:num_no)
DEALLOCATE(no_local_temp_f)
DO i = 1 , num_no ; j=no_local(i) - ieq_start + 1
diag_precon_pp(j)=diag_precon_pp(j) + penalty
Search WWH ::




Custom Search