bugfix: change of behavior
fraction needed for calculation of homogenized response
This commit is contained in:
parent
739a4b7a26
commit
28eda64893
|
@ -131,20 +131,15 @@ module subroutine mechanical_homogenize(Delta_t,ce)
|
||||||
integer :: co
|
integer :: co
|
||||||
|
|
||||||
|
|
||||||
homogenization_P(1:3,1:3,ce) = phase_P(1,ce)
|
homogenization_P(1:3,1:3,ce) = phase_P(1,ce)*material_v(1,ce)
|
||||||
homogenization_dPdF(1:3,1:3,1:3,1:3,ce) = phase_mechanical_dPdF(Delta_t,1,ce)
|
homogenization_dPdF(1:3,1:3,1:3,1:3,ce) = phase_mechanical_dPdF(Delta_t,1,ce)*material_v(1,ce)
|
||||||
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
||||||
homogenization_P(1:3,1:3,ce) = homogenization_P(1:3,1:3,ce) &
|
homogenization_P(1:3,1:3,ce) = homogenization_P(1:3,1:3,ce) &
|
||||||
+ phase_P(co,ce)
|
+ phase_P(co,ce)*material_v(co,ce)
|
||||||
homogenization_dPdF(1:3,1:3,1:3,1:3,ce) = homogenization_dPdF(1:3,1:3,1:3,1:3,ce) &
|
homogenization_dPdF(1:3,1:3,1:3,1:3,ce) = homogenization_dPdF(1:3,1:3,1:3,1:3,ce) &
|
||||||
+ phase_mechanical_dPdF(Delta_t,co,ce)
|
+ phase_mechanical_dPdF(Delta_t,co,ce)*material_v(co,ce)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
homogenization_P(1:3,1:3,ce) = homogenization_P(1:3,1:3,ce) &
|
|
||||||
/ real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
|
||||||
homogenization_dPdF(1:3,1:3,1:3,1:3,ce) = homogenization_dPdF(1:3,1:3,1:3,1:3,ce) &
|
|
||||||
/ real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
|
||||||
|
|
||||||
end subroutine mechanical_homogenize
|
end subroutine mechanical_homogenize
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -105,13 +105,11 @@ module function homogenization_mu_T(ce) result(mu)
|
||||||
integer :: co
|
integer :: co
|
||||||
|
|
||||||
|
|
||||||
mu = phase_mu_T(1,ce)
|
mu = phase_mu_T(1,ce)*material_v(1,ce)
|
||||||
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
||||||
mu = mu + phase_mu_T(co,ce)
|
mu = mu + phase_mu_T(co,ce)*material_v(co,ce)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
mu = mu / real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
|
||||||
|
|
||||||
end function homogenization_mu_T
|
end function homogenization_mu_T
|
||||||
|
|
||||||
|
|
||||||
|
@ -126,13 +124,11 @@ module function homogenization_K_T(ce) result(K)
|
||||||
integer :: co
|
integer :: co
|
||||||
|
|
||||||
|
|
||||||
K = phase_K_T(1,ce)
|
K = phase_K_T(1,ce)*material_v(1,ce)
|
||||||
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
||||||
K = K + phase_K_T(co,ce)
|
K = K + phase_K_T(co,ce)*material_v(co,ce)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
K = K / real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
|
||||||
|
|
||||||
end function homogenization_K_T
|
end function homogenization_K_T
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,13 +143,11 @@ module function homogenization_f_T(ce) result(f)
|
||||||
integer :: co
|
integer :: co
|
||||||
|
|
||||||
|
|
||||||
f = phase_f_T(material_phaseID(1,ce),material_phaseEntry(1,ce))
|
f = phase_f_T(material_phaseID(1,ce),material_phaseEntry(1,ce))*material_v(1,ce)
|
||||||
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
||||||
f = f + phase_f_T(material_phaseID(co,ce),material_phaseEntry(co,ce))
|
f = f + phase_f_T(material_phaseID(co,ce),material_phaseEntry(co,ce))*material_v(co,ce)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
f = f/real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
|
||||||
|
|
||||||
end function homogenization_f_T
|
end function homogenization_f_T
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -145,13 +145,11 @@ subroutine parse()
|
||||||
material_homogenizationEntry(ce) = counterHomogenization(ho)
|
material_homogenizationEntry(ce) = counterHomogenization(ho)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
v = 0.0_pReal
|
|
||||||
constituents => material%get('constituents')
|
constituents => material%get('constituents')
|
||||||
do co = 1, constituents%length
|
do co = 1, constituents%length
|
||||||
constituent => constituents%get(co)
|
constituent => constituents%get(co)
|
||||||
|
|
||||||
material_v(co,ce) = constituent%get_asFloat('v')
|
v = constituent%get_asFloat('v')
|
||||||
v = v + material_v(co,ce)
|
|
||||||
|
|
||||||
ph = phases%getIndex(constituent%get_asString('phase'))
|
ph = phases%getIndex(constituent%get_asString('phase'))
|
||||||
do ip = 1, discretization_nIPs
|
do ip = 1, discretization_nIPs
|
||||||
|
@ -159,10 +157,12 @@ subroutine parse()
|
||||||
material_phaseID(co,ce) = ph
|
material_phaseID(co,ce) = ph
|
||||||
counterPhase(ph) = counterPhase(ph) + 1
|
counterPhase(ph) = counterPhase(ph) + 1
|
||||||
material_phaseEntry(co,ce) = counterPhase(ph)
|
material_phaseEntry(co,ce) = counterPhase(ph)
|
||||||
|
material_v(co,ce) = v
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end do
|
end do
|
||||||
if (dNeq(v,1.0_pReal,1.e-12_pReal)) call IO_error(153,ext_msg='constituent')
|
if (dNeq(sum(material_v(1:constituents%length,ce)),1.0_pReal,1.e-9_pReal)) &
|
||||||
|
call IO_error(153,ext_msg='constituent')
|
||||||
|
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue