fixed bug in counting outputs and changed damage formulation
This commit is contained in:
parent
546984b075
commit
9cc20ad751
|
@ -25,7 +25,7 @@ module damage_gradient
|
||||||
integer(pInt), dimension(:), allocatable, private :: &
|
integer(pInt), dimension(:), allocatable, private :: &
|
||||||
damage_gradient_Noutput !< number of outputs per instance of this damage
|
damage_gradient_Noutput !< number of outputs per instance of this damage
|
||||||
|
|
||||||
real(pReal), dimension(:), allocatable, private :: &
|
real(pReal), dimension(:), allocatable, public :: &
|
||||||
damage_gradient_crack_mobility
|
damage_gradient_crack_mobility
|
||||||
|
|
||||||
enum, bind(c)
|
enum, bind(c)
|
||||||
|
@ -143,13 +143,13 @@ subroutine damage_gradient_init(fileUnit)
|
||||||
case ('(output)')
|
case ('(output)')
|
||||||
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
||||||
case ('local_damage')
|
case ('local_damage')
|
||||||
damage_gradient_outputID(damage_gradient_Noutput(instance),instance) = local_damage_ID
|
|
||||||
damage_gradient_Noutput(instance) = damage_gradient_Noutput(instance) + 1_pInt
|
damage_gradient_Noutput(instance) = damage_gradient_Noutput(instance) + 1_pInt
|
||||||
|
damage_gradient_outputID(damage_gradient_Noutput(instance),instance) = local_damage_ID
|
||||||
damage_gradient_output(damage_gradient_Noutput(instance),instance) = &
|
damage_gradient_output(damage_gradient_Noutput(instance),instance) = &
|
||||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||||
case ('gradient_damage')
|
case ('gradient_damage')
|
||||||
damage_gradient_outputID(damage_gradient_Noutput(instance),instance) = gradient_damage_ID
|
|
||||||
damage_gradient_Noutput(instance) = damage_gradient_Noutput(instance) + 1_pInt
|
damage_gradient_Noutput(instance) = damage_gradient_Noutput(instance) + 1_pInt
|
||||||
|
damage_gradient_outputID(damage_gradient_Noutput(instance),instance) = gradient_damage_ID
|
||||||
damage_gradient_output(damage_gradient_Noutput(instance),instance) = &
|
damage_gradient_output(damage_gradient_Noutput(instance),instance) = &
|
||||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||||
end select
|
end select
|
||||||
|
@ -245,7 +245,7 @@ subroutine damage_gradient_aTolState(phase,instance)
|
||||||
instance ! number specifying the current instance of the damage
|
instance ! number specifying the current instance of the damage
|
||||||
real(pReal), dimension(damageState(phase)%sizeState) :: tempTol
|
real(pReal), dimension(damageState(phase)%sizeState) :: tempTol
|
||||||
|
|
||||||
tempTol = 0.0_pReal
|
tempTol = 1.0_pReal
|
||||||
damageState(phase)%aTolState = tempTol
|
damageState(phase)%aTolState = tempTol
|
||||||
end subroutine damage_gradient_aTolState
|
end subroutine damage_gradient_aTolState
|
||||||
|
|
||||||
|
@ -257,15 +257,11 @@ subroutine damage_gradient_microstructure(Tstar_v, Fe, ipc, ip, el)
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_damageInstance, &
|
phase_damageInstance, &
|
||||||
damageState
|
damageState
|
||||||
use numerics, only: &
|
|
||||||
charLength
|
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_Mandel6to33, &
|
math_Mandel6to33, &
|
||||||
math_mul33x33, &
|
math_mul33x33, &
|
||||||
math_transpose33, &
|
math_transpose33, &
|
||||||
math_I3
|
math_I3
|
||||||
use lattice, only: &
|
|
||||||
lattice_surfaceEnergy33
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -287,11 +283,8 @@ subroutine damage_gradient_microstructure(Tstar_v, Fe, ipc, ip, el)
|
||||||
damage = damageState(phase)%state(3,constituent)*damageState(phase)%state(3,constituent)
|
damage = damageState(phase)%state(3,constituent)*damageState(phase)%state(3,constituent)
|
||||||
|
|
||||||
damageState(phase)%state(2,constituent) = &
|
damageState(phase)%state(2,constituent) = &
|
||||||
min(1.0_pReal, &
|
0.5_pReal*sum(math_Mandel6to33(Tstar_v/damage)*(math_mul33x33(math_transpose33(Fe),Fe)-math_I3)) - &
|
||||||
2.0_pReal*charLength*maxval(lattice_surfaceEnergy33(1:3,1:3,phase))/ &
|
0.5_pReal*damageState(phase)%state(1,constituent)
|
||||||
(0.125_pReal*sum(math_Mandel6to33(Tstar_v/damage)*(math_mul33x33(math_transpose33(Fe),Fe)-math_I3)) + &
|
|
||||||
0.5_pReal*damageState(phase)%state(1,constituent)) &
|
|
||||||
)
|
|
||||||
|
|
||||||
end subroutine damage_gradient_microstructure
|
end subroutine damage_gradient_microstructure
|
||||||
|
|
||||||
|
|
|
@ -143,8 +143,8 @@ subroutine thermal_adiabatic_init(fileUnit)
|
||||||
case ('(output)')
|
case ('(output)')
|
||||||
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
||||||
case ('temperature')
|
case ('temperature')
|
||||||
thermal_adiabatic_outputID(thermal_adiabatic_Noutput(instance),instance) = temperature_ID
|
|
||||||
thermal_adiabatic_Noutput(instance) = thermal_adiabatic_Noutput(instance) + 1_pInt
|
thermal_adiabatic_Noutput(instance) = thermal_adiabatic_Noutput(instance) + 1_pInt
|
||||||
|
thermal_adiabatic_outputID(thermal_adiabatic_Noutput(instance),instance) = temperature_ID
|
||||||
thermal_adiabatic_output(thermal_adiabatic_Noutput(instance),instance) = &
|
thermal_adiabatic_output(thermal_adiabatic_Noutput(instance),instance) = &
|
||||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||||
end select
|
end select
|
||||||
|
|
|
@ -25,7 +25,7 @@ module thermal_conduction
|
||||||
integer(pInt), dimension(:), allocatable, private :: &
|
integer(pInt), dimension(:), allocatable, private :: &
|
||||||
thermal_conduction_Noutput !< number of outputs per instance of this damage
|
thermal_conduction_Noutput !< number of outputs per instance of this damage
|
||||||
|
|
||||||
real(pReal), dimension(:), allocatable, private :: &
|
real(pReal), dimension(:), allocatable, public :: &
|
||||||
thermal_conduction_specific_heat, &
|
thermal_conduction_specific_heat, &
|
||||||
thermal_conduction_density
|
thermal_conduction_density
|
||||||
|
|
||||||
|
@ -143,8 +143,8 @@ subroutine thermal_conduction_init(fileUnit)
|
||||||
case ('(output)')
|
case ('(output)')
|
||||||
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
||||||
case ('temperature')
|
case ('temperature')
|
||||||
thermal_conduction_outputID(thermal_conduction_Noutput(instance),instance) = temperature_ID
|
|
||||||
thermal_conduction_Noutput(instance) = thermal_conduction_Noutput(instance) + 1_pInt
|
thermal_conduction_Noutput(instance) = thermal_conduction_Noutput(instance) + 1_pInt
|
||||||
|
thermal_conduction_outputID(thermal_conduction_Noutput(instance),instance) = temperature_ID
|
||||||
thermal_conduction_output(thermal_conduction_Noutput(instance),instance) = &
|
thermal_conduction_output(thermal_conduction_Noutput(instance),instance) = &
|
||||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||||
end select
|
end select
|
||||||
|
@ -242,7 +242,7 @@ subroutine thermal_conduction_aTolState(phase,instance)
|
||||||
instance ! number specifying the current instance of the thermal
|
instance ! number specifying the current instance of the thermal
|
||||||
real(pReal), dimension(thermalState(phase)%sizeState) :: tempTol
|
real(pReal), dimension(thermalState(phase)%sizeState) :: tempTol
|
||||||
|
|
||||||
tempTol = 0.0_pReal
|
tempTol = 1.0_pReal
|
||||||
thermalState(phase)%aTolState = tempTol
|
thermalState(phase)%aTolState = tempTol
|
||||||
end subroutine thermal_conduction_aTolState
|
end subroutine thermal_conduction_aTolState
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue