modernizing
This commit is contained in:
parent
a91a3975f6
commit
972e041f59
|
@ -22,8 +22,6 @@ module constitutive
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
enum, bind(c); enumerator :: &
|
enum, bind(c); enumerator :: &
|
||||||
ELASTICITY_UNDEFINED_ID, &
|
|
||||||
ELASTICITY_HOOKE_ID, &
|
|
||||||
PLASTICITY_UNDEFINED_ID, &
|
PLASTICITY_UNDEFINED_ID, &
|
||||||
PLASTICITY_NONE_ID, &
|
PLASTICITY_NONE_ID, &
|
||||||
PLASTICITY_ISOTROPIC_ID, &
|
PLASTICITY_ISOTROPIC_ID, &
|
||||||
|
@ -42,9 +40,7 @@ module constitutive
|
||||||
KINEMATICS_UNDEFINED_ID ,&
|
KINEMATICS_UNDEFINED_ID ,&
|
||||||
KINEMATICS_CLEAVAGE_OPENING_ID, &
|
KINEMATICS_CLEAVAGE_OPENING_ID, &
|
||||||
KINEMATICS_SLIPPLANE_OPENING_ID, &
|
KINEMATICS_SLIPPLANE_OPENING_ID, &
|
||||||
KINEMATICS_THERMAL_EXPANSION_ID, &
|
KINEMATICS_THERMAL_EXPANSION_ID
|
||||||
STIFFNESS_DEGRADATION_UNDEFINED_ID, &
|
|
||||||
STIFFNESS_DEGRADATION_DAMAGE_ID
|
|
||||||
end enum
|
end enum
|
||||||
real(pReal), dimension(:,:,:), allocatable, public :: &
|
real(pReal), dimension(:,:,:), allocatable, public :: &
|
||||||
crystallite_dt !< requested time increment of each grain
|
crystallite_dt !< requested time increment of each grain
|
||||||
|
@ -691,18 +687,18 @@ end function constitutive_thermal_collectDotState
|
||||||
!> @brief for constitutive models having an instantaneous change of state
|
!> @brief for constitutive models having an instantaneous change of state
|
||||||
!> will return false if delta state is not needed/supported by the constitutive model
|
!> will return false if delta state is not needed/supported by the constitutive model
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function constitutive_damage_deltaState(Fe, co, ip, el, phase, of) result(broken)
|
function constitutive_damage_deltaState(Fe, co, ip, el, ph, of) result(broken)
|
||||||
|
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
co, & !< component-ID of integration point
|
co, & !< component-ID of integration point
|
||||||
ip, & !< integration point
|
ip, & !< integration point
|
||||||
el, & !< element
|
el, & !< element
|
||||||
phase, &
|
ph, &
|
||||||
of
|
of
|
||||||
real(pReal), intent(in), dimension(3,3) :: &
|
real(pReal), intent(in), dimension(3,3) :: &
|
||||||
Fe !< elastic deformation gradient
|
Fe !< elastic deformation gradient
|
||||||
integer :: &
|
integer :: &
|
||||||
i, &
|
so, &
|
||||||
myOffset, &
|
myOffset, &
|
||||||
mySize
|
mySize
|
||||||
logical :: &
|
logical :: &
|
||||||
|
@ -711,19 +707,19 @@ function constitutive_damage_deltaState(Fe, co, ip, el, phase, of) result(broken
|
||||||
|
|
||||||
broken = .false.
|
broken = .false.
|
||||||
|
|
||||||
sourceLoop: do i = 1, phase_Nsources(phase)
|
sourceLoop: do so = 1, phase_Nsources(ph)
|
||||||
|
|
||||||
sourceType: select case (phase_source(i,phase))
|
sourceType: select case (phase_source(so,ph))
|
||||||
|
|
||||||
case (SOURCE_damage_isoBrittle_ID) sourceType
|
case (SOURCE_damage_isoBrittle_ID) sourceType
|
||||||
call source_damage_isoBrittle_deltaState (constitutive_homogenizedC(co,ip,el), Fe, &
|
call source_damage_isoBrittle_deltaState (constitutive_homogenizedC(co,ip,el), Fe, &
|
||||||
co, ip, el)
|
co, ip, el)
|
||||||
broken = any(IEEE_is_NaN(sourceState(phase)%p(i)%deltaState(:,of)))
|
broken = any(IEEE_is_NaN(sourceState(ph)%p(so)%deltaState(:,of)))
|
||||||
if(.not. broken) then
|
if(.not. broken) then
|
||||||
myOffset = sourceState(phase)%p(i)%offsetDeltaState
|
myOffset = sourceState(ph)%p(so)%offsetDeltaState
|
||||||
mySize = sourceState(phase)%p(i)%sizeDeltaState
|
mySize = sourceState(ph)%p(so)%sizeDeltaState
|
||||||
sourceState(phase)%p(i)%state(myOffset + 1: myOffset + mySize,of) = &
|
sourceState(ph)%p(so)%state(myOffset + 1: myOffset + mySize,of) = &
|
||||||
sourceState(phase)%p(i)%state(myOffset + 1: myOffset + mySize,of) + sourceState(phase)%p(i)%deltaState(1:mySize,of)
|
sourceState(ph)%p(so)%state(myOffset + 1: myOffset + mySize,of) + sourceState(ph)%p(so)%deltaState(1:mySize,of)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
end select sourceType
|
end select sourceType
|
||||||
|
@ -1405,13 +1401,12 @@ subroutine integrateSourceState(co,ip,el)
|
||||||
NiterationState, & !< number of iterations in state loop
|
NiterationState, & !< number of iterations in state loop
|
||||||
ph, &
|
ph, &
|
||||||
me, &
|
me, &
|
||||||
so, &
|
so
|
||||||
size_pl
|
|
||||||
integer, dimension(maxval(phase_Nsources)) :: &
|
integer, dimension(maxval(phase_Nsources)) :: &
|
||||||
size_so
|
size_so
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
zeta
|
zeta
|
||||||
real(pReal), dimension(max(constitutive_plasticity_maxSizeDotState,constitutive_source_maxSizeDotState)) :: &
|
real(pReal), dimension(constitutive_source_maxSizeDotState) :: &
|
||||||
r ! state residuum
|
r ! state residuum
|
||||||
real(pReal), dimension(constitutive_source_maxSizeDotState,2,maxval(phase_Nsources)) :: source_dotState
|
real(pReal), dimension(constitutive_source_maxSizeDotState,2,maxval(phase_Nsources)) :: source_dotState
|
||||||
logical :: &
|
logical :: &
|
||||||
|
|
|
@ -4,6 +4,13 @@
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
submodule(homogenization) homogenization_mech
|
submodule(homogenization) homogenization_mech
|
||||||
|
|
||||||
|
|
||||||
|
enum, bind(c); enumerator :: &
|
||||||
|
ELASTICITY_UNDEFINED_ID, &
|
||||||
|
ELASTICITY_HOOKE_ID, &
|
||||||
|
STIFFNESS_DEGRADATION_UNDEFINED_ID, &
|
||||||
|
STIFFNESS_DEGRADATION_DAMAGE_ID
|
||||||
|
end enum
|
||||||
interface
|
interface
|
||||||
|
|
||||||
module subroutine mech_none_init
|
module subroutine mech_none_init
|
||||||
|
|
Loading…
Reference in New Issue