parent
ee60ce0d98
commit
1bcf41100d
|
@ -163,7 +163,7 @@ subroutine constitutive_init()
|
||||||
if (any(phase_plasticity == PLASTICITY_ISOTROPIC_ID)) call plastic_isotropic_init
|
if (any(phase_plasticity == PLASTICITY_ISOTROPIC_ID)) call plastic_isotropic_init
|
||||||
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init
|
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init
|
||||||
if (any(phase_plasticity == PLASTICITY_KINEHARDENING_ID)) call plastic_kinehardening_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_KINEHARDENING_ID)) call plastic_kinehardening_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOUCLA_ID)) call plastic_disloucla_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOUCLA_ID)) call plastic_disloucla_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) then
|
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) then
|
||||||
call plastic_nonlocal_init(FILEUNIT)
|
call plastic_nonlocal_init(FILEUNIT)
|
||||||
|
|
120
src/lattice.f90
120
src/lattice.f90
|
@ -16,18 +16,14 @@ module lattice
|
||||||
! BEGIN DEPRECATED
|
! BEGIN DEPRECATED
|
||||||
integer(pInt), parameter, public :: &
|
integer(pInt), parameter, public :: &
|
||||||
LATTICE_maxNslipFamily = 13_pInt, & !< max # of slip system families over lattice structures
|
LATTICE_maxNslipFamily = 13_pInt, & !< max # of slip system families over lattice structures
|
||||||
LATTICE_maxNtransFamily = 1_pInt, & !< max # of transformation system families over lattice structures
|
|
||||||
LATTICE_maxNcleavageFamily = 3_pInt !< max # of transformation system families over lattice structures
|
LATTICE_maxNcleavageFamily = 3_pInt !< max # of transformation system families over lattice structures
|
||||||
|
|
||||||
integer(pInt), allocatable, dimension(:,:), protected, public :: &
|
integer(pInt), allocatable, dimension(:,:), protected, public :: &
|
||||||
lattice_NslipSystem, & !< total # of slip systems in each family
|
lattice_NslipSystem, & !< total # of slip systems in each family
|
||||||
lattice_NtransSystem, & !< total # of transformation systems in each family
|
|
||||||
lattice_NcleavageSystem !< total # of transformation systems in each family
|
lattice_NcleavageSystem !< total # of transformation systems in each family
|
||||||
|
|
||||||
integer(pInt), allocatable, dimension(:,:,:), protected, public :: &
|
integer(pInt), allocatable, dimension(:,:,:), protected, public :: &
|
||||||
lattice_interactionSlipSlip, & !< Slip--slip interaction type
|
lattice_interactionSlipSlip !< Slip--slip interaction type
|
||||||
lattice_interactionSlipTrans, & !< Slip--trans interaction type
|
|
||||||
lattice_interactionTransSlip !< Trans--slip interaction type
|
|
||||||
|
|
||||||
real(pReal), allocatable, dimension(:,:,:,:,:), protected, public :: &
|
real(pReal), allocatable, dimension(:,:,:,:,:), protected, public :: &
|
||||||
lattice_Sslip, & !< Schmid and non-Schmid matrices
|
lattice_Sslip, & !< Schmid and non-Schmid matrices
|
||||||
|
@ -49,7 +45,6 @@ module lattice
|
||||||
|
|
||||||
integer(pInt), allocatable, dimension(:), protected, public :: &
|
integer(pInt), allocatable, dimension(:), protected, public :: &
|
||||||
lattice_NnonSchmid !< total # of non-Schmid contributions for each structure
|
lattice_NnonSchmid !< total # of non-Schmid contributions for each structure
|
||||||
|
|
||||||
! END DEPRECATED
|
! END DEPRECATED
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,7 +56,7 @@ module lattice
|
||||||
integer(pInt), dimension(1), parameter, public :: &
|
integer(pInt), dimension(1), parameter, public :: &
|
||||||
LATTICE_FCC_NTWINSYSTEM = int([12],pInt) !< # of twin systems per family for fcc
|
LATTICE_FCC_NTWINSYSTEM = int([12],pInt) !< # of twin systems per family for fcc
|
||||||
|
|
||||||
integer(pInt), dimension(LATTICE_maxNtransFamily), parameter, public :: &
|
integer(pInt), dimension(1), parameter, public :: &
|
||||||
LATTICE_fcc_NtransSystem = int([12],pInt) !< # of transformation systems per family for fcc
|
LATTICE_fcc_NtransSystem = int([12],pInt) !< # of transformation systems per family for fcc
|
||||||
|
|
||||||
integer(pInt), dimension(LATTICE_maxNcleavageFamily), parameter, public :: &
|
integer(pInt), dimension(LATTICE_maxNcleavageFamily), parameter, public :: &
|
||||||
|
@ -188,36 +183,6 @@ module lattice
|
||||||
!<11: crossing btw one {110} and one {111} plane
|
!<11: crossing btw one {110} and one {111} plane
|
||||||
!<12: collinear btw one {110} and one {111} plane
|
!<12: collinear btw one {110} and one {111} plane
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
integer(pInt), dimension(LATTICE_FCC_NSLIP,LATTICE_fcc_Ntrans), parameter, public :: &
|
|
||||||
LATTICE_FCC_INTERACTIONSLIPTRANS = reshape(int( [&
|
|
||||||
1,1,1,3,3,3,2,2,2,3,3,3, & ! ---> trans
|
|
||||||
1,1,1,3,3,3,3,3,3,2,2,2, & ! |
|
|
||||||
1,1,1,2,2,2,3,3,3,3,3,3, & ! |
|
|
||||||
3,3,3,1,1,1,3,3,3,2,2,2, & ! v slip
|
|
||||||
3,3,3,1,1,1,2,2,2,3,3,3, &
|
|
||||||
2,2,2,1,1,1,3,3,3,3,3,3, &
|
|
||||||
2,2,2,3,3,3,1,1,1,3,3,3, &
|
|
||||||
3,3,3,2,2,2,1,1,1,3,3,3, &
|
|
||||||
3,3,3,3,3,3,1,1,1,2,2,2, &
|
|
||||||
3,3,3,2,2,2,3,3,3,1,1,1, &
|
|
||||||
2,2,2,3,3,3,3,3,3,1,1,1, &
|
|
||||||
3,3,3,3,3,3,2,2,2,1,1,1, &
|
|
||||||
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4, &
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4, &
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4, &
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4, &
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4, &
|
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4 &
|
|
||||||
],pInt),shape(LATTICE_FCC_INTERACTIONSLIPTRANS),order=[2,1]) !< Slip--trans interaction types for fcc
|
|
||||||
|
|
||||||
integer(pInt), dimension(LATTICE_fcc_Ntrans,LATTICE_FCC_NSLIP), parameter, public :: &
|
|
||||||
LATTICE_FCC_interactionTransSlip = 1_pInt !< Trans--Slip interaction types for fcc
|
|
||||||
|
|
||||||
real(pReal), dimension(LATTICE_fcc_Ntrans), parameter, private :: &
|
real(pReal), dimension(LATTICE_fcc_Ntrans), parameter, private :: &
|
||||||
LATTICE_fccTohex_shearTrans = sqrt(1.0_pReal/8.0_pReal)
|
LATTICE_fccTohex_shearTrans = sqrt(1.0_pReal/8.0_pReal)
|
||||||
|
|
||||||
|
@ -900,7 +865,6 @@ module lattice
|
||||||
lattice_interaction_SlipTwin, &
|
lattice_interaction_SlipTwin, &
|
||||||
lattice_interaction_SlipTrans, &
|
lattice_interaction_SlipTrans, &
|
||||||
lattice_interaction_TwinSlip, &
|
lattice_interaction_TwinSlip, &
|
||||||
lattice_interaction_TransSlip, &
|
|
||||||
lattice_characteristicShear_Twin, &
|
lattice_characteristicShear_Twin, &
|
||||||
lattice_C66_twin
|
lattice_C66_twin
|
||||||
|
|
||||||
|
@ -973,21 +937,16 @@ subroutine lattice_init
|
||||||
allocate(lattice_NnonSchmid(Nphases), source=0_pInt)
|
allocate(lattice_NnonSchmid(Nphases), source=0_pInt)
|
||||||
allocate(lattice_Sslip(3,3,1+2*lattice_maxNnonSchmid,lattice_maxNslip,Nphases),source=0.0_pReal)
|
allocate(lattice_Sslip(3,3,1+2*lattice_maxNnonSchmid,lattice_maxNslip,Nphases),source=0.0_pReal)
|
||||||
allocate(lattice_Sslip_v(6,1+2*lattice_maxNnonSchmid,lattice_maxNslip,Nphases),source=0.0_pReal)
|
allocate(lattice_Sslip_v(6,1+2*lattice_maxNnonSchmid,lattice_maxNslip,Nphases),source=0.0_pReal)
|
||||||
|
allocate(lattice_NslipSystem(lattice_maxNslipFamily,Nphases),source=0_pInt)
|
||||||
|
allocate(lattice_interactionSlipSlip(lattice_maxNslip,lattice_maxNslip,Nphases),source=0_pInt) ! other:me
|
||||||
|
|
||||||
allocate(lattice_Scleavage(3,3,3,lattice_maxNslip,Nphases),source=0.0_pReal)
|
allocate(lattice_Scleavage(3,3,3,lattice_maxNslip,Nphases),source=0.0_pReal)
|
||||||
allocate(lattice_Scleavage_v(6,3,lattice_maxNslip,Nphases),source=0.0_pReal)
|
allocate(lattice_Scleavage_v(6,3,lattice_maxNslip,Nphases),source=0.0_pReal)
|
||||||
|
|
||||||
allocate(lattice_shearTrans(lattice_maxNtrans,Nphases),source=0.0_pReal)
|
|
||||||
|
|
||||||
allocate(lattice_Qtrans(3,3,lattice_maxNtrans,Nphases),source=0.0_pReal)
|
|
||||||
allocate(lattice_Strans(3,3,lattice_maxNtrans,Nphases),source=0.0_pReal)
|
|
||||||
|
|
||||||
allocate(lattice_NslipSystem(lattice_maxNslipFamily,Nphases),source=0_pInt)
|
|
||||||
allocate(lattice_NtransSystem(lattice_maxNtransFamily,Nphases),source=0_pInt)
|
|
||||||
allocate(lattice_NcleavageSystem(lattice_maxNcleavageFamily,Nphases),source=0_pInt)
|
allocate(lattice_NcleavageSystem(lattice_maxNcleavageFamily,Nphases),source=0_pInt)
|
||||||
|
|
||||||
allocate(lattice_interactionSlipSlip(lattice_maxNslip,lattice_maxNslip,Nphases),source=0_pInt) ! other:me
|
allocate(lattice_shearTrans(lattice_maxNtrans,Nphases),source=0.0_pReal)
|
||||||
allocate(lattice_interactionSlipTrans(lattice_maxNslip,lattice_maxNtrans,Nphases),source=0_pInt) ! other:me
|
allocate(lattice_Qtrans(3,3,lattice_maxNtrans,Nphases),source=0.0_pReal)
|
||||||
allocate(lattice_interactionTransSlip(lattice_maxNtrans,lattice_maxNslip,Nphases),source=0_pInt) ! other:me
|
allocate(lattice_Strans(3,3,lattice_maxNtrans,Nphases),source=0.0_pReal)
|
||||||
|
|
||||||
allocate(CoverA(Nphases),source=0.0_pReal)
|
allocate(CoverA(Nphases),source=0.0_pReal)
|
||||||
allocate(CoverA_trans(Nphases),source=0.0_pReal)
|
allocate(CoverA_trans(Nphases),source=0.0_pReal)
|
||||||
|
@ -1377,8 +1336,6 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc)
|
||||||
lattice_NslipSystem(1:lattice_maxNslipFamily,myPhase) = lattice_fcc_NslipSystem
|
lattice_NslipSystem(1:lattice_maxNslipFamily,myPhase) = lattice_fcc_NslipSystem
|
||||||
lattice_NcleavageSystem(1:lattice_maxNcleavageFamily,myPhase) = lattice_fcc_NcleavageSystem
|
lattice_NcleavageSystem(1:lattice_maxNcleavageFamily,myPhase) = lattice_fcc_NcleavageSystem
|
||||||
lattice_interactionSlipSlip(1:myNslip,1:myNslip,myPhase) = lattice_fcc_interactionSlipSlip
|
lattice_interactionSlipSlip(1:myNslip,1:myNslip,myPhase) = lattice_fcc_interactionSlipSlip
|
||||||
lattice_interactionSlipTrans(1:myNslip,1:myNtrans,myPhase) = lattice_fcc_interactionSlipTrans
|
|
||||||
lattice_interactionTransSlip(1:myNtrans,1:myNslip,myPhase) = lattice_fcc_interactionTransSlip
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! bcc
|
! bcc
|
||||||
|
@ -2392,9 +2349,32 @@ function lattice_interaction_SlipTrans(Nslip,Ntrans,interactionValues,structure)
|
||||||
NtransMax
|
NtransMax
|
||||||
integer(pInt), dimension(:,:), allocatable :: interactionTypes
|
integer(pInt), dimension(:,:), allocatable :: interactionTypes
|
||||||
|
|
||||||
|
integer(pInt), dimension(LATTICE_FCC_NSLIP,LATTICE_fcc_Ntrans), parameter :: &
|
||||||
|
FCC_INTERACTIONSLIPTRANS = reshape(int( [&
|
||||||
|
1,1,1,3,3,3,2,2,2,3,3,3, & ! ---> trans
|
||||||
|
1,1,1,3,3,3,3,3,3,2,2,2, & ! |
|
||||||
|
1,1,1,2,2,2,3,3,3,3,3,3, & ! |
|
||||||
|
3,3,3,1,1,1,3,3,3,2,2,2, & ! v slip
|
||||||
|
3,3,3,1,1,1,2,2,2,3,3,3, &
|
||||||
|
2,2,2,1,1,1,3,3,3,3,3,3, &
|
||||||
|
2,2,2,3,3,3,1,1,1,3,3,3, &
|
||||||
|
3,3,3,2,2,2,1,1,1,3,3,3, &
|
||||||
|
3,3,3,3,3,3,1,1,1,2,2,2, &
|
||||||
|
3,3,3,2,2,2,3,3,3,1,1,1, &
|
||||||
|
2,2,2,3,3,3,3,3,3,1,1,1, &
|
||||||
|
3,3,3,3,3,3,2,2,2,1,1,1, &
|
||||||
|
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4, &
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4, &
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4, &
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4, &
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4, &
|
||||||
|
4,4,4,4,4,4,4,4,4,4,4,4 &
|
||||||
|
],pInt),shape(FCC_INTERACTIONSLIPTRANS),order=[2,1]) !< Slip--trans interaction types for fcc
|
||||||
|
|
||||||
select case(structure)
|
select case(structure)
|
||||||
case('fcc')
|
case('fcc')
|
||||||
interactionTypes = LATTICE_FCC_INTERACTIONSLIPTRANS
|
interactionTypes = FCC_INTERACTIONSLIPTRANS
|
||||||
NslipMax = LATTICE_FCC_NSLIPSYSTEM
|
NslipMax = LATTICE_FCC_NSLIPSYSTEM
|
||||||
NtransMax = LATTICE_FCC_NTRANSSYSTEM
|
NtransMax = LATTICE_FCC_NTRANSSYSTEM
|
||||||
case default
|
case default
|
||||||
|
@ -2489,42 +2469,6 @@ function lattice_interaction_TwinSlip(Ntwin,Nslip,interactionValues,structure) r
|
||||||
end function lattice_interaction_TwinSlip
|
end function lattice_interaction_TwinSlip
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
!> @brief Populates trans-trans interaction matrix
|
|
||||||
!> details: only active transformation systems are considered
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
function lattice_interaction_TransSlip(Ntrans,Nslip,interactionValues,structure) result(interactionMatrix)
|
|
||||||
use IO, only: &
|
|
||||||
IO_error
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
integer(pInt), dimension(:), intent(in) :: Ntrans, & !< number of active trans systems per family
|
|
||||||
Nslip !< number of active slip systems per family
|
|
||||||
real(pReal), dimension(:), intent(in) :: interactionValues !< interaction values trans-trans
|
|
||||||
character(len=*), intent(in) :: &
|
|
||||||
structure !< lattice structure of parent crystal
|
|
||||||
real(pReal), dimension(sum(Ntrans),sum(Nslip)) :: interactionMatrix
|
|
||||||
|
|
||||||
integer(pInt), dimension(:), allocatable :: NtransMax, &
|
|
||||||
NslipMax
|
|
||||||
integer(pInt), dimension(:,:), allocatable :: interactionTypes
|
|
||||||
|
|
||||||
select case(structure)
|
|
||||||
case('fcc')
|
|
||||||
interactionTypes = LATTICE_FCC_INTERACTIONTRANSSLIP
|
|
||||||
NslipMax = LATTICE_FCC_NSLIPSYSTEM
|
|
||||||
NtransMax = LATTICE_FCC_NTRANSSYSTEM
|
|
||||||
case default
|
|
||||||
call IO_error(132_pInt,ext_msg=trim(structure)//' (trans slip interaction)')
|
|
||||||
end select
|
|
||||||
|
|
||||||
!if (size(interactionValues) > maxval(interactionTypes)) &
|
|
||||||
! call IO_error(0_pInt) ! ToDo
|
|
||||||
interactionMatrix = buildInteraction(Ntrans,Nslip,NtransMax,NslipMax,interactionValues,interactionTypes)
|
|
||||||
|
|
||||||
end function lattice_interaction_TransSlip
|
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Calculates Schmid matrix for active slip systems
|
!> @brief Calculates Schmid matrix for active slip systems
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -104,7 +104,6 @@ module plastic_dislotwin
|
||||||
interaction_TwinSlip, & !< coefficients for twin-slip interaction for each interaction type
|
interaction_TwinSlip, & !< coefficients for twin-slip interaction for each interaction type
|
||||||
interaction_TwinTwin, & !< coefficients for twin-twin interaction for each interaction type
|
interaction_TwinTwin, & !< coefficients for twin-twin interaction for each interaction type
|
||||||
interaction_SlipTrans, & !< coefficients for slip-trans interaction for each interaction type
|
interaction_SlipTrans, & !< coefficients for slip-trans interaction for each interaction type
|
||||||
interaction_TransSlip, & !< coefficients for trans-slip interaction for each interaction type
|
|
||||||
interaction_TransTrans !< coefficients for trans-trans interaction for each interaction type
|
interaction_TransTrans !< coefficients for trans-trans interaction for each interaction type
|
||||||
integer(pInt), dimension(:,:), allocatable :: &
|
integer(pInt), dimension(:,:), allocatable :: &
|
||||||
fcc_twinNucleationSlipPair ! ToDo: Better name? Is also use for trans
|
fcc_twinNucleationSlipPair ! ToDo: Better name? Is also use for trans
|
||||||
|
@ -190,7 +189,7 @@ contains
|
||||||
!> @brief module initialization
|
!> @brief module initialization
|
||||||
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_dislotwin_init(fileUnit)
|
subroutine plastic_dislotwin_init
|
||||||
#if defined(__GFORTRAN__) || __INTEL_COMPILER >= 1800
|
#if defined(__GFORTRAN__) || __INTEL_COMPILER >= 1800
|
||||||
use, intrinsic :: iso_fortran_env, only: &
|
use, intrinsic :: iso_fortran_env, only: &
|
||||||
compiler_version, &
|
compiler_version, &
|
||||||
|
@ -230,8 +229,6 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
use lattice
|
use lattice
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: fileUnit
|
|
||||||
|
|
||||||
integer(pInt) :: Ninstance,&
|
integer(pInt) :: Ninstance,&
|
||||||
f,j,i,k,o,p, &
|
f,j,i,k,o,p, &
|
||||||
offset_slip, index_myFamily, index_otherFamily, &
|
offset_slip, index_myFamily, index_otherFamily, &
|
||||||
|
@ -240,7 +237,7 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
integer(pInt) :: NipcMyPhase
|
integer(pInt) :: NipcMyPhase
|
||||||
|
|
||||||
real(pReal), allocatable, dimension(:,:) :: temp1
|
real(pReal), allocatable, dimension(:,:) :: temp1
|
||||||
|
integer(pInt), dimension(1,200), parameter :: lattice_ntranssystem = 12 ! HACK!!
|
||||||
integer(pInt), dimension(0), parameter :: emptyIntArray = [integer(pInt)::]
|
integer(pInt), dimension(0), parameter :: emptyIntArray = [integer(pInt)::]
|
||||||
real(pReal), dimension(0), parameter :: emptyRealArray = [real(pReal)::]
|
real(pReal), dimension(0), parameter :: emptyRealArray = [real(pReal)::]
|
||||||
character(len=65536), dimension(0), parameter :: emptyStringArray = [character(len=65536)::]
|
character(len=65536), dimension(0), parameter :: emptyStringArray = [character(len=65536)::]
|
||||||
|
@ -450,10 +447,6 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
prm%interaction_SlipTrans = lattice_interaction_SlipTrans(prm%Nslip,prm%Ntrans,&
|
prm%interaction_SlipTrans = lattice_interaction_SlipTrans(prm%Nslip,prm%Ntrans,&
|
||||||
config_phase(p)%getFloats('interaction_sliptrans'), &
|
config_phase(p)%getFloats('interaction_sliptrans'), &
|
||||||
structure(1:3))
|
structure(1:3))
|
||||||
prm%interaction_TransSlip = lattice_interaction_TransSlip(prm%Ntrans,prm%Nslip,&
|
|
||||||
config_phase(p)%getFloats('interaction_transslip'), &
|
|
||||||
structure(1:3))
|
|
||||||
|
|
||||||
if (prm%fccTwinTransNucleation .and. prm%totalNtrans > 12_pInt) write(6,*) 'mist' ! ToDo: implement better test. The model will fail also if ntrans is [6,6]
|
if (prm%fccTwinTransNucleation .and. prm%totalNtrans > 12_pInt) write(6,*) 'mist' ! ToDo: implement better test. The model will fail also if ntrans is [6,6]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -695,25 +688,23 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
plasticState(p)%state0 = plasticState(p)%state
|
plasticState(p)%state0 = plasticState(p)%state
|
||||||
dot%whole => plasticState(p)%dotState
|
dot%whole => plasticState(p)%dotState
|
||||||
|
|
||||||
allocate(mse%invLambdaSlip (prm%totalNslip,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%invLambdaSlip (prm%totalNslip, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%invLambdaSlipTwin (prm%totalNslip,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%invLambdaSlipTwin (prm%totalNslip, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%invLambdaSlipTrans(prm%totalNslip,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%invLambdaSlipTrans (prm%totalNslip, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%invLambdaTwin (prm%totalNtwin,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%mfp_slip (prm%totalNslip, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%invLambdaTrans (prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%threshold_stress_slip (prm%totalNslip, NipcMyPhase),source=0.0_pReal)
|
||||||
|
|
||||||
allocate(mse%mfp_slip(prm%totalNslip,NipcMyPhase), source=0.0_pReal)
|
allocate(mse%invLambdaTwin (prm%totalNtwin, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%mfp_twin(prm%totalNtwin,NipcMyPhase), source=0.0_pReal)
|
allocate(mse%mfp_twin (prm%totalNtwin, NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%mfp_trans(prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%threshold_stress_twin (prm%totalNtwin, NipcMyPhase),source=0.0_pReal)
|
||||||
|
allocate(mse%tau_r_twin (prm%totalNtwin, NipcMyPhase),source=0.0_pReal)
|
||||||
|
allocate(mse%twinVolume (prm%totalNtwin, NipcMyPhase),source=0.0_pReal)
|
||||||
|
|
||||||
allocate(mse%threshold_stress_slip(prm%totalNslip,NipcMyPhase), source=0.0_pReal)
|
allocate(mse%invLambdaTrans (prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%threshold_stress_twin(prm%totalNtwin,NipcMyPhase), source=0.0_pReal)
|
allocate(mse%mfp_trans (prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%threshold_stress_trans(prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
allocate(mse%threshold_stress_trans(prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
||||||
|
allocate(mse%tau_r_trans (prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%tau_r_twin(prm%totalNtwin,NipcMyPhase), source=0.0_pReal)
|
allocate(mse%martensiteVolume (prm%totalNtrans,NipcMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%tau_r_trans(prm%totalNtrans,NipcMyPhase), source=0.0_pReal)
|
|
||||||
|
|
||||||
allocate(mse%twinVolume(prm%totalNtwin,NipcMyPhase), source=0.0_pReal)
|
|
||||||
allocate(mse%martensiteVolume(prm%totalNtrans,NipcMyPhase), source=0.0_pReal)
|
|
||||||
|
|
||||||
end associate
|
end associate
|
||||||
enddo
|
enddo
|
||||||
|
@ -1076,12 +1067,6 @@ subroutine plastic_dislotwin_dotState(Mp,Temperature,instance,of)
|
||||||
real(pReal), dimension(plasticState(instance)%Nslip) :: &
|
real(pReal), dimension(plasticState(instance)%Nslip) :: &
|
||||||
gdot_slip
|
gdot_slip
|
||||||
|
|
||||||
|
|
||||||
type(tParameters) :: prm
|
|
||||||
type(tDislotwinState) :: stt, dot
|
|
||||||
type(tDislotwinMicrostructure) :: mse
|
|
||||||
|
|
||||||
|
|
||||||
associate(prm => param(instance), stt => state(instance), &
|
associate(prm => param(instance), stt => state(instance), &
|
||||||
dot => dotstate(instance), mse => microstructure(instance))
|
dot => dotstate(instance), mse => microstructure(instance))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue