use Voigt notation

there is no advantage of using the symmetrized conversions
This commit is contained in:
Martin Diehl 2021-11-18 17:33:08 +01:00
parent 4d29393ced
commit 8a8fdfc93c
2 changed files with 22 additions and 37 deletions

View File

@ -64,38 +64,7 @@ end subroutine elastic_init
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief Return 6x6 elasticity tensor. !> @brief Return 6x6 elasticity tensor.
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
function get_C66(ph,en) function elastic_C66(ph,en) result(C66)
integer, intent(in) :: &
ph, &
en
real(pReal), dimension(6,6) :: get_C66
associate(prm => param(ph))
get_C66 = 0.0_pReal
get_C66(1,1) = prm%C_11
get_C66(1,2) = prm%C_12
get_C66(4,4) = prm%C_44
if (any(phase_lattice(ph) == ['hP','tI'])) then
get_C66(1,3) = prm%C_13
get_C66(3,3) = prm%C_33
end if
if (phase_lattice(ph) == 'tI') get_C66(6,6) = prm%C_66
get_C66 = lattice_symmetrize_C66(get_C66,phase_lattice(ph))
end associate
end function get_C66
!--------------------------------------------------------------------------------------------------
!> @brief Return 6x6 elasticity tensor.
!--------------------------------------------------------------------------------------------------
module function elastic_C66(ph,en) result(C66)
integer, intent(in) :: & integer, intent(in) :: &
ph, & ph, &
@ -103,7 +72,22 @@ module function elastic_C66(ph,en) result(C66)
real(pReal), dimension(6,6) :: C66 real(pReal), dimension(6,6) :: C66
C66 = math_sym3333to66(math_Voigt66to3333(get_C66(ph,en))) ! Literature data is in Voigt notation associate(prm => param(ph))
C66 = 0.0_pReal
C66(1,1) = prm%C_11
C66(1,2) = prm%C_12
C66(4,4) = prm%C_44
if (any(phase_lattice(ph) == ['hP','tI'])) then
C66(1,3) = prm%C_13
C66(3,3) = prm%C_33
end if
if (phase_lattice(ph) == 'tI') C66(6,6) = prm%C_66
C66 = lattice_symmetrize_C66(C66,phase_lattice(ph))
end associate
end function elastic_C66 end function elastic_C66
@ -120,10 +104,11 @@ module function elastic_mu(ph,en) result(mu)
mu mu
mu = lattice_equivalent_mu(get_C66(ph,en),'voigt') mu = lattice_equivalent_mu(elastic_C66(ph,en),'voigt')
end function elastic_mu end function elastic_mu
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief Return Poisson ratio. !> @brief Return Poisson ratio.
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
@ -136,7 +121,7 @@ module function elastic_nu(ph,en) result(nu)
nu nu
nu = lattice_equivalent_nu(get_C66(ph,en),'voigt') nu = lattice_equivalent_nu(elastic_C66(ph,en),'voigt')
end function elastic_nu end function elastic_nu
@ -194,7 +179,7 @@ module function phase_homogenizedC66(ph,en) result(C)
case (PLASTICITY_DISLOTWIN_ID) plasticType case (PLASTICITY_DISLOTWIN_ID) plasticType
C = plastic_dislotwin_homogenizedC(ph,en) C = plastic_dislotwin_homogenizedC(ph,en)
case default plasticType case default plasticType
C = elastic_C66(ph,en) C = math_sym3333to66(math_Voigt66to3333(elastic_C66(ph,en)))
end select plasticType end select plasticType
end function phase_homogenizedC66 end function phase_homogenizedC66

View File

@ -484,7 +484,7 @@ module function plastic_dislotwin_homogenizedC(ph,en) result(homogenizedC)
associate(prm => param(ph), stt => state(ph)) associate(prm => param(ph), stt => state(ph))
C66 = elastic_C66(ph,en) C66 = math_sym3333to66(math_Voigt66to3333(elastic_C66(ph,en)))
f_unrotated = 1.0_pReal & f_unrotated = 1.0_pReal &
- sum(stt%f_tw(1:prm%sum_N_tw,en)) & - sum(stt%f_tw(1:prm%sum_N_tw,en)) &