Skip to content
Snippets Groups Projects
Commit 3bdae6f9 authored by Dave Whipp's avatar Dave Whipp
Browse files

Added option for using the base 10 log of the step strain rate for strain rate softening

parent 3400b45b
No related branches found
No related tags found
No related merge requests found
......@@ -395,21 +395,41 @@ if (strain_soft_c_in.gt.0.d0) then
ss_type_c: select case (trim(plasticity_ss_type_coh))
case ('tot_strain')
strain_soft_ref=straintot
! Soften cohesion if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_c_in)/(strain_soft_c_out-strain_soft_c_in)
fact=min(fact,1.d0)
c=c+(strain_soft_c-c)*fact
endif
case ('strain_rate')
strain_soft_ref=e2d
! Soften cohesion if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_c_in)/(strain_soft_c_out-strain_soft_c_in)
fact=min(fact,1.d0)
c=c+(strain_soft_c-c)*fact
endif
case ('step_strain_rate')
strain_soft_ref=e2dprev
! Soften cohesion if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_c_in)/(strain_soft_c_out-strain_soft_c_in)
fact=min(fact,1.d0)
c=c+(strain_soft_c-c)*fact
endif
case ('log_step_s_rate')
strain_soft_ref=e2dprev
! Soften cohesion if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(log10(strain_soft_ref)-log10(strain_soft_c_in))/(log10(strain_soft_c_out)-log10(strain_soft_c_in))
fact=min(fact,1.d0)
c=c+(strain_soft_c-c)*fact
endif
case default
write (*,*) 'plasticity_ss_type_coh: ',plasticity_ss_type_coh
call stop_run('error in vrm$')
flag_vrm_pb = .true.
end select ss_type_c
! Soften cohesion if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_c_in)/(strain_soft_c_out-strain_soft_c_in)
fact=min(fact,1.d0)
c=c+(strain_soft_c-c)*fact
endif
endif
! Apply internal angle softening if onset phi value is positive
......@@ -418,21 +438,41 @@ if (strain_soft_phi_in.gt.0.d0) then
ss_type_phi: select case (trim(plasticity_ss_type_phi))
case ('tot_strain')
strain_soft_ref=straintot
! Soften phi if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_phi_in)/(strain_soft_phi_out-strain_soft_phi_in)
fact=min(fact,1.d0)
phi=phi+(strain_soft_phi-phi)*fact
endif
case ('strain_rate')
strain_soft_ref=e2d
! Soften phi if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_phi_in)/(strain_soft_phi_out-strain_soft_phi_in)
fact=min(fact,1.d0)
phi=phi+(strain_soft_phi-phi)*fact
endif
case ('step_strain_rate')
strain_soft_ref=e2dprev
! Soften phi if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(strain_soft_ref-strain_soft_phi_in)/(strain_soft_phi_out-strain_soft_phi_in)
fact=min(fact,1.d0)
phi=phi+(strain_soft_phi-phi)*fact
endif
case ('log_step_s_rate')
strain_soft_ref=e2dprev
! Soften phi if beyond onset value
if (strain_soft_ref.gt.strain_soft_c_in) then
fact=(log10(strain_soft_ref)-log10(strain_soft_phi_in))/(log10(strain_soft_phi_out)-log10(strain_soft_phi_in))
fact=min(fact,1.d0)
phi=phi+(strain_soft_phi-phi)*fact
endif
case default
write (*,*) 'plasticity_ss_type_phi: ',plasticity_ss_type_phi
call stop_run('error in vrm$')
flag_vrm_pb = .true.
end select ss_type_phi
! Soften phi if beyond onset value
if (strain_soft_ref.gt.strain_soft_phi_in) then
fact=(strain_soft_ref-strain_soft_phi_in)/(strain_soft_phi_out-strain_soft_phi_in)
fact=min(fact,1.d0)
phi=phi+(strain_soft_phi-phi)*fact
endif
endif
end subroutine strain_soften
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment