using asinh (defined in F2008) instead of equivalent formulation using log

This commit is contained in:
Martin Diehl 2017-05-10 07:40:26 +02:00
parent 9ffdf81e30
commit 25865d4b54
1 changed files with 6 additions and 11 deletions

View File

@ -568,18 +568,13 @@ subroutine plastic_isotropic_dotState(Tstar_v,ipc,ip,el)
if (dEq0(param(instance)%tausat_SinhFitA)) then if (dEq0(param(instance)%tausat_SinhFitA)) then
saturation = param(instance)%tausat saturation = param(instance)%tausat
else else
saturation = ( param(instance)%tausat & saturation = param(instance)%tausat &
+ ( log( ( gamma_dot / param(instance)%tausat_SinhFitA& + asinh( (gamma_dot / param(instance)%tausat_SinhFitA&
)**(1.0_pReal / param(instance)%tausat_SinhFitD)& )**(1.0_pReal / param(instance)%tausat_SinhFitD)&
+ sqrt( ( gamma_dot / param(instance)%tausat_SinhFitA &
)**(2.0_pReal / param(instance)%tausat_SinhFitD) &
+ 1.0_pReal ) &
) & ! asinh(K) = ln(K + sqrt(K^2 +1))
)**(1.0_pReal / param(instance)%tausat_SinhFitC) & )**(1.0_pReal / param(instance)%tausat_SinhFitC) &
/ ( param(instance)%tausat_SinhFitB & / ( param(instance)%tausat_SinhFitB &
* (gamma_dot / param(instance)%gdot0)**(1.0_pReal / param(instance)%n) & * (gamma_dot / param(instance)%gdot0)**(1.0_pReal / param(instance)%n) &
) & )
)
endif endif
hardening = ( param(instance)%h0 + param(instance)%h0_slopeLnRate * log(gamma_dot) ) & hardening = ( param(instance)%h0 + param(instance)%h0_slopeLnRate * log(gamma_dot) ) &
* abs( 1.0_pReal - state(instance)%flowstress(of)/saturation )**param(instance)%a & * abs( 1.0_pReal - state(instance)%flowstress(of)/saturation )**param(instance)%a &