From 54748bb6a5f309b34c79bc29e7735673492bc35f Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Thu, 4 Nov 2010 18:15:50 +0000 Subject: [PATCH] cycleCounter reset was 0 now -1 ==> occurence of jacobian calculation is now correct, i.e. always calc at start of new increment --- code/mpie_cpfem_marc.f90 | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/code/mpie_cpfem_marc.f90 b/code/mpie_cpfem_marc.f90 index a0edc9057..3a242b177 100644 --- a/code/mpie_cpfem_marc.f90 +++ b/code/mpie_cpfem_marc.f90 @@ -224,8 +224,8 @@ subroutine hypela2(& real(pReal), dimension(6) :: stress real(pReal), dimension(6,6) :: ddsdde - real(pReal), dimension (3,3) :: pstress ! not used, but needed for call of cpfem_general - real(pReal), dimension (3,3,3,3) :: dPdF ! not used, but needed for call of cpfem_general + 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 @@ -240,11 +240,11 @@ subroutine hypela2(& else ! stress requested (lovl == 6) cp_en = mesh_FEasCP('elem',n(1)) - if (cptim > theTime .or. inc /= theInc) then ! reached convergence + if (cptim > theTime .or. inc /= theInc) then ! reached "convergence" terminallyIll = .false. - cycleCounter = 0 - if (inc == 0) then ! start of analysis + cycleCounter = -1 ! first calc step increments this to cycle = 0 + if (inc == 0) then ! >> start of analysis << lastIncConverged = .false. ! no Jacobian backup outdatedByNewInc = .false. ! no aging of state lastMode = .false. ! pretend last step was collection @@ -252,7 +252,7 @@ subroutine hypela2(& !$OMP CRITICAL (write2out) write (6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> start of analysis..!'; call flush(6) !$OMP END CRITICAL (write2out) - else if (inc - theInc > 1) then ! restart of broken analysis + else if (inc - theInc > 1) then ! >> restart of broken analysis << lastIncConverged = .false. ! no Jacobian backup outdatedByNewInc = .false. ! no aging of state lastMode = .true. ! pretend last step was calculation @@ -260,20 +260,20 @@ subroutine hypela2(& !$OMP CRITICAL (write2out) write (6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> restart of analysis..!'; call flush(6) !$OMP END CRITICAL (write2out) - else ! just a new inc - lastIncConverged = .true. ! Jacobian backup - outdatedByNewInc = .true. ! aging of state + else ! >> just the next inc << + lastIncConverged = .true. ! request Jacobian backup + outdatedByNewInc = .true. ! request aging of state lastMode = .true. ! assure last step was calculation calcMode = .true. ! assure last step was calculation !$OMP CRITICAL (write2out) - write (6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> former increment converged..!'; call flush(6) + write (6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> new increment..!'; call flush(6) !$OMP END CRITICAL (write2out) endif - else if ( timinc < theDelta ) then ! cutBack + else if ( timinc < theDelta ) then ! >> cutBack << terminallyIll = .false. - cycleCounter = 0 + cycleCounter = -1 ! first calc step increments this to cycle = 0 calcMode = .true. ! pretend last step was calculation !$OMP CRITICAL (write2out) write(6,'(i6,x,i2,x,a)') n(1),nn,'<< hypela2 >> cutback detected..!'; call flush(6) @@ -287,10 +287,10 @@ subroutine hypela2(& if ( lastMode /= calcMode(nn,cp_en) ) then ! first after ping pong call debug_reset() ! resets debugging outdatedFFN1 = .false. - cycleCounter = cycleCounter + 1 + cycleCounter = cycleCounter + 1_pInt endif if ( outdatedByNewInc ) then - outdatedByNewInc = .false. + outdatedByNewInc = .false. ! reset flag computationMode = 1 ! calc and age results else computationMode = 2 ! plain calc @@ -299,7 +299,7 @@ subroutine hypela2(& if ( lastMode /= calcMode(nn,cp_en) .and. & .not. terminallyIll ) call debug_info() ! first after ping pong reports (meaningful) debugging if ( lastIncConverged ) then - lastIncConverged = .false. + lastIncConverged = .false. ! reset flag computationMode = 4 ! collect and backup Jacobian after convergence else computationMode = 3 ! plain collect