extra variable not needed
This commit is contained in:
parent
e3958263e3
commit
a4c52ec1fa
|
@ -184,8 +184,6 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
e, & !< element number
|
e, & !< element number
|
||||||
mySource, &
|
mySource, &
|
||||||
myNgrains
|
myNgrains
|
||||||
real(pReal), dimension(3,3) :: &
|
|
||||||
subF
|
|
||||||
real(pReal), dimension(discretization_nIP,discretization_nElem) :: &
|
real(pReal), dimension(discretization_nIP,discretization_nElem) :: &
|
||||||
subFrac, &
|
subFrac, &
|
||||||
subStep
|
subStep
|
||||||
|
@ -376,16 +374,15 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! deformation partitioning
|
! deformation partitioning
|
||||||
! based on materialpoint_subF0,.._subF,crystallite_partionedF0, and homogenization_state,
|
!$OMP PARALLEL DO PRIVATE(myNgrains)
|
||||||
! results in crystallite_partionedF
|
|
||||||
!$OMP PARALLEL DO PRIVATE(myNgrains,subF)
|
|
||||||
elementLooping2: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
elementLooping2: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
||||||
myNgrains = homogenization_Ngrains(material_homogenizationAt(e))
|
myNgrains = homogenization_Ngrains(material_homogenizationAt(e))
|
||||||
IpLooping2: do i = FEsolving_execIP(1),FEsolving_execIP(2)
|
IpLooping2: do i = FEsolving_execIP(1),FEsolving_execIP(2)
|
||||||
if(requested(i,e) .and. .not. doneAndHappy(1,i,e)) then ! requested but not yet done
|
if(requested(i,e) .and. .not. doneAndHappy(1,i,e)) then ! requested but not yet done
|
||||||
subF = materialpoint_F0(1:3,1:3,i,e) &
|
call partitionDeformation(materialpoint_F0(1:3,1:3,i,e) &
|
||||||
+ (materialpoint_F(1:3,1:3,i,e)-materialpoint_F0(1:3,1:3,i,e))*(subStep(i,e)+subFrac(i,e))
|
+ (materialpoint_F(1:3,1:3,i,e)-materialpoint_F0(1:3,1:3,i,e))&
|
||||||
call partitionDeformation(subF,i,e) ! partition deformation onto constituents
|
*(subStep(i,e)+subFrac(i,e)), &
|
||||||
|
i,e)
|
||||||
crystallite_dt(1:myNgrains,i,e) = dt*subStep(i,e) ! propagate materialpoint dt to grains
|
crystallite_dt(1:myNgrains,i,e) = dt*subStep(i,e) ! propagate materialpoint dt to grains
|
||||||
crystallite_requested(1:myNgrains,i,e) = .true. ! request calculation for constituents
|
crystallite_requested(1:myNgrains,i,e) = .true. ! request calculation for constituents
|
||||||
else
|
else
|
||||||
|
@ -397,23 +394,22 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! crystallite integration
|
! crystallite integration
|
||||||
! based on crystallite_partionedF0,.._partionedF
|
|
||||||
! incrementing by crystallite_dt
|
|
||||||
|
|
||||||
converged = crystallite_stress() !ToDo: MD not sure if that is the best logic
|
converged = crystallite_stress() !ToDo: MD not sure if that is the best logic
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! state update
|
! state update
|
||||||
!$OMP PARALLEL DO PRIVATE(subF)
|
!$OMP PARALLEL DO
|
||||||
elementLooping3: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
elementLooping3: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
||||||
IpLooping3: do i = FEsolving_execIP(1),FEsolving_execIP(2)
|
IpLooping3: do i = FEsolving_execIP(1),FEsolving_execIP(2)
|
||||||
if (requested(i,e) .and. .not. doneAndHappy(1,i,e)) then
|
if (requested(i,e) .and. .not. doneAndHappy(1,i,e)) then
|
||||||
if (.not. converged(i,e)) then
|
if (.not. converged(i,e)) then
|
||||||
doneAndHappy(1:2,i,e) = [.true.,.false.]
|
doneAndHappy(1:2,i,e) = [.true.,.false.]
|
||||||
else
|
else
|
||||||
subF = materialpoint_F0(1:3,1:3,i,e) &
|
doneAndHappy(1:2,i,e) = updateState(dt*subStep(i,e), &
|
||||||
+ (materialpoint_F(1:3,1:3,i,e)-materialpoint_F0(1:3,1:3,i,e))*(subStep(i,e)+subFrac(i,e))
|
materialpoint_F0(1:3,1:3,i,e) &
|
||||||
doneAndHappy(1:2,i,e) = updateState(dt*subStep(i,e),subF,i,e)
|
+ (materialpoint_F(1:3,1:3,i,e)-materialpoint_F0(1:3,1:3,i,e)) &
|
||||||
|
*(subStep(i,e)+subFrac(i,e)), &
|
||||||
|
i,e)
|
||||||
converged(i,e) = all(doneAndHappy(1:2,i,e)) ! converged if done and happy
|
converged(i,e) = all(doneAndHappy(1:2,i,e)) ! converged if done and happy
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue