now capturing "terminallyIll" for basic solution, should end in a automatic cutback of time steps for the spectral solver
This commit is contained in:
parent
3106b8ce0c
commit
d83150be1b
|
@ -169,7 +169,8 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F
|
||||||
Utilities_constitutiveResponse
|
Utilities_constitutiveResponse
|
||||||
|
|
||||||
use FEsolving, only: &
|
use FEsolving, only: &
|
||||||
restartWrite
|
restartWrite, &
|
||||||
|
terminallyIll
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -248,6 +249,7 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F
|
||||||
! evaluate constitutive response
|
! evaluate constitutive response
|
||||||
call Utilities_constitutiveResponse(coordinates,F_lastInc,F,temperature,timeinc,&
|
call Utilities_constitutiveResponse(coordinates,F_lastInc,F,temperature,timeinc,&
|
||||||
P,C,P_av,ForwardData,rotation_BC)
|
P,C,P_av,ForwardData,rotation_BC)
|
||||||
|
basic_solution%termIll = terminallyIll
|
||||||
ForwardData = .False.
|
ForwardData = .False.
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -267,7 +269,7 @@ type(solutionState) function basic_solution(guessmode,timeinc,timeinc_old,P_BC,F
|
||||||
call Utilities_backwardFFT()
|
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
|
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)
|
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
|
enddo convergenceLoop
|
||||||
|
|
||||||
end function basic_solution
|
end function basic_solution
|
||||||
|
|
|
@ -56,7 +56,7 @@ module DAMASK_spectral_Utilities
|
||||||
type solutionState
|
type solutionState
|
||||||
logical :: converged = .false.
|
logical :: converged = .false.
|
||||||
logical :: regrid = .false.
|
logical :: regrid = .false.
|
||||||
logical :: term_ill = .false.
|
logical :: termIll = .false.
|
||||||
end type solutionState
|
end type solutionState
|
||||||
|
|
||||||
type boundaryCondition
|
type boundaryCondition
|
||||||
|
|
Loading…
Reference in New Issue