From 8cd1bef63ab269f615124260a828e585c30706c0 Mon Sep 17 00:00:00 2001 From: Albert de Montserrat Date: Thu, 16 May 2024 16:16:17 +0200 Subject: [PATCH 1/5] hack for sparsity detection --- src/CompositeRheologies/NonlinearIterations.jl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/CompositeRheologies/NonlinearIterations.jl b/src/CompositeRheologies/NonlinearIterations.jl index 962c0b18..9e7eb537 100644 --- a/src/CompositeRheologies/NonlinearIterations.jl +++ b/src/CompositeRheologies/NonlinearIterations.jl @@ -23,6 +23,7 @@ function local_iterations_εII( iter = 0 ϵ = 2.0 * tol τII_prev = τII + while ϵ > tol iter += 1 #= @@ -33,12 +34,15 @@ function local_iterations_εII( τII -= f / dfdτII =# τII = @muladd τII + (εII - compute_εII(v, τII, args)) * inv(dεII_dτII(v, τII, args)) - ϵ = abs(τII - τII_prev) * inv(τII) τII_prev = τII - # @print(verbose, " iter $(iter) $ϵ") + + T_check = ϵ isa Union{AbstractFloat,Integer} + !(T_check) && break + (ϵ > tol) && break end + # @print(verbose, "final τII = $τII") # @print(verbose, "---") From 99e5da4e8b6e6eb5a2f02c976f4e1f952009018e Mon Sep 17 00:00:00 2001 From: Albert de Montserrat Date: Fri, 17 May 2024 11:02:36 +0200 Subject: [PATCH 2/5] remove type constrains --- src/Plasticity/DruckerPrager.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Plasticity/DruckerPrager.jl b/src/Plasticity/DruckerPrager.jl index 9f1a5430..ca5c71ae 100644 --- a/src/Plasticity/DruckerPrager.jl +++ b/src/Plasticity/DruckerPrager.jl @@ -78,7 +78,7 @@ function (s::DruckerPrager{_T, U, U1, NoSoftening, S})(; end function (s::DruckerPrager{_T, U, U1, S, NoSoftening})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), EII=zero(_T), kwargs... ) where {_T,U,U1,S} @unpack_val sinϕ, cosϕ, ϕ, C = s ϕ = s.softening_ϕ(EII, ϕ) @@ -90,7 +90,7 @@ function (s::DruckerPrager{_T, U, U1, S, NoSoftening})(; end function (s::DruckerPrager{_T, U, U1, NoSoftening, NoSoftening})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), kwargs... ) where {_T,U,U1} @unpack_val sinϕ, cosϕ, ϕ, C = s @@ -104,7 +104,7 @@ end Computes the plastic yield function `F` for a given second invariant of the deviatoric stress tensor `τII`, `P` pressure, and `Pf` fluid pressure. """ function compute_yieldfunction( - s::DruckerPrager{_T}; P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), EII::_T=zero(_T) + s::DruckerPrager{_T}; P=zero(_T), τII=zero(_T), Pf=zero(_T), EII=zero(_T) ) where {_T} return s(; P=P, τII=τII, Pf=Pf, EII=EII) end From f73d23aba19571943e202333fc1e22d610bdf619 Mon Sep 17 00:00:00 2001 From: Albert de Montserrat Date: Fri, 17 May 2024 11:36:04 +0200 Subject: [PATCH 3/5] remove type constrains --- src/Plasticity/DruckerPrager_regularised.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Plasticity/DruckerPrager_regularised.jl b/src/Plasticity/DruckerPrager_regularised.jl index 2913e3f5..1feffeac 100644 --- a/src/Plasticity/DruckerPrager_regularised.jl +++ b/src/Plasticity/DruckerPrager_regularised.jl @@ -56,7 +56,7 @@ end # Calculation routines function (s::DruckerPrager_regularised{_T})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), λ::_T= zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), λ= zero(_T), EII=zero(_T), kwargs... ) where {_T} @unpack_val sinϕ, cosϕ, ϕ, C, η_vp = s ϕ = s.softening_ϕ(EII, ϕ) @@ -68,7 +68,7 @@ function (s::DruckerPrager_regularised{_T})(; end function (s::DruckerPrager_regularised{_T,U,U1,NoSoftening, S})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), λ::_T= zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), λ= zero(_T), EII=zero(_T), kwargs... ) where {_T,U,U1,S} @unpack_val sinϕ, cosϕ, ϕ, C, η_vp = s C = s.softening_C(EII, C) @@ -78,7 +78,7 @@ function (s::DruckerPrager_regularised{_T,U,U1,NoSoftening, S})(; end function (s::DruckerPrager_regularised{_T,U,U1,S, NoSoftening})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), λ::_T= zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), λ= zero(_T), EII=zero(_T), kwargs... ) where {_T,U,U1,S} @unpack_val sinϕ, cosϕ, ϕ, C, η_vp = s ϕ = s.softening_ϕ(EII, ϕ) @@ -89,7 +89,7 @@ function (s::DruckerPrager_regularised{_T,U,U1,S, NoSoftening})(; end function (s::DruckerPrager_regularised{_T,U,U1,NoSoftening,NoSoftening})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), λ::_T= zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), λ= zero(_T), kwargs... ) where {_T,U,U1} @unpack_val sinϕ, cosϕ, ϕ, C, η_vp = s ε̇II_pl = λ*∂Q∂τII(s, τII) # plastic strainrate @@ -105,7 +105,7 @@ end Computes the plastic yield function `F` for a given second invariant of the deviatoric stress tensor `τII`, `P` pressure, and `Pf` fluid pressure. """ function compute_yieldfunction( - s::DruckerPrager_regularised{_T}; P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), λ::_T=zero(_T), EII::_T=zero(_T) + s::DruckerPrager_regularised{_T}; P=zero(_T), τII=zero(_T), Pf=zero(_T), λ=zero(_T), EII=zero(_T) ) where {_T} return s(; P=P, τII=τII, Pf=Pf, λ=λ, EII=EII) end From 75e69cc5c910f15cfe38a46e1fb4afdf517a5b7c Mon Sep 17 00:00:00 2001 From: Albert de Montserrat Date: Fri, 17 May 2024 11:51:46 +0200 Subject: [PATCH 4/5] remove more type constrains --- src/Plasticity/DruckerPrager.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Plasticity/DruckerPrager.jl b/src/Plasticity/DruckerPrager.jl index ca5c71ae..c78eee4f 100644 --- a/src/Plasticity/DruckerPrager.jl +++ b/src/Plasticity/DruckerPrager.jl @@ -55,7 +55,7 @@ end # Calculation routines function (s::DruckerPrager{_T, U, U1, S, S})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), EII=zero(_T), kwargs... ) where {_T,U,U1,S<:AbstractSoftening} @unpack_val sinϕ, cosϕ, ϕ, C = s ϕ = s.softening_ϕ(EII, ϕ) @@ -68,7 +68,7 @@ function (s::DruckerPrager{_T, U, U1, S, S})(; end function (s::DruckerPrager{_T, U, U1, NoSoftening, S})(; - P::_T=zero(_T), τII::_T=zero(_T), Pf::_T=zero(_T), EII::_T=zero(_T), kwargs... + P=zero(_T), τII=zero(_T), Pf=zero(_T), EII=zero(_T), kwargs... ) where {_T,U,U1,S} @unpack_val sinϕ, cosϕ, ϕ, C = s C = s.softening_C(EII, C) From f8f41c90c5223e01f0a130ab0778faf8b37a3a8d Mon Sep 17 00:00:00 2001 From: Albert de Montserrat Date: Fri, 17 May 2024 12:03:45 +0200 Subject: [PATCH 5/5] fix --- src/CompositeRheologies/NonlinearIterations.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CompositeRheologies/NonlinearIterations.jl b/src/CompositeRheologies/NonlinearIterations.jl index 9e7eb537..e1b09573 100644 --- a/src/CompositeRheologies/NonlinearIterations.jl +++ b/src/CompositeRheologies/NonlinearIterations.jl @@ -40,7 +40,6 @@ function local_iterations_εII( T_check = ϵ isa Union{AbstractFloat,Integer} !(T_check) && break - (ϵ > tol) && break end # @print(verbose, "final τII = $τII")