documenting

This commit is contained in:
Martin Diehl 2020-12-30 13:57:37 +01:00
parent 8c6d759b55
commit f9f56a1755
3 changed files with 34 additions and 50 deletions

View File

@ -352,23 +352,6 @@ module constitutive
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)
integer, intent(in) :: &
co, & !< component-ID of integration point
@ -376,23 +359,6 @@ module constitutive
el !< element
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

View File

@ -530,7 +530,7 @@ end function plastic_active
!> @brief returns the 2nd Piola-Kirchhoff stress tensor and its tangent with respect to
!> 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)
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.
! 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)
integer, intent(in) :: &
co, & !< component-ID of integration point
@ -1846,7 +1846,9 @@ module subroutine mech_restartRead(groupHandle,ph)
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)
integer, intent(in) :: ph,me
@ -1858,7 +1860,9 @@ module function mech_S(ph,me) result(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)
integer, intent(in) :: ph,me
@ -1870,7 +1874,9 @@ module function mech_L_p(ph,me) result(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)
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
! 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)
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)
integer, intent(in) :: co, ip, el

View File

@ -2,11 +2,11 @@
!> @brief internal microstructure state for all thermal sources and kinematics constitutive models
!----------------------------------------------------------------------------------------------------
submodule(constitutive) constitutive_thermal
type :: tDataContainer
real(pReal), dimension(:), allocatable :: T
end type tDataContainer
type(tDataContainer), dimension(:), allocatable :: current
interface
@ -56,10 +56,10 @@ contains
!< @brief initializes thermal sources and kinematics mechanism
!----------------------------------------------------------------------------------------------
module subroutine thermal_init(phases)
class(tNode), pointer :: &
phases
integer :: &
ph, &
Nconstituents
@ -71,13 +71,13 @@ module subroutine thermal_init(phases)
do ph = 1, phases%length
Nconstituents = count(material_phaseAt == ph) * discretization_nIPs
allocate(current(ph)%T(Nconstituents))
enddo
! initialize source mechanisms
if(maxval(phase_Nsources) /= 0) then
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
! getter for non-thermal (e.g. mech)
!----------------------------------------------------------------------------------------------
!< @brief Get temperature (for use by non-thermal physics)
!----------------------------------------------------------------------------------------------
module function thermal_T(ph,me) result(T)
integer, intent(in) :: ph, me
@ -158,10 +159,17 @@ module function thermal_T(ph,me) result(T)
end function thermal_T
! setter for homogenization
!----------------------------------------------------------------------------------------------
!< @brief Set temperature
!----------------------------------------------------------------------------------------------
module subroutine constitutive_thermal_setT(T,co,ip,el)
real(pReal), intent(in) :: T
integer, intent(in) :: co, ip, el
current(material_phaseAt(co,el))%T(material_phaseMemberAt(co,ip,el)) = T
end subroutine constitutive_thermal_setT