introduced H_int for family--wise assignment of initial hardening rate.
This commit is contained in:
parent
fb09f8477b
commit
739fc0f9ad
|
@ -1,4 +1,3 @@
|
|||
!--------------------------------------------------------------------------------------------------
|
||||
!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH
|
||||
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
|
||||
!> @brief material subroutine for phenomenological crystal plasticity formulation using a powerlaw
|
||||
|
@ -60,6 +59,7 @@ module plastic_phenopowerlaw
|
|||
plastic_phenopowerlaw_tau0_slip, & !< initial critical shear stress for slip (input parameter, per family)
|
||||
plastic_phenopowerlaw_tau0_twin, & !< initial critical shear stress for twin (input parameter, per family)
|
||||
plastic_phenopowerlaw_tausat_slip, & !< maximum critical shear stress for slip (input parameter, per family)
|
||||
plastic_phenopowerlaw_H_int, & !< per family hardening activity(input parameter(optional), per family)
|
||||
plastic_phenopowerlaw_nonSchmidCoeff, &
|
||||
|
||||
plastic_phenopowerlaw_interaction_SlipSlip, & !< interaction factors slip - slip (input parameter)
|
||||
|
@ -197,18 +197,19 @@ subroutine plastic_phenopowerlaw_init(fileUnit)
|
|||
source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_output(maxval(phase_Noutput),maxNinstance))
|
||||
plastic_phenopowerlaw_output = ''
|
||||
allocate(plastic_phenopowerlaw_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
||||
allocate(plastic_phenopowerlaw_outputID(maxval(phase_Noutput),maxNinstance),source=undefined_ID)
|
||||
allocate(plastic_phenopowerlaw_Noutput(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_Nslip(lattice_maxNslipFamily,maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_Ntwin(lattice_maxNtwinFamily,maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_Ntrans(lattice_maxNtransFamily,maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_Ntrans(lattice_maxNtransFamily,maxNinstance),source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_totalNslip(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_totalNtwin(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_totalNtrans(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_phenopowerlaw_gdot0_slip(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_n_slip(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_tau0_slip(lattice_maxNslipFamily,maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_tau0_slip(lattice_maxNslipFamily,maxNinstance),source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_tausat_slip(lattice_maxNslipFamily,maxNinstance),source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_H_int(lattice_maxNslipFamily,maxNinstance),source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_gdot0_twin(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_n_twin(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_phenopowerlaw_tau0_twin(lattice_maxNtwinFamily,maxNinstance), source=0.0_pReal)
|
||||
|
@ -340,7 +341,7 @@ subroutine plastic_phenopowerlaw_init(fileUnit)
|
|||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
plastic_phenopowerlaw_Nslip(j,instance) = IO_intValue(line,chunkPos,1_pInt+j)
|
||||
enddo
|
||||
case ('tausat_slip','tau0_slip')
|
||||
case ('tausat_slip','tau0_slip','H_int')
|
||||
tempPerSlip = 0.0_pReal
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
if (plastic_phenopowerlaw_Nslip(j,instance) > 0_pInt) &
|
||||
|
@ -351,6 +352,8 @@ subroutine plastic_phenopowerlaw_init(fileUnit)
|
|||
plastic_phenopowerlaw_tausat_slip(1:Nchunks_SlipFamilies,instance) = tempPerSlip(1:Nchunks_SlipFamilies)
|
||||
case ('tau0_slip')
|
||||
plastic_phenopowerlaw_tau0_slip(1:Nchunks_SlipFamilies,instance) = tempPerSlip(1:Nchunks_SlipFamilies)
|
||||
case ('H_int')
|
||||
plastic_phenopowerlaw_H_int(1:Nchunks_SlipFamilies,instance) = tempPerSlip(1:Nchunks_SlipFamilies)
|
||||
end select
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! parameters depending on number of twin families
|
||||
|
@ -967,7 +970,6 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
|||
offset_accshear_twin = nSlip + nTwin + 2_pInt + nSlip
|
||||
plasticState(ph)%dotState(:,of) = 0.0_pReal
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! system-independent (nonlinear) prefactors to M_Xx (X influenced by x) matrices
|
||||
c_SlipSlip = plastic_phenopowerlaw_h0_SlipSlip(instance)*&
|
||||
|
@ -986,7 +988,7 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
|||
index_myFamily = sum(lattice_NslipSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||
slipSystems1: do i = 1_pInt,plastic_phenopowerlaw_Nslip(f,instance)
|
||||
j = j+1_pInt
|
||||
left_SlipSlip(j) = 1.0_pReal ! no system-dependent left part
|
||||
left_SlipSlip(j) = 1.0_pReal + plastic_phenopowerlaw_H_int(f,instance) ! modified no system-dependent left part
|
||||
left_SlipTwin(j) = 1.0_pReal ! no system-dependent left part
|
||||
right_SlipSlip(j) = abs(1.0_pReal-plasticState(ph)%state(j,of) / &
|
||||
(plastic_phenopowerlaw_tausat_slip(f,instance)+ssat_offset)) &
|
||||
|
@ -1013,6 +1015,7 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
|||
enddo slipFamilies1
|
||||
|
||||
|
||||
|
||||
j = 0_pInt
|
||||
twinFamilies1: do f = 1_pInt,lattice_maxNtwinFamily
|
||||
index_myFamily = sum(lattice_NtwinSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||
|
|
Loading…
Reference in New Issue