finite strain correction for respective expansions

This commit is contained in:
Pratheek Shanthraj 2015-08-05 14:12:54 +00:00
parent 09c7affbbc
commit 3d94ae4074
3 changed files with 35 additions and 8 deletions

View File

@ -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

View File

@ -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

View File

@ -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