From 445a091fec689a2ddb433ccd075b43e63c65aba6 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 24 Jun 2022 07:04:52 +0200 Subject: [PATCH] easier to understand --- src/homogenization_damage.f90 | 17 +++++++---------- src/homogenization_thermal.f90 | 13 ++++++------- src/phase.f90 | 3 ++- src/phase_damage.f90 | 17 +++++++++-------- src/phase_thermal.f90 | 13 +++++++------ 5 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/homogenization_damage.f90 b/src/homogenization_damage.f90 index 2e66da591..3363408d0 100644 --- a/src/homogenization_damage.f90 +++ b/src/homogenization_damage.f90 @@ -3,8 +3,6 @@ !-------------------------------------------------------------------------------------------------- submodule(homogenization) damage - use lattice - interface module subroutine pass_init @@ -79,8 +77,9 @@ end subroutine damage_init !-------------------------------------------------------------------------------------------------- module subroutine damage_partition(ce) + integer, intent(in) :: ce + real(pReal) :: phi - integer, intent(in) :: ce if(damageState_h(material_homogenizationID(ce))%sizeState < 1) return @@ -91,7 +90,7 @@ end subroutine damage_partition !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized damage viscosity. +!> @brief Homogenize damage viscosity. !-------------------------------------------------------------------------------------------------- module function homogenization_mu_phi(ce) result(mu) @@ -105,7 +104,7 @@ end function homogenization_mu_phi !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized damage conductivity/diffusivity in reference configuration. +!> @brief Homogenize damage conductivity. !-------------------------------------------------------------------------------------------------- module function homogenization_K_phi(ce) result(K) @@ -119,13 +118,12 @@ end function homogenization_K_phi !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized damage driving force. +!> @brief Homogenize damage driving force. !-------------------------------------------------------------------------------------------------- module function homogenization_f_phi(phi,ce) result(f) integer, intent(in) :: ce - real(pReal), intent(in) :: & - phi + real(pReal), intent(in) :: phi real(pReal) :: f @@ -140,8 +138,7 @@ end function homogenization_f_phi module subroutine homogenization_set_phi(phi,ce) integer, intent(in) :: ce - real(pReal), intent(in) :: & - phi + real(pReal), intent(in) :: phi integer :: & ho, & diff --git a/src/homogenization_thermal.f90 b/src/homogenization_thermal.f90 index e9c9d2195..ceed47365 100644 --- a/src/homogenization_thermal.f90 +++ b/src/homogenization_thermal.f90 @@ -3,8 +3,6 @@ !-------------------------------------------------------------------------------------------------- submodule(homogenization) thermal - use lattice - interface module subroutine pass_init @@ -89,7 +87,7 @@ end subroutine thermal_init !-------------------------------------------------------------------------------------------------- module subroutine thermal_partition(ce) - integer, intent(in) :: ce + integer, intent(in) :: ce real(pReal) :: T, dot_T integer :: co @@ -105,7 +103,7 @@ end subroutine thermal_partition !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized thermal viscosity. +!> @brief Homogenize thermal viscosity. !-------------------------------------------------------------------------------------------------- module function homogenization_mu_T(ce) result(mu) @@ -124,7 +122,7 @@ end function homogenization_mu_T !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized thermal conductivity in reference configuration. +!> @brief Homogenize thermal conductivity. !-------------------------------------------------------------------------------------------------- module function homogenization_K_T(ce) result(K) @@ -143,7 +141,7 @@ end function homogenization_K_T !-------------------------------------------------------------------------------------------------- -!> @brief Homogenized heat generation rate. +!> @brief Homogenize heat generation rate. !-------------------------------------------------------------------------------------------------- module function homogenization_f_T(ce) result(f) @@ -167,7 +165,7 @@ end function homogenization_f_T module subroutine homogenization_thermal_setField(T,dot_T, ce) integer, intent(in) :: ce - real(pReal), intent(in) :: T, dot_T + real(pReal), intent(in) :: T, dot_T current(material_homogenizationID(ce))%T(material_homogenizationEntry(ce)) = T @@ -187,6 +185,7 @@ module subroutine thermal_results(ho,group) integer :: o + associate(prm => param(ho)) outputsLoop: do o = 1,size(prm%output) select case(trim(prm%output(o))) diff --git a/src/phase.f90 b/src/phase.f90 index af7197f7b..1403fef22 100644 --- a/src/phase.f90 +++ b/src/phase.f90 @@ -626,9 +626,10 @@ function crystallite_push33ToRef(co,ce, tensor33) ce real(pReal), dimension(3,3) :: crystallite_push33ToRef - real(pReal), dimension(3,3) :: T + real(pReal), dimension(3,3) :: T integer :: ph, en + ph = material_phaseID(co,ce) en = material_phaseEntry(co,ce) T = matmul(phase_O_0(ph)%data(en)%asMatrix(),transpose(math_inv33(phase_F(co,ce)))) ! ToDo: initial orientation correct? diff --git a/src/phase_damage.f90 b/src/phase_damage.f90 index 82d94150d..7211f2db5 100644 --- a/src/phase_damage.f90 +++ b/src/phase_damage.f90 @@ -4,8 +4,9 @@ submodule(phase) damage type :: tDamageParameters - real(pReal) :: mu = 0.0_pReal !< viscosity - real(pReal), dimension(3,3) :: D = 0.0_pReal !< conductivity/diffusivity + real(pReal) :: & + mu = 0.0_pReal, & !< viscosity + l_c = 0.0_pReal !< characteristic length end type tDamageParameters enum, bind(c); enumerator :: & @@ -104,8 +105,8 @@ module subroutine damage_init if (sources%length == 1) then damage_active = .true. source => sources%get(1) - param(ph)%mu = source%get_asFloat('mu') - param(ph)%D = math_I3 * source%get_asFloat('l_c')**2 + param(ph)%mu = source%get_asFloat('mu') + param(ph)%l_c = source%get_asFloat('l_c') end if end do @@ -117,7 +118,7 @@ module subroutine damage_init where(anisobrittle_init()) phase_damage = DAMAGE_ANISOBRITTLE_ID end if - phase_damage_maxSizeDotState = maxval(damageState%sizeDotState) + phase_damage_maxSizeDotState = maxval(damageState%sizeDotState) end subroutine damage_init @@ -157,9 +158,9 @@ module function phase_damage_C66(C66,ph,en) result(C66_degraded) damageType: select case (phase_damage(ph)) case (DAMAGE_ISOBRITTLE_ID) damageType - C66_degraded = C66 * damage_phi(ph,en)**2 + C66_degraded = C66 * damage_phi(ph,en)**2 case default damageType - C66_degraded = C66 + C66_degraded = C66 end select damageType end function phase_damage_C66 @@ -385,7 +386,7 @@ module function phase_K_phi(co,ce) result(K) real(pReal), dimension(3,3) :: K - K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%D) + K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%l_c**2*math_I3) end function phase_K_phi diff --git a/src/phase_thermal.f90 b/src/phase_thermal.f90 index 0f5836df9..ed374e142 100644 --- a/src/phase_thermal.f90 +++ b/src/phase_thermal.f90 @@ -4,8 +4,8 @@ submodule(phase) thermal type :: tThermalParameters - real(pReal) :: C_p = 0.0_pReal !< heat capacity - real(pReal), dimension(3,3) :: K = 0.0_pReal !< thermal conductivity + real(pReal) :: C_p = 0.0_pReal !< heat capacity + real(pReal), dimension(3,3) :: K = 0.0_pReal !< thermal conductivity character(len=pStringLen), allocatable, dimension(:) :: output end type tThermalParameters @@ -72,7 +72,7 @@ submodule(phase) thermal contains !---------------------------------------------------------------------------------------------- -!< @brief initializes thermal sources and kinematics mechanism +!< @brief Initializes thermal sources and kinematics mechanism. !---------------------------------------------------------------------------------------------- module subroutine thermal_init(phases) @@ -146,7 +146,7 @@ end subroutine thermal_init !---------------------------------------------------------------------------------------------- -!< @brief calculates thermal dissipation rate +!< @brief Calculate thermal source. !---------------------------------------------------------------------------------------------- module function phase_f_T(ph,en) result(f) @@ -176,7 +176,7 @@ end function phase_f_T !-------------------------------------------------------------------------------------------------- -!> @brief contains the constitutive equation for calculating the rate of change of microstructure +!> @brief tbd. !-------------------------------------------------------------------------------------------------- function phase_thermal_collectDotState(ph,en) result(broken) @@ -216,7 +216,7 @@ end function phase_mu_T !-------------------------------------------------------------------------------------------------- -!> @brief Thermal conductivity/diffusivity in reference configuration. +!> @brief Thermal conductivity in reference configuration. !-------------------------------------------------------------------------------------------------- module function phase_K_T(co,ce) result(K) @@ -255,6 +255,7 @@ function integrateThermalState(Delta_t, ph,en) result(broken) so, & sizeDotState + broken = phase_thermal_collectDotState(ph,en) if (broken) return