dependentState is more descriptive than microstructure

This commit is contained in:
Martin Diehl 2018-12-04 21:53:22 +01:00
parent 10445606ba
commit a34e27cfcd
2 changed files with 15 additions and 22 deletions

View File

@ -384,7 +384,9 @@ subroutine constitutive_microstructure(orientations, Fe, Fp, ipc, ip, el)
use prec, only: & use prec, only: &
pReal pReal
use material, only: & use material, only: &
phasememberAt, &
phase_plasticity, & phase_plasticity, &
phase_plasticityInstance, &
material_phase, & material_phase, &
material_homogenizationAt, & material_homogenizationAt, &
temperature, & temperature, &
@ -396,8 +398,8 @@ subroutine constitutive_microstructure(orientations, Fe, Fp, ipc, ip, el)
plastic_nonlocal_microstructure plastic_nonlocal_microstructure
use plastic_dislotwin, only: & use plastic_dislotwin, only: &
plastic_dislotwin_microstructure plastic_dislotwin_microstructure
use plastic_disloucla, only: & use plastic_disloUCLA, only: &
plastic_disloucla_microstructure plastic_disloUCLA_dependentState
implicit none implicit none
integer(pInt), intent(in) :: & integer(pInt), intent(in) :: &
@ -409,7 +411,8 @@ subroutine constitutive_microstructure(orientations, Fe, Fp, ipc, ip, el)
Fp !< plastic deformation gradient Fp !< plastic deformation gradient
integer(pInt) :: & integer(pInt) :: &
ho, & !< homogenization ho, & !< homogenization
tme !< thermal member position tme, & !< thermal member position
instance, of
real(pReal), intent(in), dimension(:,:,:,:) :: & real(pReal), intent(in), dimension(:,:,:,:) :: &
orientations !< crystal orientations as quaternions orientations !< crystal orientations as quaternions
@ -420,7 +423,9 @@ subroutine constitutive_microstructure(orientations, Fe, Fp, ipc, ip, el)
case (PLASTICITY_DISLOTWIN_ID) plasticityType case (PLASTICITY_DISLOTWIN_ID) plasticityType
call plastic_dislotwin_microstructure(temperature(ho)%p(tme),ipc,ip,el) call plastic_dislotwin_microstructure(temperature(ho)%p(tme),ipc,ip,el)
case (PLASTICITY_DISLOUCLA_ID) plasticityType case (PLASTICITY_DISLOUCLA_ID) plasticityType
call plastic_disloucla_microstructure(temperature(ho)%p(tme),ipc,ip,el) of = phasememberAt(ipc,ip,el)
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
call plastic_disloUCLA_dependentState(temperature(ho)%p(tme),instance,of)
case (PLASTICITY_NONLOCAL_ID) plasticityType case (PLASTICITY_NONLOCAL_ID) plasticityType
call plastic_nonlocal_microstructure (Fe,Fp,ip,el) call plastic_nonlocal_microstructure (Fe,Fp,ip,el)
end select plasticityType end select plasticityType

View File

@ -112,7 +112,7 @@ module plastic_disloUCLA
public :: & public :: &
plastic_disloUCLA_init, & plastic_disloUCLA_init, &
plastic_disloUCLA_microstructure, & plastic_disloUCLA_dependentState, &
plastic_disloUCLA_LpAndItsTangent, & plastic_disloUCLA_LpAndItsTangent, &
plastic_disloUCLA_dotState, & plastic_disloUCLA_dotState, &
plastic_disloUCLA_postResults plastic_disloUCLA_postResults
@ -436,30 +436,18 @@ end subroutine plastic_disloUCLA_init
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief calculates derived quantities from state !> @brief calculates derived quantities from state
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el) subroutine plastic_disloUCLA_dependentState(temperature,instance,of)
use material, only: &
phase_plasticityInstance, &
phaseAt, phasememberAt, &
material_phase
implicit none implicit none
integer(pInt), intent(in) :: & integer(pInt), intent(in) :: instance, of
ipc, & !< component-ID of integration point
ip, & !< integration point
el !< element
real(pReal), intent(in) :: & real(pReal), intent(in) :: &
temperature !< temperature at IP temperature !< temperature at IP
integer(pInt) :: & integer(pInt) :: &
instance, & s
s, & real(pReal), dimension(param(instance)%totalNslip) :: &
of
real(pReal), dimension(plastic_disloUCLA_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
invLambdaSlip ! 1/mean free distance between 2 forest dislocations seen by a moving dislocation invLambdaSlip ! 1/mean free distance between 2 forest dislocations seen by a moving dislocation
of = phasememberAt(ipc,ip,el)
instance = phase_plasticityInstance(phaseAt(ipc,ip,el))
associate(prm => param(instance), stt => state(instance),mse => microstructure(instance)) associate(prm => param(instance), stt => state(instance),mse => microstructure(instance))
forall (s = 1_pInt:prm%totalNslip) & forall (s = 1_pInt:prm%totalNslip) &
@ -476,7 +464,7 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
end associate end associate
end subroutine plastic_disloUCLA_microstructure end subroutine plastic_disloUCLA_dependentState
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------