now reporting extreme values of stress and tangent, that were returned to marc, in output file
This commit is contained in:
parent
7a7ca1aab7
commit
0a30fb739a
|
@ -229,7 +229,12 @@ subroutine hypela2(&
|
|||
real(pReal), dimension (3,3) :: pstress ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
||||
real(pReal), dimension (3,3,3,3) :: dPdF ! dummy argument for call of cpfem_general (used by mpie_spectral)
|
||||
|
||||
integer(pInt) computationMode, i, cp_en
|
||||
integer(pInt) computationMode, i, cp_en, &
|
||||
s_max_e, s_max_i, s_min_e, s_min_i, &
|
||||
d_max_e, d_max_i, d_min_e, d_min_i
|
||||
real(pReal) s_max, s_min, &
|
||||
d_max, d_min
|
||||
|
||||
! OpenMP variable
|
||||
!$ integer(pInt) defaultNumThreadsInt ! default value set by Marc
|
||||
|
||||
|
@ -297,6 +302,10 @@ subroutine hypela2(&
|
|||
call debug_reset() ! resets debugging
|
||||
outdatedFFN1 = .false.
|
||||
cycleCounter = cycleCounter + 1_pInt
|
||||
s_max = - 1.0_pReal / 0.0_pReal ! reset stored max/min values
|
||||
s_min = + 1.0_pReal / 0.0_pReal
|
||||
d_max = - 1.0_pReal / 0.0_pReal
|
||||
d_min = + 1.0_pReal / 0.0_pReal
|
||||
endif
|
||||
if ( outdatedByNewInc ) then
|
||||
outdatedByNewInc = .false. ! reset flag
|
||||
|
@ -306,7 +315,18 @@ subroutine hypela2(&
|
|||
endif
|
||||
else ! now --- COLLECT ---
|
||||
if ( lastMode /= calcMode(nn,cp_en) .and. &
|
||||
.not. terminallyIll ) call debug_info() ! first after ping pong reports (meaningful) debugging
|
||||
.not. terminallyIll ) then
|
||||
call debug_info() ! first after ping pong reports (meaningful) debugging
|
||||
write(6,*)
|
||||
write(6,*) 'REPORT EXTREME VALUES OF RETURNED VARIABLES'
|
||||
write(6,*)
|
||||
write(6,'(a39)') ' value el ip'
|
||||
write(6,'(a14,x,e12.3,x,i6,x,i4)') 'stress min :', s_min, s_min_e, s_min_i
|
||||
write(6,'(a14,x,e12.3,x,i6,x,i4)') ' max :', s_max, s_max_e, s_max_i
|
||||
write(6,'(a14,x,e12.3,x,i6,x,i4)') 'jacobian min :', d_min, d_min_e, d_min_i
|
||||
write(6,'(a14,x,e12.3,x,i6,x,i4)') ' max :', d_max, d_max_e, d_max_i
|
||||
write(6,*)
|
||||
endif
|
||||
if ( lastIncConverged ) then
|
||||
lastIncConverged = .false. ! reset flag
|
||||
computationMode = 4 ! collect and backup Jacobian after convergence
|
||||
|
@ -330,6 +350,29 @@ subroutine hypela2(&
|
|||
forall(i=1:ngens) d(1:ngens,i) = invnrmMandel(i)*ddsdde(1:ngens,i)*invnrmMandel(1:ngens)
|
||||
s(1:ngens) = stress(1:ngens)*invnrmMandel(1:ngens)
|
||||
if(symmetricSolver) d(1:ngens,1:ngens) = 0.5_pReal*(d(1:ngens,1:ngens)+transpose(d(1:ngens,1:ngens)))
|
||||
|
||||
if (calcMode(nn,cp_en)) then
|
||||
if (maxval(s(1:ngens)) > s_max) then ! remember extreme values of stress and jacobian
|
||||
s_max_e = cp_en
|
||||
s_max_i = nn
|
||||
s_max = maxval(s(1:ngens))
|
||||
endif
|
||||
if (minval(s(1:ngens)) < s_min) then
|
||||
s_min_e = cp_en
|
||||
s_min_i = nn
|
||||
s_min = minval(s(1:ngens))
|
||||
endif
|
||||
if (maxval(d(1:ngens,1:ngens)) > d_max) then
|
||||
d_max_e = cp_en
|
||||
d_max_i = nn
|
||||
d_max = maxval(d(1:ngens,1:ngens))
|
||||
endif
|
||||
if (minval(d(1:ngens,1:ngens)) < d_min) then
|
||||
d_min_e = cp_en
|
||||
d_min_i = nn
|
||||
d_min = minval(d(1:ngens,1:ngens))
|
||||
endif
|
||||
endif
|
||||
|
||||
!$ call omp_set_num_threads(defaultNumThreadsInt) ! reset number of threads to stored default value
|
||||
|
||||
|
|
Loading…
Reference in New Issue