renamed "tau0" to "crss0"
This commit is contained in:
parent
23f9f03ca8
commit
2b4a024671
|
@ -58,7 +58,7 @@ module plastic_kinehardening
|
||||||
|
|
||||||
|
|
||||||
real(pReal), dimension(:), allocatable, private :: &
|
real(pReal), dimension(:), allocatable, private :: &
|
||||||
tau0, & !< initial critical shear stress for slip (input parameter, per family)
|
crss0, & !< initial critical shear stress for slip (input parameter, per family)
|
||||||
theta0, & !< initial hardening rate of forward stress for each slip
|
theta0, & !< initial hardening rate of forward stress for each slip
|
||||||
theta1, & !< asymptotic hardening rate of forward stress for each slip >
|
theta1, & !< asymptotic hardening rate of forward stress for each slip >
|
||||||
theta0_b, & !< initial hardening rate of back stress for each slip >
|
theta0_b, & !< initial hardening rate of back stress for each slip >
|
||||||
|
@ -221,7 +221,7 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
Nchunks_SlipSlip = maxval(lattice_interactionSlipSlip(:,:,phase))
|
Nchunks_SlipSlip = maxval(lattice_interactionSlipSlip(:,:,phase))
|
||||||
Nchunks_nonSchmid = lattice_NnonSchmid(phase)
|
Nchunks_nonSchmid = lattice_NnonSchmid(phase)
|
||||||
allocate(param(instance)%outputID(phase_Noutput(phase)), source=0_pInt) ! allocate space for IDs of every requested output
|
allocate(param(instance)%outputID(phase_Noutput(phase)), source=0_pInt) ! allocate space for IDs of every requested output
|
||||||
allocate(param(instance)%tau0 (Nchunks_SlipFamilies), source=0.0_pReal)
|
allocate(param(instance)%crss0 (Nchunks_SlipFamilies), source=0.0_pReal)
|
||||||
allocate(param(instance)%tau1 (Nchunks_SlipFamilies), source=0.0_pReal)
|
allocate(param(instance)%tau1 (Nchunks_SlipFamilies), source=0.0_pReal)
|
||||||
allocate(param(instance)%tau1_b (Nchunks_SlipFamilies), source=0.0_pReal)
|
allocate(param(instance)%tau1_b (Nchunks_SlipFamilies), source=0.0_pReal)
|
||||||
allocate(param(instance)%theta0 (Nchunks_SlipFamilies), source=0.0_pReal)
|
allocate(param(instance)%theta0 (Nchunks_SlipFamilies), source=0.0_pReal)
|
||||||
|
@ -281,15 +281,15 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
plastic_kinehardening_Nslip(j,instance) = IO_intValue(line,chunkPos,1_pInt+j)
|
plastic_kinehardening_Nslip(j,instance) = IO_intValue(line,chunkPos,1_pInt+j)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
case ('tau0','tau1','tau1_b','theta0','theta1','theta0_b','theta1_b')
|
case ('crss0','tau1','tau1_b','theta0','theta1','theta0_b','theta1_b')
|
||||||
tempPerSlip = 0.0_pReal
|
tempPerSlip = 0.0_pReal
|
||||||
do j = 1_pInt, Nchunks_SlipFamilies
|
do j = 1_pInt, Nchunks_SlipFamilies
|
||||||
if (plastic_kinehardening_Nslip(j,instance) > 0_pInt) &
|
if (plastic_kinehardening_Nslip(j,instance) > 0_pInt) &
|
||||||
tempPerSlip(j) = IO_floatValue(line,chunkPos,1_pInt+j)
|
tempPerSlip(j) = IO_floatValue(line,chunkPos,1_pInt+j)
|
||||||
enddo
|
enddo
|
||||||
select case(tag)
|
select case(tag)
|
||||||
case ('tau0')
|
case ('crss0')
|
||||||
param(instance)%tau0(1:Nchunks_SlipFamilies) = tempPerSlip(1:Nchunks_SlipFamilies)
|
param(instance)%crss0(1:Nchunks_SlipFamilies) = tempPerSlip(1:Nchunks_SlipFamilies)
|
||||||
case ('tau1')
|
case ('tau1')
|
||||||
param(instance)%tau1(1:Nchunks_SlipFamilies) = tempPerSlip(1:Nchunks_SlipFamilies)
|
param(instance)%tau1(1:Nchunks_SlipFamilies) = tempPerSlip(1:Nchunks_SlipFamilies)
|
||||||
case ('tau1_b')
|
case ('tau1_b')
|
||||||
|
@ -362,7 +362,7 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
! sanity checks
|
! sanity checks
|
||||||
|
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
||||||
.and. param(instance)%tau0(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' tau0'
|
.and. param(instance)%crss0(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' crss0'
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
||||||
.and. param(instance)%tau1(1:nSlipFamilies) <= 0.0_pReal)) extmsg = trim(extmsg)//' tau1'
|
.and. param(instance)%tau1(1:nSlipFamilies) <= 0.0_pReal)) extmsg = trim(extmsg)//' tau1'
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
||||||
|
@ -431,6 +431,7 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
plasticState(phase)%sizeState = sizeState
|
plasticState(phase)%sizeState = sizeState
|
||||||
plasticState(phase)%sizeDotState = sizeDotState
|
plasticState(phase)%sizeDotState = sizeDotState
|
||||||
plasticState(phase)%sizeDeltaState = sizeDeltaState
|
plasticState(phase)%sizeDeltaState = sizeDeltaState
|
||||||
|
plasticState(phase)%offsetDeltaState = sizeDotState
|
||||||
plasticState(phase)%sizePostResults = plastic_kinehardening_sizePostResults(instance)
|
plasticState(phase)%sizePostResults = plastic_kinehardening_sizePostResults(instance)
|
||||||
plasticState(phase)%nSlip = nSlip
|
plasticState(phase)%nSlip = nSlip
|
||||||
|
|
||||||
|
@ -482,7 +483,7 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
state0 (instance)%crss => plasticState(phase)%state0 (startIndex :endIndex ,1:NipcMyPhase)
|
state0 (instance)%crss => plasticState(phase)%state0 (startIndex :endIndex ,1:NipcMyPhase)
|
||||||
dotState(instance)%crss => plasticState(phase)%dotState (startIndex-o:endIndex-o,1:NipcMyPhase)
|
dotState(instance)%crss => plasticState(phase)%dotState (startIndex-o:endIndex-o,1:NipcMyPhase)
|
||||||
|
|
||||||
state0(instance)%crss = spread(math_expand(param(instance)%tau0,&
|
state0(instance)%crss = spread(math_expand(param(instance)%crss0,&
|
||||||
plastic_kinehardening_Nslip(:,instance)), &
|
plastic_kinehardening_Nslip(:,instance)), &
|
||||||
2, NipcMyPhase)
|
2, NipcMyPhase)
|
||||||
plasticState(phase)%aTolState(startIndex-o:endIndex-o) = param(instance)%aTolResistance
|
plasticState(phase)%aTolState(startIndex-o:endIndex-o) = param(instance)%aTolResistance
|
||||||
|
@ -717,6 +718,11 @@ end subroutine plastic_kinehardening_LpAndItsTangent
|
||||||
subroutine plastic_kinehardening_deltaState(Tstar_v,ipc,ip,el)
|
subroutine plastic_kinehardening_deltaState(Tstar_v,ipc,ip,el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
dNeq
|
dNeq
|
||||||
|
use debug, only: &
|
||||||
|
debug_level, &
|
||||||
|
debug_constitutive, &
|
||||||
|
debug_levelExtensive, &
|
||||||
|
debug_levelSelective
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phaseAt, &
|
phaseAt, &
|
||||||
phasememberAt, &
|
phasememberAt, &
|
||||||
|
@ -749,13 +755,39 @@ subroutine plastic_kinehardening_deltaState(Tstar_v,ipc,ip,el)
|
||||||
Tstar_v,ph,instance,of)
|
Tstar_v,ph,instance,of)
|
||||||
|
|
||||||
sense = sign(1.0_pReal,gdot_pos+gdot_neg) ! current sense of shear direction
|
sense = sign(1.0_pReal,gdot_pos+gdot_neg) ! current sense of shear direction
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (iand(debug_level(debug_constitutive), debug_levelExtensive) /= 0_pInt &
|
||||||
|
.and. ((e == debug_e .and. i == debug_i) &
|
||||||
|
.or. .not. iand(debug_level(debug_constitutive),debug_levelSelective) /= 0_pInt)) then
|
||||||
|
write(6,'a') '======= kinehardening delta state ======='
|
||||||
|
endif
|
||||||
|
#endif
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! switch in sense of shear?
|
! switch in sense of shear?
|
||||||
do j = 1,plastic_kinehardening_totalNslip(instance)
|
do j = 1,plastic_kinehardening_totalNslip(instance)
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (iand(debug_level(debug_constitutive), debug_levelExtensive) /= 0_pInt &
|
||||||
|
.and. ((e == debug_e .and. i == debug_i) &
|
||||||
|
.or. .not. iand(debug_level(debug_constitutive),debug_levelSelective) /= 0_pInt)) then
|
||||||
|
write(6,'i2,1x,f7.4,1x,f7.4') j,sense(j),state(instance)%sense(j,of)
|
||||||
|
endif
|
||||||
|
#endif
|
||||||
if (dNeq(sense(j),state(instance)%sense(j,of),0.1_pReal)) then
|
if (dNeq(sense(j),state(instance)%sense(j,of),0.1_pReal)) then
|
||||||
deltaState(instance)%sense (j,of) = sense(j) - state(instance)%sense(j,of) ! switch sense
|
deltaState(instance)%sense (j,of) = sense(j) - state(instance)%sense(j,of) ! switch sense
|
||||||
deltaState(instance)%chi0 (j,of) = abs(state(instance)%crss_back(j,of)) - state(instance)%chi0(j,of) ! remember current backstress magnitude
|
deltaState(instance)%chi0 (j,of) = abs(state(instance)%crss_back(j,of)) - state(instance)%chi0(j,of) ! remember current backstress magnitude
|
||||||
deltaState(instance)%gamma0(j,of) = state(instance)%accshear(j,of) - state(instance)%gamma0(j,of) ! remember current accumulated shear
|
deltaState(instance)%gamma0(j,of) = state(instance)%accshear(j,of) - state(instance)%gamma0(j,of) ! remember current accumulated shear
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (iand(debug_level(debug_constitutive), debug_levelExtensive) /= 0_pInt &
|
||||||
|
.and. ((e == debug_e .and. i == debug_i) &
|
||||||
|
.or. .not. iand(debug_level(debug_constitutive),debug_levelSelective) /= 0_pInt)) then
|
||||||
|
write(6,'a') 'change of sense!'
|
||||||
|
write(6,*) deltaState(instance)%sense (j,of), &
|
||||||
|
deltaState(instance)%chi0(j,of), &
|
||||||
|
deltaState(instance)%gamma0(j,of)
|
||||||
|
endif
|
||||||
|
#endif
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -789,7 +821,7 @@ subroutine plastic_kinehardening_dotState(Tstar_v,ipc,ip,el)
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance,ph, &
|
instance,ph, &
|
||||||
f,i,j,k, &
|
f,i,j,k, &
|
||||||
index_Gamma,index_myFamily,index_otherFamily, &
|
index_myFamily,index_otherFamily, &
|
||||||
nSlip, &
|
nSlip, &
|
||||||
offset_accshear, &
|
offset_accshear, &
|
||||||
of
|
of
|
||||||
|
@ -803,6 +835,8 @@ subroutine plastic_kinehardening_dotState(Tstar_v,ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
nSlip = plastic_kinehardening_totalNslip(instance)
|
nSlip = plastic_kinehardening_totalNslip(instance)
|
||||||
|
|
||||||
|
dotState(instance)%sumGamma(of) = 0.0_pReal
|
||||||
|
|
||||||
call plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
call plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
||||||
Tstar_v,ph,instance,of)
|
Tstar_v,ph,instance,of)
|
||||||
|
|
||||||
|
@ -864,7 +898,7 @@ function plastic_kinehardening_postResults(Tstar_v,ipc,ip,el)
|
||||||
instance,ph, of, &
|
instance,ph, of, &
|
||||||
nSlip,&
|
nSlip,&
|
||||||
o,f,i,c,j,k, &
|
o,f,i,c,j,k, &
|
||||||
index_Gamma,index_accshear,index_myFamily
|
index_myFamily
|
||||||
|
|
||||||
real(pReal), dimension(plastic_kinehardening_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
real(pReal), dimension(plastic_kinehardening_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||||
gdot_pos,gdot_neg, &
|
gdot_pos,gdot_neg, &
|
||||||
|
|
Loading…
Reference in New Issue