correct stress in postResults
This commit is contained in:
parent
cea2fba063
commit
e6fa3f3d35
|
@ -513,7 +513,7 @@ subroutine constitutive_LpAndItsTangents(Lp, dLp_dS, dLp_dFi, S6, Fi, ipc, ip, e
|
||||||
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
||||||
of = phasememberAt(ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
call plastic_phenopowerlaw_LpAndItsTangent (Lp,dLp_dMp, Mp,ipc,ip,el)
|
call plastic_phenopowerlaw_LpAndItsTangent (Lp,dLp_dMp, Mp,instance,of)
|
||||||
|
|
||||||
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
||||||
call plastic_kinehardening_LpAndItsTangent (Lp,dLp_dMp99, math_Mandel33to6(Mp),ipc,ip,el)
|
call plastic_kinehardening_LpAndItsTangent (Lp,dLp_dMp99, math_Mandel33to6(Mp),ipc,ip,el)
|
||||||
|
@ -821,6 +821,7 @@ subroutine constitutive_collectDotState(S6, FeArray, Fi, FpArray, subdt, subfrac
|
||||||
debug_constitutive, &
|
debug_constitutive, &
|
||||||
debug_levelBasic
|
debug_levelBasic
|
||||||
use math, only: &
|
use math, only: &
|
||||||
|
math_mul33x33, &
|
||||||
math_Mandel6to33, &
|
math_Mandel6to33, &
|
||||||
math_Mandel33to6, &
|
math_Mandel33to6, &
|
||||||
math_mul33x33
|
math_mul33x33
|
||||||
|
@ -907,7 +908,7 @@ subroutine constitutive_collectDotState(S6, FeArray, Fi, FpArray, subdt, subfrac
|
||||||
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
||||||
of = phasememberAt(ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
call plastic_phenopowerlaw_dotState(Mp,ipc,ip,el)
|
call plastic_phenopowerlaw_dotState(Mp,instance,of)
|
||||||
|
|
||||||
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
||||||
call plastic_kinehardening_dotState(math_Mandel33to6(Mp),ipc,ip,el)
|
call plastic_kinehardening_dotState(math_Mandel33to6(Mp),ipc,ip,el)
|
||||||
|
@ -1035,13 +1036,18 @@ end subroutine constitutive_collectDeltaState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief returns array of constitutive results
|
!> @brief returns array of constitutive results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function constitutive_postResults(S6, FeArray, ipc, ip, el)
|
function constitutive_postResults(S6, Fi, FeArray, ipc, ip, el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pReal
|
pReal
|
||||||
|
use math, only: &
|
||||||
|
math_Mandel6to33, &
|
||||||
|
math_mul33x33
|
||||||
use mesh, only: &
|
use mesh, only: &
|
||||||
mesh_NcpElems, &
|
mesh_NcpElems, &
|
||||||
mesh_maxNips
|
mesh_maxNips
|
||||||
use material, only: &
|
use material, only: &
|
||||||
|
phasememberAt, &
|
||||||
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
|
@ -1092,19 +1098,25 @@ function constitutive_postResults(S6, FeArray, ipc, ip, el)
|
||||||
real(pReal), dimension(plasticState(material_phase(ipc,ip,el))%sizePostResults + &
|
real(pReal), dimension(plasticState(material_phase(ipc,ip,el))%sizePostResults + &
|
||||||
sum(sourceState(material_phase(ipc,ip,el))%p(:)%sizePostResults)) :: &
|
sum(sourceState(material_phase(ipc,ip,el))%p(:)%sizePostResults)) :: &
|
||||||
constitutive_postResults
|
constitutive_postResults
|
||||||
|
real(pReal), intent(in), dimension(3,3) :: &
|
||||||
|
Fi !< intermediate deformation gradient
|
||||||
real(pReal), intent(in), dimension(3,3,homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems) :: &
|
real(pReal), intent(in), dimension(3,3,homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems) :: &
|
||||||
FeArray !< elastic deformation gradient
|
FeArray !< elastic deformation gradient
|
||||||
real(pReal), intent(in), dimension(6) :: &
|
real(pReal), intent(in), dimension(6) :: &
|
||||||
S6 !< 2nd Piola Kirchhoff stress (vector notation)
|
S6 !< 2nd Piola Kirchhoff stress (vector notation)
|
||||||
|
real(pReal), dimension(3,3) :: &
|
||||||
|
Mp !< Mandel stress
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
startPos, endPos
|
startPos, endPos
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
ho, & !< homogenization
|
ho, & !< homogenization
|
||||||
tme, & !< thermal member position
|
tme, & !< thermal member position
|
||||||
s !< counter in source loop
|
s, of, instance !< counter in source loop
|
||||||
|
|
||||||
constitutive_postResults = 0.0_pReal
|
constitutive_postResults = 0.0_pReal
|
||||||
|
|
||||||
|
Mp = math_mul33x33(math_mul33x33(transpose(Fi),Fi),math_Mandel6to33(S6))
|
||||||
|
|
||||||
ho = material_homog( ip,el)
|
ho = material_homog( ip,el)
|
||||||
tme = thermalMapping(ho)%p(ip,el)
|
tme = thermalMapping(ho)%p(ip,el)
|
||||||
|
|
||||||
|
@ -1113,10 +1125,13 @@ function constitutive_postResults(S6, FeArray, ipc, ip, el)
|
||||||
|
|
||||||
plasticityType: select case (phase_plasticity(material_phase(ipc,ip,el)))
|
plasticityType: select case (phase_plasticity(material_phase(ipc,ip,el)))
|
||||||
case (PLASTICITY_ISOTROPIC_ID) plasticityType
|
case (PLASTICITY_ISOTROPIC_ID) plasticityType
|
||||||
constitutive_postResults(startPos:endPos) = plastic_isotropic_postResults(S6,ipc,ip,el)
|
|
||||||
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
|
||||||
constitutive_postResults(startPos:endPos) = &
|
constitutive_postResults(startPos:endPos) = &
|
||||||
plastic_phenopowerlaw_postResults(S6,ipc,ip,el)
|
plastic_isotropic_postResults(S6,ipc,ip,el)
|
||||||
|
case (PLASTICITY_PHENOPOWERLAW_ID) plasticityType
|
||||||
|
of = phasememberAt(ipc,ip,el)
|
||||||
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
|
constitutive_postResults(startPos:endPos) = &
|
||||||
|
plastic_phenopowerlaw_postResults(Mp,instance,of)
|
||||||
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
case (PLASTICITY_KINEHARDENING_ID) plasticityType
|
||||||
constitutive_postResults(startPos:endPos) = &
|
constitutive_postResults(startPos:endPos) = &
|
||||||
plastic_kinehardening_postResults(S6,ipc,ip,el)
|
plastic_kinehardening_postResults(S6,ipc,ip,el)
|
||||||
|
|
|
@ -3887,8 +3887,8 @@ function crystallite_postResults(ipc, ip, el)
|
||||||
c = c + 1_pInt
|
c = c + 1_pInt
|
||||||
if (size(crystallite_postResults)-c > 0_pInt) &
|
if (size(crystallite_postResults)-c > 0_pInt) &
|
||||||
crystallite_postResults(c+1:size(crystallite_postResults)) = &
|
crystallite_postResults(c+1:size(crystallite_postResults)) = &
|
||||||
constitutive_postResults(crystallite_Tstar_v(1:6,ipc,ip,el), crystallite_Fe, &
|
constitutive_postResults(crystallite_Tstar_v(1:6,ipc,ip,el), crystallite_Fi(1:3,1:3,ipc,ip,el), &
|
||||||
ipc, ip, el)
|
crystallite_Fe, ipc, ip, el)
|
||||||
|
|
||||||
end function crystallite_postResults
|
end function crystallite_postResults
|
||||||
|
|
||||||
|
|
|
@ -747,7 +747,7 @@ end subroutine kinetics_twin
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief return array of constitutive results
|
!> @brief return array of constitutive results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function plastic_phenopowerlaw_postResults(Mp6,ipc,ip,el) result(postResults)
|
function plastic_phenopowerlaw_postResults(Mp,instance,of) result(postResults)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
|
@ -758,36 +758,29 @@ function plastic_phenopowerlaw_postResults(Mp6,ipc,ip,el) result(postResults)
|
||||||
math_Mandel6to33
|
math_Mandel6to33
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(6), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp6 !< 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
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3) :: &
|
real(pReal), dimension(sum(plastic_phenopowerlaw_sizePostResult(:,instance))) :: &
|
||||||
Mp !< Second-Piola Kirchhoff stress
|
|
||||||
real(pReal), dimension(plasticState(material_phase(ipc,ip,el))%sizePostResults) :: &
|
|
||||||
postResults
|
postResults
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
of, &
|
|
||||||
o,c,i,j
|
o,c,i,j
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
tau_slip_pos, tau_slip_neg
|
tau_slip_pos, tau_slip_neg
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNslip) :: &
|
real(pReal), dimension(param(instance)%totalNslip) :: &
|
||||||
gdot_slip_pos,gdot_slip_neg
|
gdot_slip_pos,gdot_slip_neg
|
||||||
|
|
||||||
type(tParameters) :: prm
|
type(tParameters) :: prm
|
||||||
type(tPhenopowerlawState) :: stt
|
type(tPhenopowerlawState) :: stt
|
||||||
|
|
||||||
of = phasememberAt(ipc,ip,el)
|
associate( prm => param(instance), stt => state(instance))
|
||||||
associate( prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
|
||||||
stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))) )
|
|
||||||
|
|
||||||
postResults = 0.0_pReal
|
postResults = 0.0_pReal
|
||||||
c = 0_pInt
|
c = 0_pInt
|
||||||
Mp = math_Mandel6to33(Mp6) !DEPRECATED
|
|
||||||
|
|
||||||
outputsLoop: do o = 1_pInt,size(prm%outputID)
|
outputsLoop: do o = 1_pInt,size(prm%outputID)
|
||||||
select case(prm%outputID(o))
|
select case(prm%outputID(o))
|
||||||
|
|
Loading…
Reference in New Issue