From fb633798af890d134e8ab7bf6c0f66b3d3b1e1a7 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 1 Apr 2022 12:40:00 +0200 Subject: [PATCH 1/4] following paper --- PRIVATE | 2 +- examples/config/phase/damage/anisobrittle_cubic.yaml | 2 +- examples/config/phase/damage/isobrittle_generic.yaml | 4 ++-- src/phase_damage.f90 | 4 +--- src/phase_damage_isobrittle.f90 | 2 +- 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/PRIVATE b/PRIVATE index 459326e98..dd7f4efd6 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 459326e9840c843ade72b04cf28e50889c9779f1 +Subproject commit dd7f4efd64ebadac74cab84f713a738c71d8b737 diff --git a/examples/config/phase/damage/anisobrittle_cubic.yaml b/examples/config/phase/damage/anisobrittle_cubic.yaml index 372fdc6d0..4f8db50ee 100644 --- a/examples/config/phase/damage/anisobrittle_cubic.yaml +++ b/examples/config/phase/damage/anisobrittle_cubic.yaml @@ -9,5 +9,5 @@ s_crit: [0.006666] dot_o: 1.e-3 q: 20 -D_11: 1.0 +l_c: 1.0 mu: 0.001 diff --git a/examples/config/phase/damage/isobrittle_generic.yaml b/examples/config/phase/damage/isobrittle_generic.yaml index 851302a49..9de78448d 100644 --- a/examples/config/phase/damage/isobrittle_generic.yaml +++ b/examples/config/phase/damage/isobrittle_generic.yaml @@ -2,6 +2,6 @@ type: isobrittle output: [f_phi] -W_crit: 1400000.0 -D_11: 1.0 +G: 1400000.0 +l_c: 1.0 mu: 0.001 diff --git a/src/phase_damage.f90 b/src/phase_damage.f90 index 9022131e2..5bf351dd0 100644 --- a/src/phase_damage.f90 +++ b/src/phase_damage.f90 @@ -105,9 +105,7 @@ module subroutine damage_init damage_active = .true. source => sources%get(1) param(ph)%mu = source%get_asFloat('mu') - param(ph)%D(1,1) = source%get_asFloat('D_11') - if (any(phase_lattice(ph) == ['hP','tI'])) param(ph)%D(3,3) = source%get_asFloat('D_33') - param(ph)%D = lattice_symmetrize_33(param(ph)%D,phase_lattice(ph)) + param(ph)%D = math_I3 * source%get_asFloat('l_c')**2 end if end do diff --git a/src/phase_damage_isobrittle.f90 b/src/phase_damage_isobrittle.f90 index 2d501b58f..353ce9f00 100644 --- a/src/phase_damage_isobrittle.f90 +++ b/src/phase_damage_isobrittle.f90 @@ -63,7 +63,7 @@ module function isobrittle_init() result(mySources) associate(prm => param(ph), dlt => deltaState(ph), stt => state(ph)) src => sources%get(1) - prm%W_crit = src%get_asFloat('W_crit') + prm%W_crit = src%get_asFloat('G')/src%get_asFloat('l_c') #if defined (__GFORTRAN__) prm%output = output_as1dString(src) From e68441218698a91e541a02bfde1a960cf5675d30 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 26 May 2022 14:22:45 +0200 Subject: [PATCH 2/4] testing resolution-independent behavior --- PRIVATE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PRIVATE b/PRIVATE index 935a1d92a..073819b26 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 935a1d92a3d124ceaaf8729ad9bff4279fa5447b +Subproject commit 073819b26248e2915bd5f3b6de7d4e0d27a3d423 From 6fa87b4038ae541fd00fefb98defb56cdff9fb5c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 27 May 2022 20:58:18 +0200 Subject: [PATCH 3/4] not needed anymore --- src/phase_damage.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/phase_damage.f90 b/src/phase_damage.f90 index 5bf351dd0..82d94150d 100644 --- a/src/phase_damage.f90 +++ b/src/phase_damage.f90 @@ -383,9 +383,9 @@ module function phase_K_phi(co,ce) result(K) integer, intent(in) :: co, ce real(pReal), dimension(3,3) :: K - real(pReal), parameter :: l = 1.0_pReal - K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%D) * l**2 + + K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%D) end function phase_K_phi @@ -401,6 +401,7 @@ function phase_damage_deltaState(Fe, ph, en) result(broken) en real(pReal), intent(in), dimension(3,3) :: & Fe !< elastic deformation gradient + integer :: & myOffset, & mySize From 1b5194288b8d9468b8d95c38c4b9086c6056110a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 27 May 2022 21:08:00 +0200 Subject: [PATCH 4/4] polished tests, consistent variable name --- PRIVATE | 2 +- examples/config/phase/damage/isobrittle_generic.yaml | 2 +- src/homogenization_damage.f90 | 1 + src/phase_damage_anisobrittle.f90 | 2 +- src/phase_damage_isobrittle.f90 | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/PRIVATE b/PRIVATE index 073819b26..226d7b627 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 073819b26248e2915bd5f3b6de7d4e0d27a3d423 +Subproject commit 226d7b627e44247b800bce0d9eb7bef1aac6f537 diff --git a/examples/config/phase/damage/isobrittle_generic.yaml b/examples/config/phase/damage/isobrittle_generic.yaml index 9de78448d..64a51fa42 100644 --- a/examples/config/phase/damage/isobrittle_generic.yaml +++ b/examples/config/phase/damage/isobrittle_generic.yaml @@ -2,6 +2,6 @@ type: isobrittle output: [f_phi] -G: 1400000.0 +G_crit: 1400000.0 l_c: 1.0 mu: 0.001 diff --git a/src/homogenization_damage.f90 b/src/homogenization_damage.f90 index 6ae4ac07a..53d6622ac 100644 --- a/src/homogenization_damage.f90 +++ b/src/homogenization_damage.f90 @@ -166,6 +166,7 @@ module subroutine damage_results(ho,group) integer :: o + associate(prm => param(ho)) outputsLoop: do o = 1,size(prm%output) select case(prm%output(o)) diff --git a/src/phase_damage_anisobrittle.f90 b/src/phase_damage_anisobrittle.f90 index f193119eb..167d0829b 100644 --- a/src/phase_damage_anisobrittle.f90 +++ b/src/phase_damage_anisobrittle.f90 @@ -157,7 +157,7 @@ module subroutine anisobrittle_results(phase,group) outputsLoop: do o = 1,size(prm%output) select case(trim(prm%output(o))) case ('f_phi') - call results_writeDataset(stt,group,trim(prm%output(o)),'driving force','J/m³') + call results_writeDataset(stt,group,trim(prm%output(o)),'driving force','-') end select end do outputsLoop end associate diff --git a/src/phase_damage_isobrittle.f90 b/src/phase_damage_isobrittle.f90 index 353ce9f00..36f26abd3 100644 --- a/src/phase_damage_isobrittle.f90 +++ b/src/phase_damage_isobrittle.f90 @@ -63,7 +63,7 @@ module function isobrittle_init() result(mySources) associate(prm => param(ph), dlt => deltaState(ph), stt => state(ph)) src => sources%get(1) - prm%W_crit = src%get_asFloat('G')/src%get_asFloat('l_c') + prm%W_crit = src%get_asFloat('G_crit')/src%get_asFloat('l_c') #if defined (__GFORTRAN__) prm%output = output_as1dString(src) @@ -139,7 +139,7 @@ module subroutine isobrittle_results(phase,group) outputsLoop: do o = 1,size(prm%output) select case(trim(prm%output(o))) case ('f_phi') - call results_writeDataset(stt,group,trim(prm%output(o)),'driving force','J/m³') ! Wrong, this is dimensionless + call results_writeDataset(stt,group,trim(prm%output(o)),'driving force','-') end select end do outputsLoop