finite strain correction for respective expansions
This commit is contained in:
parent
09c7affbbc
commit
3d94ae4074
|
@ -187,10 +187,13 @@ subroutine kinematics_hydrogen_strain_LiAndItsTangent(Li, dLi_dTstar3333, ipc, i
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
|
hydrogenConc, &
|
||||||
hydrogenConcRate, &
|
hydrogenConcRate, &
|
||||||
hydrogenfluxMapping
|
hydrogenfluxMapping
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_I3
|
math_I3
|
||||||
|
use lattice, only: &
|
||||||
|
lattice_equilibriumHydrogenConcentration
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -205,15 +208,20 @@ subroutine kinematics_hydrogen_strain_LiAndItsTangent(Li, dLi_dTstar3333, ipc, i
|
||||||
phase, &
|
phase, &
|
||||||
instance, &
|
instance, &
|
||||||
homog, offset
|
homog, offset
|
||||||
|
real(pReal) :: &
|
||||||
|
Ch, ChEq, ChDot
|
||||||
|
|
||||||
phase = material_phase(ipc,ip,el)
|
phase = material_phase(ipc,ip,el)
|
||||||
instance = kinematics_hydrogen_strain_instance(phase)
|
instance = kinematics_hydrogen_strain_instance(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
offset = hydrogenfluxMapping(homog)%p(ip,el)
|
offset = hydrogenfluxMapping(homog)%p(ip,el)
|
||||||
|
Ch = hydrogenConc(homog)%p(offset)
|
||||||
|
ChDot = hydrogenConcRate(homog)%p(offset)
|
||||||
|
ChEq = lattice_equilibriumHydrogenConcentration(phase)
|
||||||
|
|
||||||
Li = hydrogenConcRate(homog)%p(offset)* &
|
Li = ChDot*math_I3* &
|
||||||
kinematics_hydrogen_strain_coeff(instance)* &
|
kinematics_hydrogen_strain_coeff(instance)/ &
|
||||||
math_I3
|
(1.0_pReal + kinematics_hydrogen_strain_coeff(instance)*(Ch - ChEq))
|
||||||
dLi_dTstar3333 = 0.0_pReal
|
dLi_dTstar3333 = 0.0_pReal
|
||||||
|
|
||||||
end subroutine kinematics_hydrogen_strain_LiAndItsTangent
|
end subroutine kinematics_hydrogen_strain_LiAndItsTangent
|
||||||
|
|
|
@ -191,10 +191,12 @@ subroutine kinematics_thermal_expansion_LiAndItsTangent(Li, dLi_dTstar3333, ipc,
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
|
temperature, &
|
||||||
temperatureRate, &
|
temperatureRate, &
|
||||||
thermalMapping
|
thermalMapping
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_thermalExpansion33
|
lattice_thermalExpansion33, &
|
||||||
|
lattice_referenceTemperature
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -208,12 +210,19 @@ subroutine kinematics_thermal_expansion_LiAndItsTangent(Li, dLi_dTstar3333, ipc,
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, &
|
phase, &
|
||||||
homog, offset
|
homog, offset
|
||||||
|
real(pReal) :: &
|
||||||
|
T, TRef, TDot
|
||||||
|
|
||||||
phase = material_phase(ipc,ip,el)
|
phase = material_phase(ipc,ip,el)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
offset = thermalMapping(homog)%p(ip,el)
|
offset = thermalMapping(homog)%p(ip,el)
|
||||||
|
T = temperature(homog)%p(offset)
|
||||||
|
TDot = temperatureRate(homog)%p(offset)
|
||||||
|
TRef = lattice_referenceTemperature(phase)
|
||||||
|
|
||||||
Li = temperatureRate(homog)%p(offset) * lattice_thermalExpansion33(1:3,1:3,phase)
|
Li = TDot* &
|
||||||
|
lattice_thermalExpansion33(1:3,1:3,phase)/ &
|
||||||
|
(1.0_pReal + lattice_thermalExpansion33(1:3,1:3,phase)*(T - TRef))
|
||||||
dLi_dTstar3333 = 0.0_pReal
|
dLi_dTstar3333 = 0.0_pReal
|
||||||
|
|
||||||
end subroutine kinematics_thermal_expansion_LiAndItsTangent
|
end subroutine kinematics_thermal_expansion_LiAndItsTangent
|
||||||
|
|
|
@ -186,10 +186,13 @@ subroutine kinematics_vacancy_strain_LiAndItsTangent(Li, dLi_dTstar3333, ipc, ip
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
|
vacancyConc, &
|
||||||
vacancyConcRate, &
|
vacancyConcRate, &
|
||||||
vacancyfluxMapping
|
vacancyfluxMapping
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_I3
|
math_I3
|
||||||
|
use lattice, only: &
|
||||||
|
lattice_equilibriumVacancyConcentration
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -204,15 +207,22 @@ subroutine kinematics_vacancy_strain_LiAndItsTangent(Li, dLi_dTstar3333, ipc, ip
|
||||||
phase, &
|
phase, &
|
||||||
instance, &
|
instance, &
|
||||||
homog, offset
|
homog, offset
|
||||||
|
real(pReal) :: &
|
||||||
|
Cv, CvEq, CvDot
|
||||||
|
|
||||||
phase = material_phase(ipc,ip,el)
|
phase = material_phase(ipc,ip,el)
|
||||||
instance = kinematics_vacancy_strain_instance(phase)
|
instance = kinematics_vacancy_strain_instance(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
offset = vacancyfluxMapping(homog)%p(ip,el)
|
offset = vacancyfluxMapping(homog)%p(ip,el)
|
||||||
|
|
||||||
Li = vacancyConcRate(homog)%p(offset)* &
|
Cv = vacancyConc(homog)%p(offset)
|
||||||
kinematics_vacancy_strain_coeff(instance)* &
|
CvDot = vacancyConcRate(homog)%p(offset)
|
||||||
math_I3
|
CvEq = lattice_equilibriumvacancyConcentration(phase)
|
||||||
|
|
||||||
|
Li = CvDot*math_I3* &
|
||||||
|
kinematics_vacancy_strain_coeff(instance)/ &
|
||||||
|
(1.0_pReal + kinematics_vacancy_strain_coeff(instance)*(Cv - CvEq))
|
||||||
|
|
||||||
dLi_dTstar3333 = 0.0_pReal
|
dLi_dTstar3333 = 0.0_pReal
|
||||||
|
|
||||||
end subroutine kinematics_vacancy_strain_LiAndItsTangent
|
end subroutine kinematics_vacancy_strain_LiAndItsTangent
|
||||||
|
|
Loading…
Reference in New Issue