From d83150be1b56732c7b3c22bddd57a3bf8fca5fff Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 29 Aug 2012 05:50:42 +0000 Subject: [PATCH] now capturing "terminallyIll" for basic solution, should end in a automatic cutback of time steps for the spectral solver --- code/DAMASK_spectral_SolverBasic.f90 | 6 ++++-- code/DAMASK_spectral_Utilities.f90 | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/code/DAMASK_spectral_SolverBasic.f90 b/code/DAMASK_spectral_SolverBasic.f90 index ef43f0638..959610a4c 100644 --- a/code/DAMASK_spectral_SolverBasic.f90 +++ b/code/DAMASK_spectral_SolverBasic.f90 @@ -169,7 +169,8 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F Utilities_constitutiveResponse use FEsolving, only: & - restartWrite + restartWrite, & + terminallyIll implicit none !-------------------------------------------------------------------------------------------------- @@ -248,6 +249,7 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F ! evaluate constitutive response call Utilities_constitutiveResponse(coordinates,F_lastInc,F,temperature,timeinc,& P,C,P_av,ForwardData,rotation_BC) + basic_solution%termIll = terminallyIll ForwardData = .False. !-------------------------------------------------------------------------------------------------- @@ -267,7 +269,7 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F call Utilities_backwardFFT() F = F - reshape(field_real(1:res(1),1:res(2),1:res(3),1:3,1:3),shape(F),order=[3,4,5,1,2]) ! F(x)^(n+1) = F(x)^(n) + correction; *wgt: correcting for missing normalization basic_solution%converged = basic_Converged(err_div,P_av,err_stress,P_av) - if (basic_solution%converged .and. iter > itmin) exit + if ((basic_solution%converged .and. iter > itmin) .or. basic_solution%termIll) exit enddo convergenceLoop end function basic_solution diff --git a/code/DAMASK_spectral_Utilities.f90 b/code/DAMASK_spectral_Utilities.f90 index 2479d8bc3..89d28bad2 100644 --- a/code/DAMASK_spectral_Utilities.f90 +++ b/code/DAMASK_spectral_Utilities.f90 @@ -56,7 +56,7 @@ module DAMASK_spectral_Utilities type solutionState logical :: converged = .false. logical :: regrid = .false. - logical :: term_ill = .false. + logical :: termIll = .false. end type solutionState type boundaryCondition