part of homogenization
This commit is contained in:
parent
b58465415b
commit
1f94a64ca6
|
@ -23,7 +23,7 @@ module damage_nonlocal
|
|||
real(pReal) :: &
|
||||
charLength !< characteristic length scale for gradient problems
|
||||
end type tNumerics
|
||||
|
||||
|
||||
type(tparameters), dimension(:), allocatable :: &
|
||||
param
|
||||
type(tNumerics), private :: &
|
||||
|
@ -33,7 +33,6 @@ module damage_nonlocal
|
|||
damage_nonlocal_init, &
|
||||
damage_nonlocal_getSourceAndItsTangent, &
|
||||
damage_nonlocal_getDiffusion, &
|
||||
damage_nonlocal_getMobility, &
|
||||
damage_nonlocal_putNonLocalDamage, &
|
||||
damage_nonlocal_results
|
||||
|
||||
|
@ -104,7 +103,7 @@ subroutine damage_nonlocal_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip,
|
|||
|
||||
phiDot = 0.0_pReal
|
||||
dPhiDot_dPhi = 0.0_pReal
|
||||
|
||||
|
||||
call constitutive_damage_getRateAndItsTangents(phiDot, dPhiDot_dPhi, phi, ip, el)
|
||||
phiDot = phiDot/real(homogenization_Nconstituents(material_homogenizationAt(el)),pReal)
|
||||
dPhiDot_dPhi = dPhiDot_dPhi/real(homogenization_Nconstituents(material_homogenizationAt(el)),pReal)
|
||||
|
@ -139,29 +138,6 @@ function damage_nonlocal_getDiffusion(ip,el)
|
|||
end function damage_nonlocal_getDiffusion
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @brief Returns homogenized nonlocal damage mobility
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
real(pReal) function damage_nonlocal_getMobility(ip,el)
|
||||
|
||||
integer, intent(in) :: &
|
||||
ip, & !< integration point number
|
||||
el !< element number
|
||||
integer :: &
|
||||
co
|
||||
|
||||
damage_nonlocal_getMobility = 0.0_pReal
|
||||
|
||||
do co = 1, homogenization_Nconstituents(material_homogenizationAt(el))
|
||||
damage_nonlocal_getMobility = damage_nonlocal_getMobility + lattice_M(material_phaseAt(co,el))
|
||||
enddo
|
||||
|
||||
damage_nonlocal_getMobility = damage_nonlocal_getMobility/&
|
||||
real(homogenization_Nconstituents(material_homogenizationAt(el)),pReal)
|
||||
|
||||
end function damage_nonlocal_getMobility
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @brief updated nonlocal damage field with solution from damage phase field PDE
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -145,6 +145,15 @@ module homogenization
|
|||
real(pReal), intent(out) :: Tdot
|
||||
end subroutine thermal_conduction_getSource
|
||||
|
||||
module function damage_nonlocal_getMobility(ip,el) result(M)
|
||||
integer, intent(in) :: &
|
||||
ip, & !< integration point number
|
||||
el !< element number
|
||||
integer :: &
|
||||
co
|
||||
real(pReal) :: M
|
||||
end function damage_nonlocal_getMobility
|
||||
|
||||
end interface
|
||||
|
||||
public :: &
|
||||
|
@ -154,6 +163,7 @@ module homogenization
|
|||
thermal_conduction_getConductivity, &
|
||||
thermal_conduction_getMassDensity, &
|
||||
thermal_conduction_getSource, &
|
||||
damage_nonlocal_getMobility, &
|
||||
homogenization_thermal_setfield, &
|
||||
homogenization_thermal_T, &
|
||||
homogenization_forward, &
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
!--------------------------------------------------------------------------------------------------
|
||||
submodule(homogenization) homogenization_damage
|
||||
|
||||
use lattice
|
||||
|
||||
type :: tDataContainer
|
||||
real(pReal), dimension(:), allocatable :: phi
|
||||
end type tDataContainer
|
||||
|
@ -78,4 +80,28 @@ module subroutine damage_partition(ce)
|
|||
end subroutine damage_partition
|
||||
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @brief Returns homogenized nonlocal damage mobility
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
module function damage_nonlocal_getMobility(ip,el) result(M)
|
||||
|
||||
integer, intent(in) :: &
|
||||
ip, & !< integration point number
|
||||
el !< element number
|
||||
integer :: &
|
||||
co
|
||||
real(pReal) :: M
|
||||
|
||||
M = 0.0_pReal
|
||||
|
||||
do co = 1, homogenization_Nconstituents(material_homogenizationAt(el))
|
||||
M = M + lattice_M(material_phaseAt(co,el))
|
||||
enddo
|
||||
|
||||
M = M/real(homogenization_Nconstituents(material_homogenizationAt(el)),pReal)
|
||||
|
||||
end function damage_nonlocal_getMobility
|
||||
|
||||
|
||||
end submodule homogenization_damage
|
||||
|
|
Loading…
Reference in New Issue