no need for pointer
This commit is contained in:
parent
4515920b69
commit
f6be3fe0b7
|
@ -3,8 +3,6 @@
|
|||
!> @brief material subroutine for constant damage field
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
module damage_none
|
||||
use prec
|
||||
use config
|
||||
use material
|
||||
|
||||
implicit none
|
||||
|
@ -29,8 +27,6 @@ subroutine damage_none_init
|
|||
allocate(damageState_h(h)%state0 (0,Nmaterialpoints))
|
||||
allocate(damageState_h(h)%state (0,Nmaterialpoints))
|
||||
|
||||
allocate (damage(h)%p(Nmaterialpoints), source=1.0_pReal)
|
||||
|
||||
enddo
|
||||
|
||||
end subroutine damage_none_init
|
||||
|
|
|
@ -57,8 +57,6 @@ subroutine damage_nonlocal_init
|
|||
allocate(damageState_h(h)%state0 (1,Nmaterialpoints), source=1.0_pReal)
|
||||
allocate(damageState_h(h)%state (1,Nmaterialpoints), source=1.0_pReal)
|
||||
|
||||
damage(h)%p => damageState_h(h)%state(1,:)
|
||||
|
||||
enddo
|
||||
|
||||
end subroutine damage_nonlocal_init
|
||||
|
|
|
@ -143,7 +143,7 @@ module subroutine damage_nonlocal_putNonLocalDamage(phi,ip,el)
|
|||
|
||||
homog = material_homogenizationAt(el)
|
||||
offset = material_homogenizationMemberAt(ip,el)
|
||||
damage(homog)%p(offset) = phi
|
||||
damagestate_h(homog)%state(1,offset) = phi
|
||||
|
||||
end subroutine damage_nonlocal_putNonLocalDamage
|
||||
|
||||
|
@ -162,7 +162,7 @@ module subroutine damage_nonlocal_results(homog,group)
|
|||
outputsLoop: do o = 1,size(prm%output)
|
||||
select case(prm%output(o))
|
||||
case ('phi')
|
||||
call results_writeDataset(group,damage(homog)%p,prm%output(o),&
|
||||
call results_writeDataset(group,damagestate_h(homog)%state(1,:),prm%output(o),&
|
||||
'damage indicator','-')
|
||||
end select
|
||||
enddo outputsLoop
|
||||
|
|
|
@ -70,9 +70,6 @@ module material
|
|||
type(Rotation), dimension(:,:,:), allocatable, public, protected :: &
|
||||
material_orientation0 !< initial orientation of each grain,IP,element
|
||||
|
||||
type(group_float), allocatable, dimension(:), public :: &
|
||||
damage !< damage field
|
||||
|
||||
public :: &
|
||||
material_init, &
|
||||
THERMAL_ISOTHERMAL_ID, &
|
||||
|
@ -105,9 +102,6 @@ subroutine material_init(restart)
|
|||
allocate(homogState (size(material_name_homogenization)))
|
||||
allocate(damageState_h (size(material_name_homogenization)))
|
||||
|
||||
allocate(damage (size(material_name_homogenization)))
|
||||
|
||||
|
||||
if (.not. restart) then
|
||||
call results_openJobFile
|
||||
call results_mapping_phase(material_phaseAt,material_phaseMemberAt,material_name_phase)
|
||||
|
|
|
@ -152,7 +152,7 @@ module subroutine anisobrittle_dotState(S, co, ip, el)
|
|||
traction_t = math_tensordot(S,prm%cleavage_systems(1:3,1:3,2,i))
|
||||
traction_n = math_tensordot(S,prm%cleavage_systems(1:3,1:3,3,i))
|
||||
|
||||
traction_crit = prm%g_crit(i)*damage(homog)%p(damageOffset)**2.0_pReal
|
||||
traction_crit = prm%g_crit(i)*damagestate_h(homog)%state(1,damageOffset)**2.0_pReal
|
||||
|
||||
damageState(ph)%p(sourceOffset)%dotState(1,me) &
|
||||
= damageState(ph)%p(sourceOffset)%dotState(1,me) &
|
||||
|
|
|
@ -129,7 +129,7 @@ module subroutine anisoductile_dotState(co, ip, el)
|
|||
|
||||
associate(prm => param(source_damage_anisoDuctile_instance(ph)))
|
||||
damageState(ph)%p(sourceOffset)%dotState(1,me) &
|
||||
= sum(plasticState(ph)%slipRate(:,me)/(damage(homog)%p(damageOffset)**prm%q)/prm%gamma_crit)
|
||||
= sum(plasticState(ph)%slipRate(:,me)/(damagestate_h(homog)%state(1,damageOffset)**prm%q)/prm%gamma_crit)
|
||||
end associate
|
||||
|
||||
end subroutine anisoductile_dotState
|
||||
|
|
|
@ -120,7 +120,7 @@ module subroutine isoductile_dotState(co, ip, el)
|
|||
|
||||
associate(prm => param(source_damage_isoDuctile_instance(ph)))
|
||||
damageState(ph)%p(sourceOffset)%dotState(1,me) = &
|
||||
sum(plasticState(ph)%slipRate(:,me))/(damage(homog)%p(damageOffset)**prm%q)/prm%gamma_crit
|
||||
sum(plasticState(ph)%slipRate(:,me))/(damagestate_h(homog)%state(1,damageOffset)**prm%q)/prm%gamma_crit
|
||||
end associate
|
||||
|
||||
end subroutine isoductile_dotState
|
||||
|
|
|
@ -381,7 +381,7 @@ subroutine phase_hooke_SandItsTangents(S, dS_dFe, dS_dFi, &
|
|||
DegradationLoop: do d = 1, phase_NstiffnessDegradations(material_phaseAt(co,el))
|
||||
degradationType: select case(phase_stiffnessDegradation(d,material_phaseAt(co,el)))
|
||||
case (STIFFNESS_DEGRADATION_damage_ID) degradationType
|
||||
C = C * damage(ho)%p(material_homogenizationMemberAt(ip,el))**2
|
||||
C = C * damagestate_h(ho)%state(1,material_homogenizationMemberAt(ip,el))**2
|
||||
end select degradationType
|
||||
enddo DegradationLoop
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ module subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar, S,
|
|||
dLd_dTstar = 0.0_pReal
|
||||
associate(prm => param(kinematics_cleavage_opening_instance(material_phaseAt(co,el))))
|
||||
do i = 1,prm%sum_N_cl
|
||||
traction_crit = prm%g_crit(i)* damage(homog)%p(damageOffset)**2.0_pReal
|
||||
traction_crit = prm%g_crit(i)*damagestate_h(homog)%state(1,damageOffset)**2.0_pReal
|
||||
|
||||
traction_d = math_tensordot(S,prm%cleavage_systems(1:3,1:3,1,i))
|
||||
if (abs(traction_d) > traction_crit + tol_math_check) then
|
||||
|
|
|
@ -152,7 +152,7 @@ module subroutine kinematics_slipplane_opening_LiAndItsTangent(Ld, dLd_dTstar, S
|
|||
traction_t = math_tensordot(S,prm%P_t(1:3,1:3,i))
|
||||
traction_n = math_tensordot(S,prm%P_n(1:3,1:3,i))
|
||||
|
||||
traction_crit = prm%g_crit(i)* damage(homog)%p(damageOffset) ! degrading critical load carrying capacity by damage
|
||||
traction_crit = prm%g_crit(i)* damagestate_h(homog)%state(1,damageOffset) ! degrading critical load carrying capacity by damage
|
||||
|
||||
udotd = sign(1.0_pReal,traction_d)* prm%dot_o* ( abs(traction_d)/traction_crit &
|
||||
- abs(traction_d)/prm%g_crit(i))**prm%q
|
||||
|
|
Loading…
Reference in New Issue