no need to perform the state integration
This commit is contained in:
parent
7890268128
commit
8a253856f1
|
@ -79,7 +79,6 @@ module plastic_phenopowerlaw
|
||||||
|
|
||||||
type, private :: tPhenopowerlawState
|
type, private :: tPhenopowerlawState
|
||||||
real(pReal), pointer, dimension(:) :: &
|
real(pReal), pointer, dimension(:) :: &
|
||||||
sumGamma, & ! ToDo: why not make a dependent state?
|
|
||||||
sumF ! ToDo: why not make a dependent state?
|
sumF ! ToDo: why not make a dependent state?
|
||||||
real(pReal), pointer, dimension(:,:) :: &
|
real(pReal), pointer, dimension(:,:) :: &
|
||||||
xi_slip, &
|
xi_slip, &
|
||||||
|
@ -351,7 +350,7 @@ subroutine plastic_phenopowerlaw_init
|
||||||
NipcMyPhase = count(material_phase == p) ! number of IPCs containing my phase
|
NipcMyPhase = count(material_phase == p) ! number of IPCs containing my phase
|
||||||
sizeState = size(['tau_slip ','gamma_slip']) * prm%TotalNslip &
|
sizeState = size(['tau_slip ','gamma_slip']) * prm%TotalNslip &
|
||||||
+ size(['tau_twin ','gamma_twin']) * prm%TotalNtwin &
|
+ size(['tau_twin ','gamma_twin']) * prm%TotalNtwin &
|
||||||
+ size(['sum(gamma)','sum(f) ']) ! ToDo: only needed if either twin or slip active!
|
+ size(['sum(f) ']) ! ToDo: only needed if either twin or slip active!
|
||||||
sizeDotState = sizeState
|
sizeDotState = sizeState
|
||||||
|
|
||||||
call material_allocatePlasticState(p,NipcMyPhase,sizeState,sizeDotState,0_pInt, &
|
call material_allocatePlasticState(p,NipcMyPhase,sizeState,sizeDotState,0_pInt, &
|
||||||
|
@ -375,12 +374,6 @@ subroutine plastic_phenopowerlaw_init
|
||||||
dot%xi_twin => plasticState(p)%dotState(startIndex:endIndex,:)
|
dot%xi_twin => plasticState(p)%dotState(startIndex:endIndex,:)
|
||||||
plasticState(p)%aTolState(startIndex:endIndex) = prm%aTolResistance
|
plasticState(p)%aTolState(startIndex:endIndex) = prm%aTolResistance
|
||||||
|
|
||||||
startIndex = endIndex + 1_pInt
|
|
||||||
endIndex = endIndex + 1_pInt
|
|
||||||
stt%sumGamma => plasticState(p)%state (startIndex,:)
|
|
||||||
dot%sumGamma => plasticState(p)%dotState(startIndex,:)
|
|
||||||
plasticState(p)%aTolState(startIndex:endIndex) = prm%aTolShear
|
|
||||||
|
|
||||||
startIndex = endIndex + 1_pInt
|
startIndex = endIndex + 1_pInt
|
||||||
endIndex = endIndex + 1_pInt
|
endIndex = endIndex + 1_pInt
|
||||||
stt%sumF=>plasticState(p)%state (startIndex,:)
|
stt%sumF=>plasticState(p)%state (startIndex,:)
|
||||||
|
@ -482,7 +475,7 @@ subroutine plastic_phenopowerlaw_dotState(Mp,instance,of)
|
||||||
i
|
i
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
c_SlipSlip,c_TwinSlip,c_TwinTwin, &
|
c_SlipSlip,c_TwinSlip,c_TwinTwin, &
|
||||||
xi_slip_sat_offset
|
xi_slip_sat_offset,sumGamma
|
||||||
|
|
||||||
real(pReal), dimension(param(instance)%totalNslip) :: &
|
real(pReal), dimension(param(instance)%totalNslip) :: &
|
||||||
left_SlipSlip,right_SlipSlip, &
|
left_SlipSlip,right_SlipSlip, &
|
||||||
|
@ -494,11 +487,12 @@ subroutine plastic_phenopowerlaw_dotState(Mp,instance,of)
|
||||||
associate(prm => param(instance), stt => state(instance), dot => dotState(instance))
|
associate(prm => param(instance), stt => state(instance), dot => dotState(instance))
|
||||||
|
|
||||||
dot%whole(:,of) = 0.0_pReal
|
dot%whole(:,of) = 0.0_pReal
|
||||||
|
sumGamma = sum(stt%gamma_slip(:,of))
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! system-independent (nonlinear) prefactors to M_Xx (X influenced by x) matrices
|
! system-independent (nonlinear) prefactors to M_Xx (X influenced by x) matrices
|
||||||
c_SlipSlip = prm%h0_slipslip * (1.0_pReal + prm%twinC*stt%sumF(of)** prm%twinB)
|
c_SlipSlip = prm%h0_slipslip * (1.0_pReal + prm%twinC*stt%sumF(of)** prm%twinB)
|
||||||
c_TwinSlip = prm%h0_TwinSlip * stt%sumGamma(of)**prm%twinE
|
c_TwinSlip = prm%h0_TwinSlip * sumGamma**prm%twinE
|
||||||
c_TwinTwin = prm%h0_TwinTwin * stt%sumF(of)**prm%twinD
|
c_TwinTwin = prm%h0_TwinTwin * stt%sumF(of)**prm%twinD
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -512,7 +506,6 @@ subroutine plastic_phenopowerlaw_dotState(Mp,instance,of)
|
||||||
! shear rates
|
! shear rates
|
||||||
call kinetics_slip(prm,stt,of,Mp,gdot_slip_pos,gdot_slip_neg)
|
call kinetics_slip(prm,stt,of,Mp,gdot_slip_pos,gdot_slip_neg)
|
||||||
dot%gamma_slip(:,of) = abs(gdot_slip_pos+gdot_slip_neg)
|
dot%gamma_slip(:,of) = abs(gdot_slip_pos+gdot_slip_neg)
|
||||||
dot%sumGamma(of) = sum(dot%gamma_slip(:,of))
|
|
||||||
call kinetics_twin(prm,stt,of,Mp,dot%gamma_twin(:,of))
|
call kinetics_twin(prm,stt,of,Mp,dot%gamma_twin(:,of))
|
||||||
if (prm%totalNtwin > 0_pInt) dot%sumF(of) = merge(sum(dot%gamma_twin(:,of)/prm%gamma_twin_char), &
|
if (prm%totalNtwin > 0_pInt) dot%sumF(of) = merge(sum(dot%gamma_twin(:,of)/prm%gamma_twin_char), &
|
||||||
0.0_pReal, &
|
0.0_pReal, &
|
||||||
|
|
Loading…
Reference in New Issue