From f6be3fe0b74be7b4ee2e3d728fee9b75d0327f42 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 12 Feb 2021 00:12:57 +0100 Subject: [PATCH] no need for pointer --- src/damage_none.f90 | 4 ---- src/damage_nonlocal.f90 | 2 -- src/homogenization_damage.f90 | 4 ++-- src/material.f90 | 6 ------ src/phase_damage_anisobrittle.f90 | 2 +- src/phase_damage_anisoductile.f90 | 2 +- src/phase_damage_isoductile.f90 | 2 +- src/phase_mechanical.f90 | 2 +- src/phase_mechanical_eigen_cleavageopening.f90 | 2 +- src/phase_mechanical_eigen_slipplaneopening.f90 | 2 +- 10 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/damage_none.f90 b/src/damage_none.f90 index 680110d55..c4b1c1589 100644 --- a/src/damage_none.f90 +++ b/src/damage_none.f90 @@ -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 diff --git a/src/damage_nonlocal.f90 b/src/damage_nonlocal.f90 index 807231889..dd50cf4cf 100644 --- a/src/damage_nonlocal.f90 +++ b/src/damage_nonlocal.f90 @@ -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 diff --git a/src/homogenization_damage.f90 b/src/homogenization_damage.f90 index 8b73ed54a..4f23af3be 100644 --- a/src/homogenization_damage.f90 +++ b/src/homogenization_damage.f90 @@ -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 diff --git a/src/material.f90 b/src/material.f90 index ccc6898be..3689cd0b0 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -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) diff --git a/src/phase_damage_anisobrittle.f90 b/src/phase_damage_anisobrittle.f90 index 51ca7786a..b328dfed7 100644 --- a/src/phase_damage_anisobrittle.f90 +++ b/src/phase_damage_anisobrittle.f90 @@ -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) & diff --git a/src/phase_damage_anisoductile.f90 b/src/phase_damage_anisoductile.f90 index e54eff201..18c29fdfc 100644 --- a/src/phase_damage_anisoductile.f90 +++ b/src/phase_damage_anisoductile.f90 @@ -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 diff --git a/src/phase_damage_isoductile.f90 b/src/phase_damage_isoductile.f90 index 71f99078b..9dac17cd8 100644 --- a/src/phase_damage_isoductile.f90 +++ b/src/phase_damage_isoductile.f90 @@ -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 diff --git a/src/phase_mechanical.f90 b/src/phase_mechanical.f90 index efd4d51d2..f2f3333d3 100644 --- a/src/phase_mechanical.f90 +++ b/src/phase_mechanical.f90 @@ -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 diff --git a/src/phase_mechanical_eigen_cleavageopening.f90 b/src/phase_mechanical_eigen_cleavageopening.f90 index 59be7837a..b41cb1e9c 100644 --- a/src/phase_mechanical_eigen_cleavageopening.f90 +++ b/src/phase_mechanical_eigen_cleavageopening.f90 @@ -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 diff --git a/src/phase_mechanical_eigen_slipplaneopening.f90 b/src/phase_mechanical_eigen_slipplaneopening.f90 index a144d39a6..682f0b825 100644 --- a/src/phase_mechanical_eigen_slipplaneopening.f90 +++ b/src/phase_mechanical_eigen_slipplaneopening.f90 @@ -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