took some gfortran complaints serious (unused imports, implicit castings)
This commit is contained in:
parent
064266c0cd
commit
0ba8f27320
|
@ -760,7 +760,7 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar3333, dLp_dFi3333, Tstar_v
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
call plastic_nonlocal_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
call plastic_nonlocal_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
||||||
constitutive_getTemperature(ipc,ip,el), &
|
constitutive_getTemperature(ipc,ip,el), &
|
||||||
ipc,ip,el)
|
ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
call plastic_dislotwin_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
call plastic_dislotwin_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
||||||
constitutive_getTemperature(ipc,ip,el), &
|
constitutive_getTemperature(ipc,ip,el), &
|
||||||
|
|
|
@ -69,9 +69,6 @@ subroutine damage_gurson_init(fileUnit)
|
||||||
debug_level,&
|
debug_level,&
|
||||||
debug_constitutive,&
|
debug_constitutive,&
|
||||||
debug_levelBasic
|
debug_levelBasic
|
||||||
use mesh, only: &
|
|
||||||
mesh_maxNips, &
|
|
||||||
mesh_NcpElems
|
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_read, &
|
IO_read, &
|
||||||
IO_lc, &
|
IO_lc, &
|
||||||
|
@ -86,7 +83,6 @@ subroutine damage_gurson_init(fileUnit)
|
||||||
IO_timeStamp, &
|
IO_timeStamp, &
|
||||||
IO_EOF
|
IO_EOF
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
phase_damage, &
|
phase_damage, &
|
||||||
phase_damageInstance, &
|
phase_damageInstance, &
|
||||||
phase_Noutput, &
|
phase_Noutput, &
|
||||||
|
@ -318,9 +314,9 @@ subroutine damage_gurson_dotState(Tstar_v, Lp, ipc, ip, el)
|
||||||
Tstar_dev
|
Tstar_dev
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = mappingConstitutive(2,ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = mappingConstitutive(1,ipc,ip,el)
|
||||||
Tstar_dev = math_Mandel6to33(Tstar_v) - math_trace33(math_Mandel6to33(Tstar_v))/3*math_I3
|
Tstar_dev = math_Mandel6to33(Tstar_v) - math_trace33(math_Mandel6to33(Tstar_v))/3.0_pReal*math_I3
|
||||||
i1 = sum(Tstar_v(1:3))
|
i1 = sum(Tstar_v(1:3))
|
||||||
j2 = 0.5_pReal*(math_norm33(Tstar_dev))**2
|
j2 = 0.5_pReal*(math_norm33(Tstar_dev))**2.0_pReal
|
||||||
j3 = math_j3_33(math_Mandel6to33(Tstar_v))
|
j3 = math_j3_33(math_Mandel6to33(Tstar_v))
|
||||||
|
|
||||||
damageState(phase)%dotState(1,constituent) = &
|
damageState(phase)%dotState(1,constituent) = &
|
||||||
|
@ -348,12 +344,10 @@ end subroutine damage_gurson_dotState
|
||||||
subroutine damage_gurson_microstructure(ipc, ip, el)
|
subroutine damage_gurson_microstructure(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_damageInstance, &
|
|
||||||
damageState
|
damageState
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_Mandel6to33, &
|
math_Mandel6to33, &
|
||||||
math_mul33x33, &
|
math_mul33x33, &
|
||||||
math_I3, &
|
|
||||||
math_norm33
|
math_norm33
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -371,10 +365,10 @@ subroutine damage_gurson_microstructure(ipc, ip, el)
|
||||||
voidFraction = damageState(phase)%state(2,constituent) + damageState(phase)%state(3,constituent)
|
voidFraction = damageState(phase)%state(2,constituent) + damageState(phase)%state(3,constituent)
|
||||||
|
|
||||||
if(voidFraction < damage_gurson_crit_void_fraction(phase)) then
|
if(voidFraction < damage_gurson_crit_void_fraction(phase)) then
|
||||||
damageState(phase)%state(4,constituent) = 1_pReal - voidFraction ! damage parameter is 1 when no void present
|
damageState(phase)%state(4,constituent) = 1.0_pReal - voidFraction ! damage parameter is 1 when no void present
|
||||||
else
|
else
|
||||||
damageState(phase)%state(4,constituent) = 1_pReal - damage_gurson_crit_void_fraction(phase) + &
|
damageState(phase)%state(4,constituent) = 1.0_pReal - damage_gurson_crit_void_fraction(phase) + &
|
||||||
5_pReal * (voidFraction - damage_gurson_crit_void_fraction(phase)) ! this accelerated void increase models the effect of void coalescence
|
5.0_pReal * (voidFraction - damage_gurson_crit_void_fraction(phase)) ! this accelerated void increase models the effect of void coalescence
|
||||||
endif
|
endif
|
||||||
|
|
||||||
end subroutine damage_gurson_microstructure
|
end subroutine damage_gurson_microstructure
|
||||||
|
|
|
@ -422,8 +422,7 @@ end function damage_isoBrittle_getDamageDiffusion33
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function damage_isoBrittle_getDamagedC66(C, ipc, ip, el)
|
function damage_isoBrittle_getDamagedC66(C, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive
|
||||||
damageState
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
|
|
@ -393,8 +393,7 @@ end function damage_isoDuctile_getLocalDamage
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function damage_isoDuctile_getDamagedC66(C, ipc, ip, el)
|
function damage_isoDuctile_getDamagedC66(C, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive
|
||||||
damageState
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
|
|
@ -40,12 +40,10 @@ subroutine damage_none_init
|
||||||
numerics_integrator
|
numerics_integrator
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phase_damage, &
|
phase_damage, &
|
||||||
phase_Noutput, &
|
|
||||||
LOCAL_DAMAGE_NONE_label, &
|
LOCAL_DAMAGE_NONE_label, &
|
||||||
LOCAL_DAMAGE_NONE_ID, &
|
LOCAL_DAMAGE_NONE_ID, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
damageState, &
|
damageState
|
||||||
MATERIAL_partPhase
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
|
@ -976,8 +976,6 @@ contains
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine lattice_init
|
subroutine lattice_init
|
||||||
use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment)
|
use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment)
|
||||||
use prec, only: &
|
|
||||||
tol_math_check
|
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_open_file,&
|
IO_open_file,&
|
||||||
IO_open_jobFile_stat, &
|
IO_open_jobFile_stat, &
|
||||||
|
|
|
@ -1113,8 +1113,6 @@ subroutine material_populateGrains
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_hybridIA
|
IO_hybridIA
|
||||||
use FEsolving, only: &
|
|
||||||
FEsolving_execIP
|
|
||||||
use debug, only: &
|
use debug, only: &
|
||||||
debug_level, &
|
debug_level, &
|
||||||
debug_material, &
|
debug_material, &
|
||||||
|
|
|
@ -461,12 +461,14 @@ module mesh
|
||||||
mesh_abaqus_count_cpSizes, &
|
mesh_abaqus_count_cpSizes, &
|
||||||
mesh_abaqus_build_elements, &
|
mesh_abaqus_build_elements, &
|
||||||
#endif
|
#endif
|
||||||
mesh_get_damaskOptions, &
|
#ifndef Spectral
|
||||||
mesh_build_cellconnectivity, &
|
|
||||||
mesh_build_ipAreas, &
|
|
||||||
mesh_build_nodeTwins, &
|
mesh_build_nodeTwins, &
|
||||||
mesh_build_sharedElems, &
|
mesh_build_sharedElems, &
|
||||||
mesh_build_ipNeighborhood, &
|
mesh_build_ipNeighborhood, &
|
||||||
|
#endif
|
||||||
|
mesh_get_damaskOptions, &
|
||||||
|
mesh_build_cellconnectivity, &
|
||||||
|
mesh_build_ipAreas, &
|
||||||
mesh_tell_statistics, &
|
mesh_tell_statistics, &
|
||||||
FE_mapElemtype, &
|
FE_mapElemtype, &
|
||||||
mesh_faceMatch, &
|
mesh_faceMatch, &
|
||||||
|
@ -513,9 +515,11 @@ subroutine mesh_init(ip,el)
|
||||||
worldrank
|
worldrank
|
||||||
use FEsolving, only: &
|
use FEsolving, only: &
|
||||||
FEsolving_execElem, &
|
FEsolving_execElem, &
|
||||||
|
#ifndef Spectral
|
||||||
|
modelName, &
|
||||||
|
#endif
|
||||||
FEsolving_execIP, &
|
FEsolving_execIP, &
|
||||||
calcMode, &
|
calcMode
|
||||||
modelName
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
#ifdef Spectral
|
#ifdef Spectral
|
||||||
|
@ -564,7 +568,7 @@ subroutine mesh_init(ip,el)
|
||||||
if (myDebug) write(6,'(a)') ' Opened geometry file'; flush(6)
|
if (myDebug) write(6,'(a)') ' Opened geometry file'; flush(6)
|
||||||
|
|
||||||
gridGlobal = mesh_spectral_getGrid(fileUnit)
|
gridGlobal = mesh_spectral_getGrid(fileUnit)
|
||||||
gridMPI = gridGlobal
|
gridMPI = int(gridGlobal,C_INTPTR_T)
|
||||||
alloc_local = fftw_mpi_local_size_3d(gridMPI(3), gridMPI(2), gridMPI(1)/2 +1, &
|
alloc_local = fftw_mpi_local_size_3d(gridMPI(3), gridMPI(2), gridMPI(1)/2 +1, &
|
||||||
MPI_COMM_WORLD, local_K, local_K_offset)
|
MPI_COMM_WORLD, local_K, local_K_offset)
|
||||||
gridLocal = [gridGlobal(1:2),int(local_K,pInt)]
|
gridLocal = [gridGlobal(1:2),int(local_K,pInt)]
|
||||||
|
@ -587,13 +591,13 @@ subroutine mesh_init(ip,el)
|
||||||
geomSizeOffset = 0.0_pReal
|
geomSizeOffset = 0.0_pReal
|
||||||
#endif
|
#endif
|
||||||
if (myDebug) write(6,'(a)') ' Grid partitioned'; flush(6)
|
if (myDebug) write(6,'(a)') ' Grid partitioned'; flush(6)
|
||||||
call mesh_spectral_count(FILEUNIT)
|
call mesh_spectral_count()
|
||||||
if (myDebug) write(6,'(a)') ' Counted nodes/elements'; flush(6)
|
if (myDebug) write(6,'(a)') ' Counted nodes/elements'; flush(6)
|
||||||
call mesh_spectral_mapNodesAndElems
|
call mesh_spectral_mapNodesAndElems
|
||||||
if (myDebug) write(6,'(a)') ' Mapped nodes and elements'; flush(6)
|
if (myDebug) write(6,'(a)') ' Mapped nodes and elements'; flush(6)
|
||||||
call mesh_spectral_count_cpSizes
|
call mesh_spectral_count_cpSizes
|
||||||
if (myDebug) write(6,'(a)') ' Built CP statistics'; flush(6)
|
if (myDebug) write(6,'(a)') ' Built CP statistics'; flush(6)
|
||||||
call mesh_spectral_build_nodes(FILEUNIT)
|
call mesh_spectral_build_nodes()
|
||||||
if (myDebug) write(6,'(a)') ' Built nodes'; flush(6)
|
if (myDebug) write(6,'(a)') ' Built nodes'; flush(6)
|
||||||
call mesh_spectral_build_elements(FILEUNIT)
|
call mesh_spectral_build_elements(FILEUNIT)
|
||||||
if (myDebug) write(6,'(a)') ' Built elements'; flush(6)
|
if (myDebug) write(6,'(a)') ' Built elements'; flush(6)
|
||||||
|
@ -1247,10 +1251,9 @@ end function mesh_spectral_getHomogenization
|
||||||
!> @brief Count overall number of nodes and elements in mesh and stores them in
|
!> @brief Count overall number of nodes and elements in mesh and stores them in
|
||||||
!! 'mesh_Nelems', 'mesh_Nnodes' and 'mesh_NcpElems'
|
!! 'mesh_Nelems', 'mesh_Nnodes' and 'mesh_NcpElems'
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine mesh_spectral_count(fileUnit)
|
subroutine mesh_spectral_count()
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: fileUnit
|
|
||||||
|
|
||||||
mesh_Nelems = product(gridLocal)
|
mesh_Nelems = product(gridLocal)
|
||||||
mesh_NcpElems= mesh_Nelems
|
mesh_NcpElems= mesh_Nelems
|
||||||
|
@ -1305,11 +1308,10 @@ end subroutine mesh_spectral_count_cpSizes
|
||||||
!> @brief Store x,y,z coordinates of all nodes in mesh.
|
!> @brief Store x,y,z coordinates of all nodes in mesh.
|
||||||
!! Allocates global arrays 'mesh_node0' and 'mesh_node'
|
!! Allocates global arrays 'mesh_node0' and 'mesh_node'
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine mesh_spectral_build_nodes(fileUnit)
|
subroutine mesh_spectral_build_nodes()
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: fileUnit
|
integer(pInt) :: n
|
||||||
integer(pInt) :: n
|
|
||||||
|
|
||||||
allocate (mesh_node0 (3,mesh_Nnodes), source = 0.0_pReal)
|
allocate (mesh_node0 (3,mesh_Nnodes), source = 0.0_pReal)
|
||||||
allocate (mesh_node (3,mesh_Nnodes), source = 0.0_pReal)
|
allocate (mesh_node (3,mesh_Nnodes), source = 0.0_pReal)
|
||||||
|
@ -3672,9 +3674,9 @@ subroutine mesh_build_ipAreas
|
||||||
enddo
|
enddo
|
||||||
!$OMP END PARALLEL DO
|
!$OMP END PARALLEL DO
|
||||||
|
|
||||||
end subroutine mesh_build_ipAreas
|
end subroutine mesh_build_ipAreas
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef Spectral
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief assignment of twin nodes for each cp node, allocate globals '_nodeTwins'
|
!> @brief assignment of twin nodes for each cp node, allocate globals '_nodeTwins'
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -3980,6 +3982,7 @@ subroutine mesh_build_ipNeighborhood
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
end subroutine mesh_build_ipNeighborhood
|
end subroutine mesh_build_ipNeighborhood
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -163,8 +163,6 @@ subroutine plastic_disloKMC_init(fileUnit)
|
||||||
math_Mandel3333to66, &
|
math_Mandel3333to66, &
|
||||||
math_Voigt66to3333, &
|
math_Voigt66to3333, &
|
||||||
math_mul3x3
|
math_mul3x3
|
||||||
use mesh, only: &
|
|
||||||
mesh_NcpElems
|
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_read, &
|
IO_read, &
|
||||||
IO_lc, &
|
IO_lc, &
|
||||||
|
@ -563,17 +561,17 @@ subroutine plastic_disloKMC_init(fileUnit)
|
||||||
if (plastic_disloKMC_Qsd(instance) <= 0.0_pReal) &
|
if (plastic_disloKMC_Qsd(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='Qsd ('//PLASTICITY_DISLOKMC_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='Qsd ('//PLASTICITY_DISLOKMC_label//')')
|
||||||
if (sum(plastic_disloKMC_Ntwin(:,instance)) > 0_pInt) then
|
if (sum(plastic_disloKMC_Ntwin(:,instance)) > 0_pInt) then
|
||||||
if (plastic_disloKMC_SFE_0K(instance) == 0.0_pReal .and. &
|
if (abs(plastic_disloKMC_SFE_0K(instance)) <= tiny(0.0_pReal) .and. &
|
||||||
plastic_disloKMC_dSFE_dT(instance) == 0.0_pReal .and. &
|
abs(plastic_disloKMC_dSFE_dT(instance)) <= tiny(0.0_pReal) .and. &
|
||||||
lattice_structure(phase) == LATTICE_fcc_ID) &
|
lattice_structure(phase) == LATTICE_fcc_ID) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='SFE0K ('//PLASTICITY_DISLOKMC_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='SFE0K ('//PLASTICITY_DISLOKMC_label//')')
|
||||||
if (plastic_disloKMC_aTolRho(instance) <= 0.0_pReal) &
|
if (plastic_disloKMC_aTolRho(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='aTolRho ('//PLASTICITY_DISLOKMC_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='aTolRho ('//PLASTICITY_DISLOKMC_label//')')
|
||||||
if (plastic_disloKMC_aTolTwinFrac(instance) <= 0.0_pReal) &
|
if (plastic_disloKMC_aTolTwinFrac(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='aTolTwinFrac ('//PLASTICITY_DISLOKMC_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='aTolTwinFrac ('//PLASTICITY_DISLOKMC_label//')')
|
||||||
endif
|
endif
|
||||||
if (plastic_disloKMC_dipoleFormationFactor(instance) /= 0.0_pReal .and. &
|
if (abs(plastic_disloKMC_dipoleFormationFactor(instance)) > tiny(0.0_pReal) .and. &
|
||||||
plastic_disloKMC_dipoleFormationFactor(instance) /= 1.0_pReal) &
|
plastic_disloKMC_dipoleFormationFactor(instance) /= 1.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='dipoleFormationFactor ('//PLASTICITY_DISLOKMC_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='dipoleFormationFactor ('//PLASTICITY_DISLOKMC_label//')')
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -935,7 +933,6 @@ end subroutine plastic_disloKMC_aTolState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function plastic_disloKMC_homogenizedC(ipc,ip,el)
|
function plastic_disloKMC_homogenizedC(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
mappingConstitutive
|
||||||
|
@ -1362,7 +1359,6 @@ subroutine plastic_disloKMC_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
lattice_Sslip, &
|
|
||||||
lattice_maxNslipFamily, &
|
lattice_maxNslipFamily, &
|
||||||
lattice_maxNtwinFamily, &
|
lattice_maxNtwinFamily, &
|
||||||
lattice_NslipSystem, &
|
lattice_NslipSystem, &
|
||||||
|
@ -1491,7 +1487,7 @@ subroutine plastic_disloKMC_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
!* Dipole formation
|
!* Dipole formation
|
||||||
EdgeDipMinDistance = &
|
EdgeDipMinDistance = &
|
||||||
plastic_disloKMC_CEdgeDipMinDistance(instance)*plastic_disloKMC_burgersPerSlipSystem(j,instance)
|
plastic_disloKMC_CEdgeDipMinDistance(instance)*plastic_disloKMC_burgersPerSlipSystem(j,instance)
|
||||||
if (tau_slip_pos == 0.0_pReal) then
|
if (abs(tau_slip_pos) <= tiny(0.0_pReal)) then
|
||||||
DotRhoDipFormation = 0.0_pReal
|
DotRhoDipFormation = 0.0_pReal
|
||||||
else
|
else
|
||||||
EdgeDipDistance = &
|
EdgeDipDistance = &
|
||||||
|
@ -1519,7 +1515,7 @@ subroutine plastic_disloKMC_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
plastic_disloKMC_CAtomicVolume(instance)*plastic_disloKMC_burgersPerSlipSystem(j,instance)**(3.0_pReal)
|
plastic_disloKMC_CAtomicVolume(instance)*plastic_disloKMC_burgersPerSlipSystem(j,instance)**(3.0_pReal)
|
||||||
VacancyDiffusion = &
|
VacancyDiffusion = &
|
||||||
plastic_disloKMC_D0(instance)*exp(-plastic_disloKMC_Qsd(instance)/(kB*Temperature))
|
plastic_disloKMC_D0(instance)*exp(-plastic_disloKMC_Qsd(instance)/(kB*Temperature))
|
||||||
if (tau_slip_pos == 0.0_pReal) then
|
if (abs(tau_slip_pos) <= tiny(0.0_pReal)) then
|
||||||
DotRhoEdgeDipClimb = 0.0_pReal
|
DotRhoEdgeDipClimb = 0.0_pReal
|
||||||
else
|
else
|
||||||
ClimbVelocity = &
|
ClimbVelocity = &
|
||||||
|
@ -1602,7 +1598,6 @@ function plastic_disloKMC_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
lattice_Sslip, &
|
|
||||||
lattice_maxNslipFamily, &
|
lattice_maxNslipFamily, &
|
||||||
lattice_maxNtwinFamily, &
|
lattice_maxNtwinFamily, &
|
||||||
lattice_NslipSystem, &
|
lattice_NslipSystem, &
|
||||||
|
@ -1807,7 +1802,7 @@ function plastic_disloKMC_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
c = c + nt
|
c = c + nt
|
||||||
elseif(plastic_disloKMC_outputID(o,instance) == stress_exponent_ID) then
|
elseif(plastic_disloKMC_outputID(o,instance) == stress_exponent_ID) then
|
||||||
do j = 1_pInt, ns
|
do j = 1_pInt, ns
|
||||||
if ((gdot_slip_pos(j)+gdot_slip_neg(j))*0.5_pReal==0.0_pReal) then
|
if (abs(gdot_slip_pos(j)+gdot_slip_neg(j))<=tiny(0.0_pReal)) then
|
||||||
plastic_disloKMC_postResults(c+j) = 0.0_pReal
|
plastic_disloKMC_postResults(c+j) = 0.0_pReal
|
||||||
else
|
else
|
||||||
plastic_disloKMC_postResults(c+j) = (tau_slip_pos(j)+tau_slip_neg(j))/&
|
plastic_disloKMC_postResults(c+j) = (tau_slip_pos(j)+tau_slip_neg(j))/&
|
||||||
|
|
|
@ -168,8 +168,6 @@ subroutine plastic_disloUCLA_init(fileUnit)
|
||||||
math_Mandel3333to66, &
|
math_Mandel3333to66, &
|
||||||
math_Voigt66to3333, &
|
math_Voigt66to3333, &
|
||||||
math_mul3x3
|
math_mul3x3
|
||||||
use mesh, only: &
|
|
||||||
mesh_NcpElems
|
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_read, &
|
IO_read, &
|
||||||
IO_lc, &
|
IO_lc, &
|
||||||
|
@ -582,17 +580,17 @@ subroutine plastic_disloUCLA_init(fileUnit)
|
||||||
if (plastic_disloUCLA_Qsd(instance) <= 0.0_pReal) &
|
if (plastic_disloUCLA_Qsd(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='Qsd ('//PLASTICITY_DISLOUCLA_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='Qsd ('//PLASTICITY_DISLOUCLA_label//')')
|
||||||
if (sum(plastic_disloUCLA_Ntwin(:,instance)) > 0_pInt) then
|
if (sum(plastic_disloUCLA_Ntwin(:,instance)) > 0_pInt) then
|
||||||
if (plastic_disloUCLA_SFE_0K(instance) == 0.0_pReal .and. &
|
if (abs(plastic_disloUCLA_SFE_0K(instance)) <= tiny(0.0_pReal) .and. &
|
||||||
plastic_disloUCLA_dSFE_dT(instance) == 0.0_pReal .and. &
|
abs(plastic_disloUCLA_dSFE_dT(instance)) <= tiny(0.0_pReal) .and. &
|
||||||
lattice_structure(phase) == LATTICE_fcc_ID) &
|
lattice_structure(phase) == LATTICE_fcc_ID) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='SFE0K ('//PLASTICITY_DISLOUCLA_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='SFE0K ('//PLASTICITY_DISLOUCLA_label//')')
|
||||||
if (plastic_disloUCLA_aTolRho(instance) <= 0.0_pReal) &
|
if (plastic_disloUCLA_aTolRho(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='aTolRho ('//PLASTICITY_DISLOUCLA_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='aTolRho ('//PLASTICITY_DISLOUCLA_label//')')
|
||||||
if (plastic_disloUCLA_aTolTwinFrac(instance) <= 0.0_pReal) &
|
if (plastic_disloUCLA_aTolTwinFrac(instance) <= 0.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='aTolTwinFrac ('//PLASTICITY_DISLOUCLA_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='aTolTwinFrac ('//PLASTICITY_DISLOUCLA_label//')')
|
||||||
endif
|
endif
|
||||||
if (plastic_disloUCLA_dipoleFormationFactor(instance) /= 0.0_pReal .and. &
|
if (abs(plastic_disloUCLA_dipoleFormationFactor(instance)) > tiny(0.0_pReal) .and. &
|
||||||
plastic_disloUCLA_dipoleFormationFactor(instance) /= 1.0_pReal) &
|
plastic_disloUCLA_dipoleFormationFactor(instance) /= 1.0_pReal) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='dipoleFormationFactor ('//PLASTICITY_DISLOUCLA_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='dipoleFormationFactor ('//PLASTICITY_DISLOUCLA_label//')')
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -953,7 +951,6 @@ end subroutine plastic_disloUCLA_aTolState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function plastic_disloUCLA_homogenizedC(ipc,ip,el)
|
function plastic_disloUCLA_homogenizedC(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
mappingConstitutive
|
||||||
|
@ -1445,7 +1442,6 @@ subroutine plastic_disloUCLA_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
lattice_Sslip, &
|
|
||||||
lattice_maxNslipFamily, &
|
lattice_maxNslipFamily, &
|
||||||
lattice_maxNtwinFamily, &
|
lattice_maxNtwinFamily, &
|
||||||
lattice_NslipSystem, &
|
lattice_NslipSystem, &
|
||||||
|
@ -1587,7 +1583,7 @@ subroutine plastic_disloUCLA_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
!* Dipole formation
|
!* Dipole formation
|
||||||
EdgeDipMinDistance = &
|
EdgeDipMinDistance = &
|
||||||
plastic_disloUCLA_CEdgeDipMinDistance(instance)*plastic_disloUCLA_burgersPerSlipSystem(j,instance)
|
plastic_disloUCLA_CEdgeDipMinDistance(instance)*plastic_disloUCLA_burgersPerSlipSystem(j,instance)
|
||||||
if (tau_slip_pos == 0.0_pReal) then
|
if (abs(tau_slip_pos) <= tiny(0.0_pReal)) then
|
||||||
DotRhoDipFormation = 0.0_pReal
|
DotRhoDipFormation = 0.0_pReal
|
||||||
else
|
else
|
||||||
EdgeDipDistance = &
|
EdgeDipDistance = &
|
||||||
|
@ -1615,7 +1611,7 @@ subroutine plastic_disloUCLA_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
plastic_disloUCLA_CAtomicVolume(instance)*plastic_disloUCLA_burgersPerSlipSystem(j,instance)**(3.0_pReal)
|
plastic_disloUCLA_CAtomicVolume(instance)*plastic_disloUCLA_burgersPerSlipSystem(j,instance)**(3.0_pReal)
|
||||||
VacancyDiffusion = &
|
VacancyDiffusion = &
|
||||||
plastic_disloUCLA_D0(instance)*exp(-plastic_disloUCLA_Qsd(instance)/(kB*Temperature))
|
plastic_disloUCLA_D0(instance)*exp(-plastic_disloUCLA_Qsd(instance)/(kB*Temperature))
|
||||||
if (tau_slip_pos == 0.0_pReal) then
|
if (abs(tau_slip_pos) <= tiny(0.0_pReal)) then
|
||||||
DotRhoEdgeDipClimb = 0.0_pReal
|
DotRhoEdgeDipClimb = 0.0_pReal
|
||||||
else
|
else
|
||||||
ClimbVelocity = &
|
ClimbVelocity = &
|
||||||
|
@ -1698,7 +1694,6 @@ function plastic_disloUCLA_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
lattice_Sslip, &
|
|
||||||
lattice_maxNslipFamily, &
|
lattice_maxNslipFamily, &
|
||||||
lattice_maxNtwinFamily, &
|
lattice_maxNtwinFamily, &
|
||||||
lattice_NslipSystem, &
|
lattice_NslipSystem, &
|
||||||
|
@ -1970,7 +1965,7 @@ function plastic_disloUCLA_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
c = c + nt
|
c = c + nt
|
||||||
elseif(plastic_disloUCLA_outputID(o,instance) == stress_exponent_ID) then
|
elseif(plastic_disloUCLA_outputID(o,instance) == stress_exponent_ID) then
|
||||||
do j = 1_pInt, ns
|
do j = 1_pInt, ns
|
||||||
if ((gdot_slip_pos(j)+gdot_slip_neg(j))*0.5_pReal==0.0_pReal) then
|
if (abs(gdot_slip_pos(j)+gdot_slip_neg(j))<=tiny(0.0_pReal)) then
|
||||||
plastic_disloUCLA_postResults(c+j) = 0.0_pReal
|
plastic_disloUCLA_postResults(c+j) = 0.0_pReal
|
||||||
else
|
else
|
||||||
plastic_disloUCLA_postResults(c+j) = (tau_slip_pos(j)+tau_slip_neg(j))/&
|
plastic_disloUCLA_postResults(c+j) = (tau_slip_pos(j)+tau_slip_neg(j))/&
|
||||||
|
|
|
@ -1200,7 +1200,6 @@ subroutine plastic_dislotwin_microstructure(temperature,ipc,ip,el)
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
mappingConstitutive
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_structure, &
|
|
||||||
lattice_mu, &
|
lattice_mu, &
|
||||||
lattice_nu
|
lattice_nu
|
||||||
|
|
||||||
|
@ -1763,7 +1762,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
!* Dipole formation
|
!* Dipole formation
|
||||||
EdgeDipMinDistance = &
|
EdgeDipMinDistance = &
|
||||||
plastic_dislotwin_CEdgeDipMinDistance(instance)*plastic_dislotwin_burgersPerSlipSystem(j,instance)
|
plastic_dislotwin_CEdgeDipMinDistance(instance)*plastic_dislotwin_burgersPerSlipSystem(j,instance)
|
||||||
if (tau_slip(j) == 0.0_pReal) then
|
if (abs(tau_slip(j)) <= tiny(0.0_pReal)) then
|
||||||
DotRhoDipFormation(j) = 0.0_pReal
|
DotRhoDipFormation(j) = 0.0_pReal
|
||||||
else
|
else
|
||||||
EdgeDipDistance(j) = &
|
EdgeDipDistance(j) = &
|
||||||
|
|
|
@ -117,7 +117,6 @@ subroutine plastic_j2_init(fileUnit)
|
||||||
#endif
|
#endif
|
||||||
IO_EOF
|
IO_EOF
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
phase_Noutput, &
|
phase_Noutput, &
|
||||||
|
@ -369,13 +368,9 @@ subroutine plastic_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
math_Plain3333to99, &
|
math_Plain3333to99, &
|
||||||
math_deviatoric33, &
|
math_deviatoric33, &
|
||||||
math_mul33xx33
|
math_mul33xx33
|
||||||
use mesh, only: &
|
|
||||||
mesh_NcpElems, &
|
|
||||||
mesh_maxNips
|
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
|
@ -441,13 +436,9 @@ end subroutine plastic_j2_LpAndItsTangent
|
||||||
subroutine plastic_j2_dotState(Tstar_v,ipc,ip,el)
|
subroutine plastic_j2_dotState(Tstar_v,ipc,ip,el)
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_mul6x6
|
math_mul6x6
|
||||||
use mesh, only: &
|
|
||||||
mesh_NcpElems, &
|
|
||||||
mesh_maxNips
|
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
|
@ -489,7 +480,7 @@ subroutine plastic_j2_dotState(Tstar_v,ipc,ip,el)
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! hardening coefficient
|
! hardening coefficient
|
||||||
if (abs(gamma_dot) > 1e-12_pReal) then
|
if (abs(gamma_dot) > 1e-12_pReal) then
|
||||||
if (plastic_j2_tausat_SinhFitA(instance) == 0.0_pReal) then
|
if (abs(plastic_j2_tausat_SinhFitA(instance)) <= tiny(0.0_pReal)) then
|
||||||
saturation = plastic_j2_tausat(instance)
|
saturation = plastic_j2_tausat(instance)
|
||||||
else
|
else
|
||||||
saturation = ( plastic_j2_tausat(instance) &
|
saturation = ( plastic_j2_tausat(instance) &
|
||||||
|
@ -523,16 +514,11 @@ end subroutine plastic_j2_dotState
|
||||||
function plastic_j2_postResults(Tstar_v,ipc,ip,el)
|
function plastic_j2_postResults(Tstar_v,ipc,ip,el)
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_mul6x6
|
math_mul6x6
|
||||||
use mesh, only: &
|
|
||||||
mesh_NcpElems, &
|
|
||||||
mesh_maxNips
|
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance
|
||||||
phase_Noutput
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(6), intent(in) :: &
|
real(pReal), dimension(6), intent(in) :: &
|
||||||
|
|
|
@ -40,12 +40,10 @@ subroutine plastic_none_init
|
||||||
numerics_integrator
|
numerics_integrator
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
phase_Noutput, &
|
|
||||||
PLASTICITY_NONE_label, &
|
PLASTICITY_NONE_label, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
PLASTICITY_none_ID, &
|
PLASTICITY_none_ID
|
||||||
MATERIAL_partPhase
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
|
@ -293,7 +293,6 @@ use material, only: phase_plasticity, &
|
||||||
PLASTICITY_NONLOCAL_label, &
|
PLASTICITY_NONLOCAL_label, &
|
||||||
PLASTICITY_NONLOCAL_ID, &
|
PLASTICITY_NONLOCAL_ID, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_Nphase, &
|
|
||||||
MATERIAL_partPhase ,&
|
MATERIAL_partPhase ,&
|
||||||
material_phase
|
material_phase
|
||||||
use lattice
|
use lattice
|
||||||
|
@ -2003,7 +2002,7 @@ end subroutine plastic_nonlocal_kinetics
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates plastic velocity gradient and its tangent
|
!> @brief calculates plastic velocity gradient and its tangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_nonlocal_LpAndItsTangent(Lp, dLp_dTstar99, Tstar_v, Temperature, ipc, ip, el)
|
subroutine plastic_nonlocal_LpAndItsTangent(Lp, dLp_dTstar99, Tstar_v, Temperature, ip, el)
|
||||||
|
|
||||||
use math, only: math_Plain3333to99, &
|
use math, only: math_Plain3333to99, &
|
||||||
math_mul6x6, &
|
math_mul6x6, &
|
||||||
|
@ -2027,8 +2026,7 @@ use mesh, only: mesh_ipVolume
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!*** input variables
|
!*** input variables
|
||||||
integer(pInt), intent(in) :: ipc, &
|
integer(pInt), intent(in) :: ip, & !< current integration point
|
||||||
ip, & !< current integration point
|
|
||||||
el !< current element number
|
el !< current element number
|
||||||
real(pReal), intent(in) :: Temperature !< temperature
|
real(pReal), intent(in) :: Temperature !< temperature
|
||||||
real(pReal), dimension(6), intent(in) :: Tstar_v !< 2nd Piola-Kirchhoff stress in Mandel notation
|
real(pReal), dimension(6), intent(in) :: Tstar_v !< 2nd Piola-Kirchhoff stress in Mandel notation
|
||||||
|
@ -3160,7 +3158,7 @@ do n = 1_pInt,Nneighbors
|
||||||
where (my_compatibility(2,1:ns,s1,n) >= thresholdValue) &
|
where (my_compatibility(2,1:ns,s1,n) >= thresholdValue) &
|
||||||
belowThreshold(1:ns) = .false.
|
belowThreshold(1:ns) = .false.
|
||||||
if (my_compatibilitySum + thresholdValue * nThresholdValues > 1.0_pReal) &
|
if (my_compatibilitySum + thresholdValue * nThresholdValues > 1.0_pReal) &
|
||||||
where (abs(my_compatibility(1:2,1:ns,s1,n)) == thresholdValue) &
|
where (abs(my_compatibility(1:2,1:ns,s1,n)) == thresholdValue) & ! MD: rather check below threshold?
|
||||||
my_compatibility(1:2,1:ns,s1,n) = sign((1.0_pReal - my_compatibilitySum) &
|
my_compatibility(1:2,1:ns,s1,n) = sign((1.0_pReal - my_compatibilitySum) &
|
||||||
/ nThresholdValues, my_compatibility(1:2,1:ns,s1,n))
|
/ nThresholdValues, my_compatibility(1:2,1:ns,s1,n))
|
||||||
my_compatibilitySum = my_compatibilitySum + nThresholdValues * thresholdValue
|
my_compatibilitySum = my_compatibilitySum + nThresholdValues * thresholdValue
|
||||||
|
|
|
@ -475,7 +475,7 @@ subroutine plastic_phenopowerlaw_init(fileUnit)
|
||||||
if (any(plastic_phenopowerlaw_tausat_slip(:,instance) <= 0.0_pReal .and. &
|
if (any(plastic_phenopowerlaw_tausat_slip(:,instance) <= 0.0_pReal .and. &
|
||||||
plastic_phenopowerlaw_Nslip(:,instance) > 0)) &
|
plastic_phenopowerlaw_Nslip(:,instance) > 0)) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='tausat_slip ('//PLASTICITY_PHENOPOWERLAW_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='tausat_slip ('//PLASTICITY_PHENOPOWERLAW_label//')')
|
||||||
if (any(plastic_phenopowerlaw_a_slip(instance) == 0.0_pReal .and. &
|
if (any(abs(plastic_phenopowerlaw_a_slip(instance)) <= tiny(0.0_pReal) .and. &
|
||||||
plastic_phenopowerlaw_Nslip(:,instance) > 0)) &
|
plastic_phenopowerlaw_Nslip(:,instance) > 0)) &
|
||||||
call IO_error(211_pInt,el=instance,ext_msg='a_slip ('//PLASTICITY_PHENOPOWERLAW_label//')')
|
call IO_error(211_pInt,el=instance,ext_msg='a_slip ('//PLASTICITY_PHENOPOWERLAW_label//')')
|
||||||
if (any(plastic_phenopowerlaw_tau0_twin(:,instance) < 0.0_pReal .and. &
|
if (any(plastic_phenopowerlaw_tau0_twin(:,instance) < 0.0_pReal .and. &
|
||||||
|
@ -732,7 +732,6 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
lattice_NtwinSystem, &
|
lattice_NtwinSystem, &
|
||||||
lattice_NnonSchmid
|
lattice_NnonSchmid
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -814,7 +813,7 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
(gdot_slip_pos+gdot_slip_neg)*lattice_Sslip(1:3,1:3,1,index_myFamily+i,ph)
|
(gdot_slip_pos+gdot_slip_neg)*lattice_Sslip(1:3,1:3,1,index_myFamily+i,ph)
|
||||||
|
|
||||||
! Calculation of the tangent of Lp
|
! Calculation of the tangent of Lp
|
||||||
if (gdot_slip_pos /= 0.0_pReal) then
|
if (abs(gdot_slip_pos) > tiny(0.0_pReal)) then
|
||||||
dgdot_dtauslip_pos = gdot_slip_pos*plastic_phenopowerlaw_n_slip(instance)/tau_slip_pos
|
dgdot_dtauslip_pos = gdot_slip_pos*plastic_phenopowerlaw_n_slip(instance)/tau_slip_pos
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
||||||
|
@ -822,7 +821,7 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
nonSchmid_tensor(m,n,1)
|
nonSchmid_tensor(m,n,1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (gdot_slip_neg /= 0.0_pReal) then
|
if (abs(gdot_slip_neg) > tiny(0.0_pReal)) then
|
||||||
dgdot_dtauslip_neg = gdot_slip_neg*plastic_phenopowerlaw_n_slip(instance)/tau_slip_neg
|
dgdot_dtauslip_neg = gdot_slip_neg*plastic_phenopowerlaw_n_slip(instance)/tau_slip_neg
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
||||||
|
@ -849,7 +848,7 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
Lp = Lp + gdot_twin*lattice_Stwin(1:3,1:3,index_myFamily+i,ph)
|
Lp = Lp + gdot_twin*lattice_Stwin(1:3,1:3,index_myFamily+i,ph)
|
||||||
|
|
||||||
! Calculation of the tangent of Lp
|
! Calculation of the tangent of Lp
|
||||||
if (gdot_twin /= 0.0_pReal) then
|
if (abs(gdot_twin) > tiny(0.0_pReal)) then
|
||||||
dgdot_dtautwin = gdot_twin*plastic_phenopowerlaw_n_twin(instance)/tau_twin
|
dgdot_dtautwin = gdot_twin*plastic_phenopowerlaw_n_twin(instance)/tau_twin
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
dLp_dTstar3333(k,l,m,n) = dLp_dTstar3333(k,l,m,n) + &
|
||||||
|
|
Loading…
Reference in New Issue