fixed cut back issue with Marc. Necessity to introduce compMode 7 to capture tangent restoration at lovl=4 call.
This commit is contained in:
parent
974116808b
commit
992077e88e
|
@ -297,7 +297,8 @@ subroutine CPFEM_general(mode, ffn, ffn1, Temperature, dt, element, IP, cauchySt
|
|||
CPFEM_calc_done = .false.
|
||||
|
||||
! --+>> RECYCLING OF FORMER RESULTS (MARC SPECIALTY) <<+--
|
||||
case (6)
|
||||
case (6,7)
|
||||
if (mode == 7) CPFEM_dcsde = CPFEM_dcsde_knownGood ! --+>> RESTORE CONSISTENT JACOBIAN FROM FORMER CONVERGED INC
|
||||
! do nothing
|
||||
|
||||
end select
|
||||
|
|
|
@ -190,11 +190,15 @@ subroutine hypela2(&
|
|||
|
||||
computationMode = 2 ! calc + init
|
||||
!$OMP CRITICAL (write2out)
|
||||
write (6,'(i6,x,i2,x,a)') n(1),nn,'first call special case..!'; call flush(6)
|
||||
write (6,'(a,x,i6,x,i2)') '<< hypela2 >> first call special case..!',n(1),nn; call flush(6)
|
||||
!$OMP END CRITICAL (write2out)
|
||||
|
||||
else if (lovl == 4) then ! Marc requires stiffness in separate call
|
||||
computationMode = 6 ! --> just return known value
|
||||
if ( timinc < theDelta ) then ! first after cutback
|
||||
computationMode = 7 ! --> restore tangent and return
|
||||
else
|
||||
computationMode = 6 ! --> just return known value
|
||||
endif
|
||||
else
|
||||
cp_en = mesh_FEasCP('elem',n(1))
|
||||
if (theTime < cptim .or. theInc /= inc) then ! reached convergence
|
||||
|
@ -203,17 +207,16 @@ subroutine hypela2(&
|
|||
terminallyIll = .false.
|
||||
cycleCounter = 0
|
||||
!$OMP CRITICAL (write2out)
|
||||
write (6,'(i6,x,i2,x,a)') n(1),nn,'lastIncConverged + outdated'; call flush(6)
|
||||
write (6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> lastIncConverged + outdated'; call flush(6)
|
||||
!$OMP END CRITICAL (write2out)
|
||||
endif
|
||||
|
||||
if ( timinc < theDelta ) then ! cutBack
|
||||
calcMode = .true. ! pretend last step was calculation
|
||||
cutBack = .true.
|
||||
terminallyIll = .false.
|
||||
cycleCounter = 0
|
||||
!$OMP CRITICAL (write2out)
|
||||
write(6,'(i6,x,i2,x,a)') n(1),nn,'cutback detected..!'; call flush(6)
|
||||
write(6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> cutback detected..!'; call flush(6)
|
||||
!$OMP END CRITICAL (write2out)
|
||||
endif
|
||||
|
||||
|
@ -232,13 +235,10 @@ subroutine hypela2(&
|
|||
computationMode = 2 ! plain calc
|
||||
endif
|
||||
else ! now collect
|
||||
if ( lastMode .ne. calcMode(nn,cp_en) ) call debug_info() ! first after ping pong reports debugging
|
||||
if ( lastMode /= calcMode(nn,cp_en) ) call debug_info() ! first after ping pong reports debugging
|
||||
if ( lastIncConverged ) then
|
||||
lastIncConverged = .false.
|
||||
computationMode = 4 ! collect and backup Jacobian after convergence
|
||||
elseif ( cutBack ) then
|
||||
cutBack = .false.
|
||||
computationMode = 5 ! collect and restore Jacobian after cutback
|
||||
else
|
||||
computationMode = 3 ! plain collect
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue