mech is responsible for stiffness
This commit is contained in:
parent
895cad6506
commit
36affc93bf
|
@ -21,6 +21,7 @@ module constitutive
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
enum, bind(c); enumerator :: &
|
enum, bind(c); enumerator :: &
|
||||||
PLASTICITY_UNDEFINED_ID, &
|
PLASTICITY_UNDEFINED_ID, &
|
||||||
PLASTICITY_NONE_ID, &
|
PLASTICITY_NONE_ID, &
|
||||||
|
@ -118,7 +119,7 @@ module constitutive
|
||||||
|
|
||||||
procedure(integrateStateFPI), pointer :: integrateState
|
procedure(integrateStateFPI), pointer :: integrateState
|
||||||
|
|
||||||
integer(kind(PLASTICITY_undefined_ID)), dimension(:), allocatable :: &
|
integer(kind(PLASTICITY_undefined_ID)), dimension(:), allocatable, public :: &
|
||||||
phase_plasticity !< plasticity of each phase
|
phase_plasticity !< plasticity of each phase
|
||||||
|
|
||||||
integer(kind(SOURCE_undefined_ID)), dimension(:,:), allocatable :: &
|
integer(kind(SOURCE_undefined_ID)), dimension(:,:), allocatable :: &
|
||||||
|
@ -186,6 +187,11 @@ module constitutive
|
||||||
|
|
||||||
! == cleaned:end ===================================================================================
|
! == cleaned:end ===================================================================================
|
||||||
|
|
||||||
|
module function constitutive_homogenizedC(co,ip,el) result(C)
|
||||||
|
integer, intent(in) :: co, ip, el
|
||||||
|
real(pReal), dimension(6,6) :: C
|
||||||
|
end function constitutive_homogenizedC
|
||||||
|
|
||||||
module subroutine source_damage_anisoBrittle_dotState(S, co, ip, el)
|
module subroutine source_damage_anisoBrittle_dotState(S, co, ip, el)
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
co, & !< component-ID of integration point
|
co, & !< component-ID of integration point
|
||||||
|
@ -240,14 +246,7 @@ module constitutive
|
||||||
dTDot_dT
|
dTDot_dT
|
||||||
end subroutine constitutive_thermal_getRateAndItsTangents
|
end subroutine constitutive_thermal_getRateAndItsTangents
|
||||||
|
|
||||||
module function plastic_dislotwin_homogenizedC(co,ip,el) result(homogenizedC)
|
|
||||||
real(pReal), dimension(6,6) :: &
|
|
||||||
homogenizedC
|
|
||||||
integer, intent(in) :: &
|
|
||||||
co, & !< component-ID of integration point
|
|
||||||
ip, & !< integration point
|
|
||||||
el !< element
|
|
||||||
end function plastic_dislotwin_homogenizedC
|
|
||||||
|
|
||||||
module subroutine plastic_nonlocal_updateCompatibility(orientation,instance,i,e)
|
module subroutine plastic_nonlocal_updateCompatibility(orientation,instance,i,e)
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
|
@ -396,7 +395,26 @@ module constitutive
|
||||||
crystallite_restartRead, &
|
crystallite_restartRead, &
|
||||||
constitutive_initializeRestorationPoints, &
|
constitutive_initializeRestorationPoints, &
|
||||||
constitutive_windForward, &
|
constitutive_windForward, &
|
||||||
crystallite_restore
|
crystallite_restore, &
|
||||||
|
PLASTICITY_UNDEFINED_ID, &
|
||||||
|
PLASTICITY_NONE_ID, &
|
||||||
|
PLASTICITY_ISOTROPIC_ID, &
|
||||||
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
|
PLASTICITY_KINEHARDENING_ID, &
|
||||||
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOTUNGSTEN_ID, &
|
||||||
|
PLASTICITY_NONLOCAL_ID, &
|
||||||
|
SOURCE_UNDEFINED_ID ,&
|
||||||
|
SOURCE_THERMAL_DISSIPATION_ID, &
|
||||||
|
SOURCE_THERMAL_EXTERNALHEAT_ID, &
|
||||||
|
SOURCE_DAMAGE_ISOBRITTLE_ID, &
|
||||||
|
SOURCE_DAMAGE_ISODUCTILE_ID, &
|
||||||
|
SOURCE_DAMAGE_ANISOBRITTLE_ID, &
|
||||||
|
SOURCE_DAMAGE_ANISODUCTILE_ID, &
|
||||||
|
KINEMATICS_UNDEFINED_ID ,&
|
||||||
|
KINEMATICS_CLEAVAGE_OPENING_ID, &
|
||||||
|
KINEMATICS_SLIPPLANE_OPENING_ID, &
|
||||||
|
KINEMATICS_THERMAL_EXPANSION_ID
|
||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
|
@ -512,29 +530,6 @@ function kinematics_active(kinematics_label,kinematics_length) result(active_ki
|
||||||
end function kinematics_active
|
end function kinematics_active
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
!> @brief returns the homogenize elasticity matrix
|
|
||||||
!> ToDo: homogenizedC66 would be more consistent
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
function constitutive_homogenizedC(co,ip,el)
|
|
||||||
|
|
||||||
real(pReal), dimension(6,6) :: &
|
|
||||||
constitutive_homogenizedC
|
|
||||||
integer, intent(in) :: &
|
|
||||||
co, & !< component-ID of integration point
|
|
||||||
ip, & !< integration point
|
|
||||||
el !< element
|
|
||||||
|
|
||||||
plasticityType: select case (phase_plasticity(material_phaseAt(co,el)))
|
|
||||||
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
|
||||||
constitutive_homogenizedC = plastic_dislotwin_homogenizedC(co,ip,el)
|
|
||||||
case default plasticityType
|
|
||||||
constitutive_homogenizedC = lattice_C66(1:6,1:6,material_phaseAt(co,el))
|
|
||||||
end select plasticityType
|
|
||||||
|
|
||||||
end function constitutive_homogenizedC
|
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief contains the constitutive equation for calculating the velocity gradient
|
!> @brief contains the constitutive equation for calculating the velocity gradient
|
||||||
! ToDo: MD: S is Mi?
|
! ToDo: MD: S is Mi?
|
||||||
|
|
|
@ -9,7 +9,7 @@ submodule(constitutive) constitutive_mech
|
||||||
STIFFNESS_DEGRADATION_UNDEFINED_ID, &
|
STIFFNESS_DEGRADATION_UNDEFINED_ID, &
|
||||||
STIFFNESS_DEGRADATION_DAMAGE_ID
|
STIFFNESS_DEGRADATION_DAMAGE_ID
|
||||||
end enum
|
end enum
|
||||||
|
|
||||||
integer(kind(ELASTICITY_undefined_ID)), dimension(:), allocatable :: &
|
integer(kind(ELASTICITY_undefined_ID)), dimension(:), allocatable :: &
|
||||||
phase_elasticity !< elasticity of each phase
|
phase_elasticity !< elasticity of each phase
|
||||||
integer(kind(SOURCE_undefined_ID)), dimension(:,:), allocatable :: &
|
integer(kind(SOURCE_undefined_ID)), dimension(:,:), allocatable :: &
|
||||||
|
@ -273,6 +273,15 @@ submodule(constitutive) constitutive_mech
|
||||||
character(len=*), intent(in) :: group
|
character(len=*), intent(in) :: group
|
||||||
end subroutine plastic_nonlocal_results
|
end subroutine plastic_nonlocal_results
|
||||||
|
|
||||||
|
module function plastic_dislotwin_homogenizedC(co,ip,el) result(homogenizedC)
|
||||||
|
real(pReal), dimension(6,6) :: &
|
||||||
|
homogenizedC
|
||||||
|
integer, intent(in) :: &
|
||||||
|
co, & !< component-ID of integration point
|
||||||
|
ip, & !< integration point
|
||||||
|
el !< element
|
||||||
|
end function plastic_dislotwin_homogenizedC
|
||||||
|
|
||||||
|
|
||||||
end interface
|
end interface
|
||||||
type :: tOutput !< new requested output (per phase)
|
type :: tOutput !< new requested output (per phase)
|
||||||
|
@ -1449,5 +1458,28 @@ module subroutine constitutive_mech_forward()
|
||||||
|
|
||||||
end subroutine constitutive_mech_forward
|
end subroutine constitutive_mech_forward
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief returns the homogenize elasticity matrix
|
||||||
|
!> ToDo: homogenizedC66 would be more consistent
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
module function constitutive_homogenizedC(co,ip,el) result(C)
|
||||||
|
|
||||||
|
real(pReal), dimension(6,6) :: C
|
||||||
|
integer, intent(in) :: &
|
||||||
|
co, & !< component-ID of integration point
|
||||||
|
ip, & !< integration point
|
||||||
|
el !< element
|
||||||
|
|
||||||
|
plasticityType: select case (phase_plasticity(material_phaseAt(co,el)))
|
||||||
|
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
||||||
|
C = plastic_dislotwin_homogenizedC(co,ip,el)
|
||||||
|
case default plasticityType
|
||||||
|
C = lattice_C66(1:6,1:6,material_phaseAt(co,el))
|
||||||
|
end select plasticityType
|
||||||
|
|
||||||
|
end function constitutive_homogenizedC
|
||||||
|
|
||||||
end submodule constitutive_mech
|
end submodule constitutive_mech
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue