don't repeat code that can be handled centrally
This commit is contained in:
parent
9570fb894a
commit
cea2fba063
|
@ -502,11 +502,7 @@ end subroutine plastic_phenopowerlaw_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates plastic velocity gradient and its tangent
|
!> @brief calculates plastic velocity gradient and its tangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dMp,Mp,ipc,ip,el)
|
subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dMp,Mp,instance,of)
|
||||||
use material, only: &
|
|
||||||
phasememberAt, &
|
|
||||||
material_phase, &
|
|
||||||
phase_plasticityInstance
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(3,3), intent(out) :: &
|
real(pReal), dimension(3,3), intent(out) :: &
|
||||||
|
@ -514,30 +510,24 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dMp,Mp,ipc,ip,el)
|
||||||
real(pReal), dimension(3,3,3,3), intent(out) :: &
|
real(pReal), dimension(3,3,3,3), intent(out) :: &
|
||||||
dLp_dMp !< derivative of Lp with respect to the Mandel stress
|
dLp_dMp !< derivative of Lp with respect to the Mandel stress
|
||||||
|
|
||||||
integer(pInt), intent(in) :: &
|
|
||||||
ipc, & !< component-ID of integration point
|
|
||||||
ip, & !< integration point
|
|
||||||
el !< element
|
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp !< Mandel stress
|
Mp !< Mandel stress
|
||||||
|
integer(pInt), intent(in) :: &
|
||||||
|
instance, &
|
||||||
|
of
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
i,k,l,m,n, &
|
i,k,l,m,n
|
||||||
of
|
real(pReal), dimension(param(instance)%totalNslip) :: &
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNslip) :: &
|
|
||||||
dgdot_dtauslip_pos,dgdot_dtauslip_neg, &
|
dgdot_dtauslip_pos,dgdot_dtauslip_neg, &
|
||||||
gdot_slip_pos,gdot_slip_neg
|
gdot_slip_pos,gdot_slip_neg
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNtwin) :: &
|
real(pReal), dimension(param(instance)%totalNtwin) :: &
|
||||||
gdot_twin,dgdot_dtautwin
|
gdot_twin,dgdot_dtautwin
|
||||||
|
|
||||||
type(tParameters) :: prm
|
type(tParameters) :: prm
|
||||||
type(tPhenopowerlawState) :: stt
|
type(tPhenopowerlawState) :: stt
|
||||||
|
|
||||||
! BEGIN DEPRECATED
|
associate(prm => param(instance), stt => state(instance))
|
||||||
of = phasememberAt(ipc,ip,el)
|
|
||||||
associate(prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))),&
|
|
||||||
stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))))
|
|
||||||
! END DEPRECATED
|
|
||||||
|
|
||||||
Lp = 0.0_pReal
|
Lp = 0.0_pReal
|
||||||
dLp_dMp = 0.0_pReal
|
dLp_dMp = 0.0_pReal
|
||||||
|
@ -571,39 +561,29 @@ end subroutine plastic_phenopowerlaw_LpAndItsTangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates the rate of change of microstructure
|
!> @brief calculates the rate of change of microstructure
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_phenopowerlaw_dotState(Mp,ipc,ip,el)
|
subroutine plastic_phenopowerlaw_dotState(Mp,instance,of)
|
||||||
use material, only: &
|
|
||||||
material_phase, &
|
|
||||||
phasememberAt, &
|
|
||||||
phase_plasticityInstance
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp !< Mandel stress
|
Mp !< Mandel stress
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
ipc, & !< component-ID of integration point
|
instance, &
|
||||||
ip, & !< integration point
|
of
|
||||||
el !< element !< microstructure state
|
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
ph, &
|
i,k
|
||||||
i,k, &
|
|
||||||
of
|
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
c_SlipSlip,c_TwinSlip,c_TwinTwin, &
|
c_SlipSlip,c_TwinSlip,c_TwinTwin, &
|
||||||
xi_slip_sat_offset
|
xi_slip_sat_offset
|
||||||
|
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNslip) :: &
|
real(pReal), dimension(param(instance)%totalNslip) :: &
|
||||||
left_SlipSlip,right_SlipSlip, &
|
left_SlipSlip,right_SlipSlip, &
|
||||||
gdot_slip_pos,gdot_slip_neg
|
gdot_slip_pos,gdot_slip_neg
|
||||||
|
|
||||||
type(tParameters) :: prm
|
type(tParameters) :: prm
|
||||||
type(tPhenopowerlawState) :: dot,stt
|
type(tPhenopowerlawState) :: dot,stt
|
||||||
|
|
||||||
of = phasememberAt(ipc,ip,el)
|
associate(prm => param(instance), stt => state(instance), dot => dotState(instance))
|
||||||
associate(prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
|
||||||
stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
|
||||||
dot => dotState(phase_plasticityInstance(material_phase(ipc,ip,el))))
|
|
||||||
|
|
||||||
dot%whole(:,of) = 0.0_pReal
|
dot%whole(:,of) = 0.0_pReal
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue