documenting
This commit is contained in:
parent
8c6d759b55
commit
f9f56a1755
|
@ -352,23 +352,6 @@ module constitutive
|
||||||
end subroutine source_damage_isoBrittle_deltaState
|
end subroutine source_damage_isoBrittle_deltaState
|
||||||
|
|
||||||
|
|
||||||
module subroutine constitutive_plastic_LpAndItsTangents(Lp, dLp_dS, dLp_dFi, &
|
|
||||||
S, Fi, co, ip, el)
|
|
||||||
integer, intent(in) :: &
|
|
||||||
co, & !< component-ID of integration point
|
|
||||||
ip, & !< integration point
|
|
||||||
el !< element
|
|
||||||
real(pReal), intent(in), dimension(3,3) :: &
|
|
||||||
S, & !< 2nd Piola-Kirchhoff stress
|
|
||||||
Fi !< intermediate deformation gradient
|
|
||||||
real(pReal), intent(out), dimension(3,3) :: &
|
|
||||||
Lp !< plastic velocity gradient
|
|
||||||
real(pReal), intent(out), dimension(3,3,3,3) :: &
|
|
||||||
dLp_dS, &
|
|
||||||
dLp_dFi !< derivative of Lp with respect to Fi
|
|
||||||
end subroutine constitutive_plastic_LpAndItsTangents
|
|
||||||
|
|
||||||
|
|
||||||
module subroutine constitutive_plastic_dependentState(co,ip,el)
|
module subroutine constitutive_plastic_dependentState(co,ip,el)
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
co, & !< component-ID of integration point
|
co, & !< component-ID of integration point
|
||||||
|
@ -376,23 +359,6 @@ module constitutive
|
||||||
el !< element
|
el !< element
|
||||||
end subroutine constitutive_plastic_dependentState
|
end subroutine constitutive_plastic_dependentState
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module subroutine constitutive_hooke_SandItsTangents(S, dS_dFe, dS_dFi, Fe, Fi, co, ip, el)
|
|
||||||
integer, intent(in) :: &
|
|
||||||
co, & !< component-ID of integration point
|
|
||||||
ip, & !< integration point
|
|
||||||
el !< element
|
|
||||||
real(pReal), intent(in), dimension(3,3) :: &
|
|
||||||
Fe, & !< elastic deformation gradient
|
|
||||||
Fi !< intermediate deformation gradient
|
|
||||||
real(pReal), intent(out), dimension(3,3) :: &
|
|
||||||
S !< 2nd Piola-Kirchhoff stress tensor
|
|
||||||
real(pReal), intent(out), dimension(3,3,3,3) :: &
|
|
||||||
dS_dFe, & !< derivative of 2nd P-K stress with respect to elastic deformation gradient
|
|
||||||
dS_dFi !< derivative of 2nd P-K stress with respect to intermediate deformation gradient
|
|
||||||
end subroutine constitutive_hooke_SandItsTangents
|
|
||||||
|
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -530,7 +530,7 @@ end function plastic_active
|
||||||
!> @brief returns the 2nd Piola-Kirchhoff stress tensor and its tangent with respect to
|
!> @brief returns the 2nd Piola-Kirchhoff stress tensor and its tangent with respect to
|
||||||
!> the elastic and intermediate deformation gradients using Hooke's law
|
!> the elastic and intermediate deformation gradients using Hooke's law
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module subroutine constitutive_hooke_SandItsTangents(S, dS_dFe, dS_dFi, &
|
subroutine constitutive_hooke_SandItsTangents(S, dS_dFe, dS_dFi, &
|
||||||
Fe, Fi, co, ip, el)
|
Fe, Fi, co, ip, el)
|
||||||
|
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
|
@ -616,7 +616,7 @@ end subroutine constitutive_plastic_dependentState
|
||||||
! ToDo: Discuss whether it makes sense if crystallite handles the configuration conversion, i.e.
|
! ToDo: Discuss whether it makes sense if crystallite handles the configuration conversion, i.e.
|
||||||
! Mp in, dLp_dMp out
|
! Mp in, dLp_dMp out
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module subroutine constitutive_plastic_LpAndItsTangents(Lp, dLp_dS, dLp_dFi, &
|
subroutine constitutive_plastic_LpAndItsTangents(Lp, dLp_dS, dLp_dFi, &
|
||||||
S, Fi, co, ip, el)
|
S, Fi, co, ip, el)
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
co, & !< component-ID of integration point
|
co, & !< component-ID of integration point
|
||||||
|
@ -1846,7 +1846,9 @@ module subroutine mech_restartRead(groupHandle,ph)
|
||||||
end subroutine mech_restartRead
|
end subroutine mech_restartRead
|
||||||
|
|
||||||
|
|
||||||
! getter for non-mech (e.g. thermal)
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Get first Piola-Kichhoff stress (for use by non-mech physics)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function mech_S(ph,me) result(S)
|
module function mech_S(ph,me) result(S)
|
||||||
|
|
||||||
integer, intent(in) :: ph,me
|
integer, intent(in) :: ph,me
|
||||||
|
@ -1858,7 +1860,9 @@ module function mech_S(ph,me) result(S)
|
||||||
end function mech_S
|
end function mech_S
|
||||||
|
|
||||||
|
|
||||||
! getter for non-mech (e.g. thermal)
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Get plastic velocity gradient (for use by non-mech physics)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function mech_L_p(ph,me) result(L_p)
|
module function mech_L_p(ph,me) result(L_p)
|
||||||
|
|
||||||
integer, intent(in) :: ph,me
|
integer, intent(in) :: ph,me
|
||||||
|
@ -1870,7 +1874,9 @@ module function mech_L_p(ph,me) result(L_p)
|
||||||
end function mech_L_p
|
end function mech_L_p
|
||||||
|
|
||||||
|
|
||||||
! getter for non-mech (e.g. thermal)
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Get deformation gradient (for use by homogenization)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function constitutive_mech_getF(co,ip,el) result(F)
|
module function constitutive_mech_getF(co,ip,el) result(F)
|
||||||
|
|
||||||
integer, intent(in) :: co, ip, el
|
integer, intent(in) :: co, ip, el
|
||||||
|
@ -1882,7 +1888,9 @@ module function constitutive_mech_getF(co,ip,el) result(F)
|
||||||
end function constitutive_mech_getF
|
end function constitutive_mech_getF
|
||||||
|
|
||||||
|
|
||||||
! getter for non-mech (e.g. thermal)
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Get elastic deformation gradient (for use by non-mech physics)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function mech_F_e(ph,me) result(F_e)
|
module function mech_F_e(ph,me) result(F_e)
|
||||||
|
|
||||||
integer, intent(in) :: ph,me
|
integer, intent(in) :: ph,me
|
||||||
|
@ -1895,7 +1903,9 @@ end function mech_F_e
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
! getter for non-mech (e.g. thermal)
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Get second Piola-Kichhoff stress (for use by homogenization)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function constitutive_mech_getP(co,ip,el) result(P)
|
module function constitutive_mech_getP(co,ip,el) result(P)
|
||||||
|
|
||||||
integer, intent(in) :: co, ip, el
|
integer, intent(in) :: co, ip, el
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
!> @brief internal microstructure state for all thermal sources and kinematics constitutive models
|
!> @brief internal microstructure state for all thermal sources and kinematics constitutive models
|
||||||
!----------------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------------
|
||||||
submodule(constitutive) constitutive_thermal
|
submodule(constitutive) constitutive_thermal
|
||||||
|
|
||||||
type :: tDataContainer
|
type :: tDataContainer
|
||||||
real(pReal), dimension(:), allocatable :: T
|
real(pReal), dimension(:), allocatable :: T
|
||||||
end type tDataContainer
|
end type tDataContainer
|
||||||
|
|
||||||
type(tDataContainer), dimension(:), allocatable :: current
|
type(tDataContainer), dimension(:), allocatable :: current
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
@ -56,10 +56,10 @@ contains
|
||||||
!< @brief initializes thermal sources and kinematics mechanism
|
!< @brief initializes thermal sources and kinematics mechanism
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
module subroutine thermal_init(phases)
|
module subroutine thermal_init(phases)
|
||||||
|
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases
|
phases
|
||||||
|
|
||||||
integer :: &
|
integer :: &
|
||||||
ph, &
|
ph, &
|
||||||
Nconstituents
|
Nconstituents
|
||||||
|
@ -71,13 +71,13 @@ module subroutine thermal_init(phases)
|
||||||
|
|
||||||
|
|
||||||
do ph = 1, phases%length
|
do ph = 1, phases%length
|
||||||
|
|
||||||
Nconstituents = count(material_phaseAt == ph) * discretization_nIPs
|
Nconstituents = count(material_phaseAt == ph) * discretization_nIPs
|
||||||
|
|
||||||
allocate(current(ph)%T(Nconstituents))
|
allocate(current(ph)%T(Nconstituents))
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
! initialize source mechanisms
|
! initialize source mechanisms
|
||||||
if(maxval(phase_Nsources) /= 0) then
|
if(maxval(phase_Nsources) /= 0) then
|
||||||
where(source_thermal_dissipation_init (maxval(phase_Nsources))) phase_source = SOURCE_thermal_dissipation_ID
|
where(source_thermal_dissipation_init (maxval(phase_Nsources))) phase_source = SOURCE_thermal_dissipation_ID
|
||||||
|
@ -145,8 +145,9 @@ module subroutine constitutive_thermal_getRateAndItsTangents(TDot, dTDot_dT, T,
|
||||||
end subroutine constitutive_thermal_getRateAndItsTangents
|
end subroutine constitutive_thermal_getRateAndItsTangents
|
||||||
|
|
||||||
|
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
! getter for non-thermal (e.g. mech)
|
!< @brief Get temperature (for use by non-thermal physics)
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module function thermal_T(ph,me) result(T)
|
module function thermal_T(ph,me) result(T)
|
||||||
|
|
||||||
integer, intent(in) :: ph, me
|
integer, intent(in) :: ph, me
|
||||||
|
@ -158,10 +159,17 @@ module function thermal_T(ph,me) result(T)
|
||||||
end function thermal_T
|
end function thermal_T
|
||||||
|
|
||||||
|
|
||||||
! setter for homogenization
|
!----------------------------------------------------------------------------------------------
|
||||||
|
!< @brief Set temperature
|
||||||
|
!----------------------------------------------------------------------------------------------
|
||||||
module subroutine constitutive_thermal_setT(T,co,ip,el)
|
module subroutine constitutive_thermal_setT(T,co,ip,el)
|
||||||
|
|
||||||
real(pReal), intent(in) :: T
|
real(pReal), intent(in) :: T
|
||||||
integer, intent(in) :: co, ip, el
|
integer, intent(in) :: co, ip, el
|
||||||
|
|
||||||
|
|
||||||
|
current(material_phaseAt(co,el))%T(material_phaseMemberAt(co,ip,el)) = T
|
||||||
|
|
||||||
end subroutine constitutive_thermal_setT
|
end subroutine constitutive_thermal_setT
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue