From 4c650476124683f4a12493bf47f8d909a0e48baf Mon Sep 17 00:00:00 2001 From: Franz Roters Date: Mon, 13 Feb 2023 17:59:22 +0100 Subject: [PATCH] calculate plastic dissipation based on M_p not S --- src/phase.f90 | 4 ++++ src/phase_mechanical.f90 | 14 ++++++++++++++ src/phase_thermal_dissipation.f90 | 6 +++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/phase.f90 b/src/phase.f90 index b3ed0f3ca..8f670696d 100644 --- a/src/phase.f90 +++ b/src/phase.f90 @@ -196,6 +196,10 @@ module phase real(pReal), dimension(3,3) :: F_e end function mechanical_F_e + module function mechanical_F_i(ph,en) result(F_i) + integer, intent(in) :: ph,en + real(pReal), dimension(3,3) :: F_i + end function mechanical_F_i module function phase_F(co,ce) result(F) integer, intent(in) :: co, ce diff --git a/src/phase_mechanical.f90 b/src/phase_mechanical.f90 index e54b31990..4049914de 100644 --- a/src/phase_mechanical.f90 +++ b/src/phase_mechanical.f90 @@ -1319,6 +1319,20 @@ module function mechanical_F_e(ph,en) result(F_e) end function mechanical_F_e +!-------------------------------------------------------------------------------------------------- +!< @brief Get eigen deformation gradient (for use by non-mech physics). +!-------------------------------------------------------------------------------------------------- +module function mechanical_F_i(ph,en) result(F_i) + + integer, intent(in) :: ph,en + real(pReal), dimension(3,3) :: F_i + + + F_i = phase_mechanical_Fi(ph)%data(1:3,1:3,en) + +end function mechanical_F_i + + !-------------------------------------------------------------------------------------------------- !< @brief Get second Piola-Kirchhoff stress (for use by homogenization). !-------------------------------------------------------------------------------------------------- diff --git a/src/phase_thermal_dissipation.f90 b/src/phase_thermal_dissipation.f90 index d36cc027b..ba2a9aafc 100644 --- a/src/phase_thermal_dissipation.f90 +++ b/src/phase_thermal_dissipation.f90 @@ -1,6 +1,7 @@ !-------------------------------------------------------------------------------------------------- !> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH !> @author Pratheek Shanthraj, Max-Planck-Institut für Eisenforschung GmbH +!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH !> @brief material subroutine for thermal source due to plastic dissipation !> @details to be done !-------------------------------------------------------------------------------------------------- @@ -77,10 +78,13 @@ module function dissipation_f_T(ph,en) result(f_T) integer, intent(in) :: ph, en real(pReal) :: & f_T + real(pReal), dimension(3,3) :: & + Mp !< Mandel stress work conjugate with Lp + Mp = matmul(matmul(transpose(mechanical_F_i(ph,en)),mechanical_F_i(ph,en)),mechanical_S(ph,en)) associate(prm => param(ph)) - f_T = prm%kappa*sum(abs(mechanical_S(ph,en)*mechanical_L_p(ph,en))) + f_T = prm%kappa*sum(abs(Mp*mechanical_L_p(ph,en))) end associate end function dissipation_f_T