drop support for ping-pong scheme
This commit is contained in:
parent
f24a580554
commit
82326ed812
|
@ -305,36 +305,6 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
endif ! convergence treatment end
|
endif ! convergence treatment end
|
||||||
|
|
||||||
|
|
||||||
if (usePingPong) then
|
|
||||||
calcMode(nn,cp_en) = .not. calcMode(nn,cp_en) ! ping pong (calc <--> collect)
|
|
||||||
if (calcMode(nn,cp_en)) then ! now --- CALC ---
|
|
||||||
computationMode = CPFEM_CALCRESULTS
|
|
||||||
if (lastLovl /= lovl) then ! first after ping pong
|
|
||||||
call debug_reset() ! resets debugging
|
|
||||||
outdatedFFN1 = .false.
|
|
||||||
cycleCounter = cycleCounter + 1
|
|
||||||
!mesh_cellnode = mesh_build_cellnodes() ! update cell node coordinates
|
|
||||||
!call mesh_build_ipCoordinates() ! update ip coordinates
|
|
||||||
endif
|
|
||||||
if (outdatedByNewInc) then
|
|
||||||
computationMode = ior(computationMode,CPFEM_AGERESULTS) ! calc and age results
|
|
||||||
outdatedByNewInc = .false. ! reset flag
|
|
||||||
endif
|
|
||||||
else ! now --- COLLECT ---
|
|
||||||
computationMode = CPFEM_COLLECT ! plain collect
|
|
||||||
if (lastLovl /= lovl .and. & .not. terminallyIll) &
|
|
||||||
call debug_info() ! first after ping pong reports (meaningful) debugging
|
|
||||||
if (lastIncConverged) then
|
|
||||||
computationMode = ior(computationMode,CPFEM_BACKUPJACOBIAN) ! collect and backup Jacobian after convergence
|
|
||||||
lastIncConverged = .false. ! reset flag
|
|
||||||
endif
|
|
||||||
!do node = 1,theMesh%elem%nNodes
|
|
||||||
!CPnodeID = mesh_element(4+node,cp_en)
|
|
||||||
!mesh_node(1:ndeg,CPnodeID) = mesh_node0(1:ndeg,CPnodeID) + numerics_unitlength * dispt(1:ndeg,node)
|
|
||||||
!enddo
|
|
||||||
endif
|
|
||||||
|
|
||||||
else ! --- PLAIN MODE ---
|
|
||||||
computationMode = CPFEM_CALCRESULTS ! always calc
|
computationMode = CPFEM_CALCRESULTS ! always calc
|
||||||
if (lastLovl /= lovl) then
|
if (lastLovl /= lovl) then
|
||||||
if (.not. terminallyIll) &
|
if (.not. terminallyIll) &
|
||||||
|
@ -353,7 +323,6 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
computationMode = ior(computationMode,CPFEM_BACKUPJACOBIAN) ! backup Jacobian after convergence
|
computationMode = ior(computationMode,CPFEM_BACKUPJACOBIAN) ! backup Jacobian after convergence
|
||||||
lastIncConverged = .false. ! reset flag
|
lastIncConverged = .false. ! reset flag
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
theTime = cptim ! record current starting time
|
theTime = cptim ! record current starting time
|
||||||
theDelta = timinc ! record current time increment
|
theDelta = timinc ! record current time increment
|
||||||
|
@ -362,7 +331,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
endif
|
endif
|
||||||
lastLovl = lovl ! record lovl
|
lastLovl = lovl ! record lovl
|
||||||
|
|
||||||
call CPFEM_general(computationMode,usePingPong,ffn,ffn1,t(1),timinc,m(1),nn,stress,ddsdde)
|
call CPFEM_general(computationMode,.false.,ffn,ffn1,t(1),timinc,m(1),nn,stress,ddsdde)
|
||||||
|
|
||||||
d = ddsdde(1:ngens,1:ngens)
|
d = ddsdde(1:ngens,1:ngens)
|
||||||
s = stress(1:ndi+nshear)
|
s = stress(1:ndi+nshear)
|
||||||
|
|
|
@ -245,7 +245,7 @@ subroutine crystallite_init
|
||||||
enddo
|
enddo
|
||||||
!$OMP END PARALLEL DO
|
!$OMP END PARALLEL DO
|
||||||
|
|
||||||
if(any(plasticState%nonlocal) .and. .not. usePingPong) call IO_error(601) ! exit if nonlocal but no ping-pong ToDo: Why not check earlier? or in nonlocal?
|
!if(any(plasticState%nonlocal) .and. .not. usePingPong) call IO_error(601)
|
||||||
|
|
||||||
crystallite_partionedFp0 = crystallite_Fp0
|
crystallite_partionedFp0 = crystallite_Fp0
|
||||||
crystallite_partionedFi0 = crystallite_Fi0
|
crystallite_partionedFi0 = crystallite_Fi0
|
||||||
|
|
|
@ -28,8 +28,6 @@ module numerics
|
||||||
numerics_unitlength = 1.0_pReal, & !< determines the physical length of one computational length unit
|
numerics_unitlength = 1.0_pReal, & !< determines the physical length of one computational length unit
|
||||||
charLength = 1.0_pReal, & !< characteristic length scale for gradient problems
|
charLength = 1.0_pReal, & !< characteristic length scale for gradient problems
|
||||||
residualStiffness = 1.0e-6_pReal !< non-zero residual damage
|
residualStiffness = 1.0e-6_pReal !< non-zero residual damage
|
||||||
logical, protected, public :: &
|
|
||||||
usePingPong = .true.
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! field parameters:
|
! field parameters:
|
||||||
|
@ -133,8 +131,6 @@ subroutine numerics_init
|
||||||
defgradTolerance = IO_floatValue(line,chunkPos,2)
|
defgradTolerance = IO_floatValue(line,chunkPos,2)
|
||||||
case ('ijacostiffness')
|
case ('ijacostiffness')
|
||||||
iJacoStiffness = IO_intValue(line,chunkPos,2)
|
iJacoStiffness = IO_intValue(line,chunkPos,2)
|
||||||
case ('usepingpong')
|
|
||||||
usepingpong = IO_intValue(line,chunkPos,2) > 0
|
|
||||||
case ('unitlength')
|
case ('unitlength')
|
||||||
numerics_unitlength = IO_floatValue(line,chunkPos,2)
|
numerics_unitlength = IO_floatValue(line,chunkPos,2)
|
||||||
|
|
||||||
|
@ -221,7 +217,6 @@ subroutine numerics_init
|
||||||
! writing parameters to output
|
! writing parameters to output
|
||||||
write(6,'(a24,1x,es8.1)') ' defgradTolerance: ',defgradTolerance
|
write(6,'(a24,1x,es8.1)') ' defgradTolerance: ',defgradTolerance
|
||||||
write(6,'(a24,1x,i8)') ' iJacoStiffness: ',iJacoStiffness
|
write(6,'(a24,1x,i8)') ' iJacoStiffness: ',iJacoStiffness
|
||||||
write(6,'(a24,1x,L8)') ' use ping pong scheme: ',usepingpong
|
|
||||||
write(6,'(a24,1x,es8.1,/)')' unitlength: ',numerics_unitlength
|
write(6,'(a24,1x,es8.1,/)')' unitlength: ',numerics_unitlength
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue