being consistent

This commit is contained in:
Sharan Roongta 2021-11-25 14:51:31 +01:00
parent 90f967cc86
commit 271bb8df88
3 changed files with 32 additions and 8 deletions

@ -1 +1 @@
Subproject commit 7cae6f6fb6daca513fefbce21e4f07ab36fd3c78 Subproject commit e5c8977814ea8afca021fad2181dbb2a986bea70

View File

@ -98,7 +98,7 @@ module subroutine thermalexpansion_LiAndItsTangent(Li, dLi_dTstar, ph,me)
associate(prm => param(kinematics_thermal_expansion_instance(ph))) associate(prm => param(kinematics_thermal_expansion_instance(ph)))
Li = dot_T * ( & Li = dot_T * ( &
prm%A(1:3,1:3,1)*(T - prm%T_ref)**0 & ! constant coefficient prm%A(1:3,1:3,1)*1.0_pReal & ! constant coefficient
+ prm%A(1:3,1:3,2)*(T - prm%T_ref)**1 & ! linear coefficient + prm%A(1:3,1:3,2)*(T - prm%T_ref)**1 & ! linear coefficient
+ prm%A(1:3,1:3,3)*(T - prm%T_ref)**2 & ! quadratic coefficient + prm%A(1:3,1:3,3)*(T - prm%T_ref)**2 & ! quadratic coefficient
) / & ) / &

View File

@ -8,6 +8,8 @@ submodule(phase:mechanical) elastic
C_33 = 0.0_pReal, & C_33 = 0.0_pReal, &
C_44 = 0.0_pReal, & C_44 = 0.0_pReal, &
C_66 = 0.0_pReal C_66 = 0.0_pReal
real(pReal) :: &
T_ref
end type tParameters end type tParameters
type(tParameters), allocatable, dimension(:) :: param type(tParameters), allocatable, dimension(:) :: param
@ -45,6 +47,8 @@ module subroutine elastic_init(phases)
associate(prm => param(ph)) associate(prm => param(ph))
prm%T_ref = elastic%get_asFloat('T_ref', defaultVal=T_ROOM)
prm%C_11(1) = elastic%get_asFloat('C_11') prm%C_11(1) = elastic%get_asFloat('C_11')
prm%C_11(2) = elastic%get_asFloat('C_11,T', defaultVal=0.0_pReal) prm%C_11(2) = elastic%get_asFloat('C_11,T', defaultVal=0.0_pReal)
prm%C_11(3) = elastic%get_asFloat('C_11,T^2',defaultVal=0.0_pReal) prm%C_11(3) = elastic%get_asFloat('C_11,T^2',defaultVal=0.0_pReal)
@ -93,16 +97,36 @@ module function elastic_C66(ph,en) result(C66)
associate(prm => param(ph)) associate(prm => param(ph))
C66 = 0.0_pReal C66 = 0.0_pReal
T = thermal_T(ph,en) T = thermal_T(ph,en)
C66(1,1) = prm%C_11(1) + prm%C_11(2)*T + prm%C_11(3)*T**2
C66(1,2) = prm%C_12(1) + prm%C_12(2)*T + prm%C_12(3)*T**2 C66(1,1) = prm%C_11(1)* 1.0_pReal &
C66(4,4) = prm%C_44(1) + prm%C_44(2)*T + prm%C_44(3)*T**2 + prm%C_11(2)*(T - prm%T_ref)**1 &
+ prm%C_11(3)*(T - prm%T_ref)**2
C66(1,2) = prm%C_12(1)* 1.0_pReal &
+ prm%C_12(2)*(T - prm%T_ref)**1 &
+ prm%C_12(3)*(T - prm%T_ref)**2
C66(4,4) = prm%C_44(1)*1.0_pReal &
+ prm%C_44(2)*(T - prm%T_ref)**1 &
+ prm%C_44(3)*(T - prm%T_ref)**2
if (any(phase_lattice(ph) == ['hP','tI'])) then if (any(phase_lattice(ph) == ['hP','tI'])) then
C66(1,3) = prm%C_13(1) + prm%C_13(2)*T + prm%C_13(3)*T**2 C66(1,3) = prm%C_13(1)*1.0_pReal &
C66(3,3) = prm%C_33(1) + prm%C_33(2)*T + prm%C_33(3)*T**2 + prm%C_13(2)*(T - prm%T_ref)**1 &
+ prm%C_13(3)*(T - prm%T_ref)**2
C66(3,3) = prm%C_33(1)*1.0_pReal &
+ prm%C_33(2)*(T - prm%T_ref)**1 &
+ prm%C_33(3)*(T - prm%T_ref)**2
end if end if
if (phase_lattice(ph) == 'tI') C66(6,6) = prm%C_66(1) + prm%C_66(2)*T + prm%C_66(3)*T**2 if (phase_lattice(ph) == 'tI') then
C66(6,6) = prm%C_66(1)*1.0_pReal &
+ prm%C_66(2)*(T - prm%T_ref)**1 &
+ prm%C_66(3)*(T - prm%T_ref)**2
end if
C66 = lattice_symmetrize_C66(C66,phase_lattice(ph)) C66 = lattice_symmetrize_C66(C66,phase_lattice(ph))