all damage models consistently semi-explicit

This commit is contained in:
Pratheek Shanthraj 2014-11-26 11:32:50 +00:00
parent 6e90260817
commit 61bb9a373e
5 changed files with 32 additions and 16 deletions

View File

@ -391,8 +391,8 @@ subroutine damage_anisoBrittle_dotState(Tstar_v,ipc, ip, el)
traction_t = dot_product(Tstar_v,lattice_Scleavage_v(1:6,2,index_myFamily+i,phase))
traction_n = dot_product(Tstar_v,lattice_Scleavage_v(1:6,3,index_myFamily+i,phase))
traction_crit = damage_anisoBrittle_critLoad(f,instance)* &
damageState(phase)%state(index_d,constituent)* &
damageState(phase)%state(index_d,constituent)
damageState(phase)%state0(index_d,constituent)* &
damageState(phase)%state0(index_d,constituent)
udotd = &
damage_anisoBrittle_sdot_0(instance)* &
@ -516,8 +516,8 @@ subroutine damage_anisoBrittle_LdAndItsTangent(Ld, dLd_dTstar, Tstar_v, ipc, ip,
traction_t = dot_product(Tstar_v,lattice_Scleavage_v(1:6,2,index_myFamily+i,phase))
traction_n = dot_product(Tstar_v,lattice_Scleavage_v(1:6,3,index_myFamily+i,phase))
traction_crit = damage_anisoBrittle_critLoad(f,instance)* &
damageState(phase)%state(index,constituent)* &
damageState(phase)%state(index,constituent)
damageState(phase)%state0(index,constituent)* &
damageState(phase)%state0(index,constituent)
udotd = &
sign(1.0_pReal,traction_d)* &
damage_anisoBrittle_sdot_0(instance)* &
@ -647,8 +647,8 @@ subroutine damage_anisoBrittle_putFd(Tstar_v, dt, ipc, ip, el)
traction_t = dot_product(Tstar_v,lattice_Scleavage_v(1:6,2,index_myFamily+i,phase))
traction_n = dot_product(Tstar_v,lattice_Scleavage_v(1:6,3,index_myFamily+i,phase))
traction_crit = damage_anisoBrittle_critLoad(f,instance)* &
damageState(phase)%state(index,constituent)* &
damageState(phase)%state(index,constituent)
damageState(phase)%state0(index,constituent)* &
damageState(phase)%state0(index,constituent)
udotd = &
sign(1.0_pReal,traction_d)* &
damage_anisoBrittle_sdot_0(instance)* &
@ -749,6 +749,8 @@ function damage_anisoBrittle_getDamage(ipc, ip, el)
use material, only: &
material_homog, &
mappingHomogenization, &
mappingConstitutive, &
damageState, &
fieldDamage, &
field_damage_type, &
FIELD_DAMAGE_LOCAL_ID, &
@ -763,7 +765,8 @@ function damage_anisoBrittle_getDamage(ipc, ip, el)
select case(field_damage_type(material_homog(ip,el)))
case (FIELD_DAMAGE_LOCAL_ID)
damage_anisoBrittle_getDamage = damage_anisoBrittle_getLocalDamage(ipc, ip, el)
damage_anisoBrittle_getDamage = damageState(mappingConstitutive(2,ipc,ip,el))% &
state0(1,mappingConstitutive(1,ipc,ip,el))
case (FIELD_DAMAGE_NONLOCAL_ID)
damage_anisoBrittle_getDamage = fieldDamage(material_homog(ip,el))% &

View File

@ -383,6 +383,8 @@ function damage_anisoDuctile_getDamage(ipc, ip, el)
use material, only: &
material_homog, &
mappingHomogenization, &
mappingConstitutive, &
damageState, &
fieldDamage, &
field_damage_type, &
FIELD_DAMAGE_LOCAL_ID, &
@ -397,7 +399,8 @@ function damage_anisoDuctile_getDamage(ipc, ip, el)
select case(field_damage_type(material_homog(ip,el)))
case (FIELD_DAMAGE_LOCAL_ID)
damage_anisoDuctile_getDamage = damage_anisoDuctile_getLocalDamage(ipc, ip, el)
damage_anisoDuctile_getDamage = damageState(mappingConstitutive(2,ipc,ip,el))% &
state0(1,mappingConstitutive(1,ipc,ip,el))
case (FIELD_DAMAGE_NONLOCAL_ID)
damage_anisoDuctile_getDamage = fieldDamage(material_homog(ip,el))% &
@ -476,8 +479,8 @@ function damage_anisoDuctile_getSlipDamage(ipc, ip, el)
instance = phase_damageInstance(phase)
damage_anisoDuctile_getSlipDamage = &
damageState(phase)%state(2:1+damage_anisoDuctile_totalNslip(instance),constituent)* &
damageState(phase)%state(2:1+damage_anisoDuctile_totalNslip(instance),constituent)
damageState(phase)%state0(2:1+damage_anisoDuctile_totalNslip(instance),constituent)* &
damageState(phase)%state0(2:1+damage_anisoDuctile_totalNslip(instance),constituent)
end function damage_anisoDuctile_getSlipDamage

View File

@ -339,6 +339,8 @@ function damage_isoBrittle_getDamage(ipc, ip, el)
use material, only: &
material_homog, &
mappingHomogenization, &
mappingConstitutive, &
damageState, &
fieldDamage, &
field_damage_type, &
FIELD_DAMAGE_LOCAL_ID, &
@ -353,7 +355,8 @@ function damage_isoBrittle_getDamage(ipc, ip, el)
select case(field_damage_type(material_homog(ip,el)))
case (FIELD_DAMAGE_LOCAL_ID)
damage_isoBrittle_getDamage = damage_isoBrittle_getLocalDamage(ipc, ip, el)
damage_isoBrittle_getDamage = damageState(mappingConstitutive(2,ipc,ip,el))% &
state0(1,mappingConstitutive(1,ipc,ip,el))
case (FIELD_DAMAGE_NONLOCAL_ID)
damage_isoBrittle_getDamage = fieldDamage(material_homog(ip,el))% &
@ -449,13 +452,14 @@ function damage_isoBrittle_getDamagedC66(C, ipc, ip, el)
damage_isoBrittle_getDamagedC66
integer(pInt) :: &
phase, constituent
real(pReal) :: &
damage
phase = mappingConstitutive(2,ipc,ip,el)
constituent = mappingConstitutive(1,ipc,ip,el)
damage = damage_isoBrittle_getDamage(ipc, ip, el)
damage_isoBrittle_getDamagedC66 = &
damageState(phase)%state0(1,constituent)* &
damageState(phase)%state0(1,constituent)* &
C
damage*damage*C
end function damage_isoBrittle_getDamagedC66

View File

@ -328,6 +328,8 @@ function damage_isoDuctile_getDamage(ipc, ip, el)
use material, only: &
material_homog, &
mappingHomogenization, &
mappingConstitutive, &
damageState, &
fieldDamage, &
field_damage_type, &
FIELD_DAMAGE_LOCAL_ID, &
@ -342,7 +344,8 @@ function damage_isoDuctile_getDamage(ipc, ip, el)
select case(field_damage_type(material_homog(ip,el)))
case (FIELD_DAMAGE_LOCAL_ID)
damage_isoDuctile_getDamage = damage_isoDuctile_getLocalDamage(ipc, ip, el)
damage_isoDuctile_getDamage = damageState(mappingConstitutive(2,ipc,ip,el))% &
state0(1,mappingConstitutive(1,ipc,ip,el))
case (FIELD_DAMAGE_NONLOCAL_ID)
damage_isoDuctile_getDamage = fieldDamage(material_homog(ip,el))% &

View File

@ -351,6 +351,8 @@ function damage_phaseField_getDamage(ipc, ip, el)
use material, only: &
material_homog, &
mappingHomogenization, &
mappingConstitutive, &
damageState, &
fieldDamage, &
field_damage_type, &
FIELD_DAMAGE_LOCAL_ID, &
@ -365,7 +367,8 @@ function damage_phaseField_getDamage(ipc, ip, el)
select case(field_damage_type(material_homog(ip,el)))
case (FIELD_DAMAGE_LOCAL_ID)
damage_phaseField_getDamage = damage_phaseField_getLocalDamage(ipc, ip, el)
damage_phaseField_getDamage = damageState(mappingConstitutive(2,ipc,ip,el))% &
state0(1,mappingConstitutive(1,ipc,ip,el))
case (FIELD_DAMAGE_NONLOCAL_ID)
damage_phaseField_getDamage = fieldDamage(material_homog(ip,el))% &