all damage models consistently semi-explicit
This commit is contained in:
parent
6e90260817
commit
61bb9a373e
|
@ -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))% &
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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))% &
|
||||
|
|
|
@ -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))% &
|
||||
|
|
Loading…
Reference in New Issue