added dislokmc (dislotwin modification)
This commit is contained in:
parent
9d615b3d3b
commit
ea66511160
|
@ -95,6 +95,7 @@ end module DAMASK_interface
|
||||||
#include "constitutive_phenopowerlaw.f90"
|
#include "constitutive_phenopowerlaw.f90"
|
||||||
#include "constitutive_titanmod.f90"
|
#include "constitutive_titanmod.f90"
|
||||||
#include "constitutive_dislotwin.f90"
|
#include "constitutive_dislotwin.f90"
|
||||||
|
#include "constitutive_dislokmc.f90"
|
||||||
#include "constitutive_nonlocal.f90"
|
#include "constitutive_nonlocal.f90"
|
||||||
#include "constitutive.f90"
|
#include "constitutive.f90"
|
||||||
#include "crystallite.f90"
|
#include "crystallite.f90"
|
||||||
|
|
|
@ -95,6 +95,7 @@ end module DAMASK_interface
|
||||||
#include "constitutive_phenopowerlaw.f90"
|
#include "constitutive_phenopowerlaw.f90"
|
||||||
#include "constitutive_titanmod.f90"
|
#include "constitutive_titanmod.f90"
|
||||||
#include "constitutive_dislotwin.f90"
|
#include "constitutive_dislotwin.f90"
|
||||||
|
#include "constitutive_dislokmc.f90"
|
||||||
#include "constitutive_nonlocal.f90"
|
#include "constitutive_nonlocal.f90"
|
||||||
#include "constitutive.f90"
|
#include "constitutive.f90"
|
||||||
#include "crystallite.f90"
|
#include "crystallite.f90"
|
||||||
|
|
|
@ -124,6 +124,7 @@ end module DAMASK_interface
|
||||||
#include "constitutive_phenopowerlaw.f90"
|
#include "constitutive_phenopowerlaw.f90"
|
||||||
#include "constitutive_titanmod.f90"
|
#include "constitutive_titanmod.f90"
|
||||||
#include "constitutive_dislotwin.f90"
|
#include "constitutive_dislotwin.f90"
|
||||||
|
#include "constitutive_dislokmc.f90"
|
||||||
#include "constitutive_nonlocal.f90"
|
#include "constitutive_nonlocal.f90"
|
||||||
#include "constitutive.f90"
|
#include "constitutive.f90"
|
||||||
#include "crystallite.f90"
|
#include "crystallite.f90"
|
||||||
|
|
|
@ -349,7 +349,7 @@ COMPILE_MAXOPTI =$(OPENMP_FLAG_$(F90)) $(COMPILE_OPTIONS_$(F90)) $(STANDARD_CHEC
|
||||||
COMPILED_FILES = prec.o DAMASK_spectral_interface.o IO.o libs.o numerics.o debug.o math.o \
|
COMPILED_FILES = prec.o DAMASK_spectral_interface.o IO.o libs.o numerics.o debug.o math.o \
|
||||||
FEsolving.o mesh.o material.o lattice.o \
|
FEsolving.o mesh.o material.o lattice.o \
|
||||||
damage_none.o damage_local.o damage_gradient.o thermal_none.o thermal_conduction.o \
|
damage_none.o damage_local.o damage_gradient.o thermal_none.o thermal_conduction.o \
|
||||||
constitutive_dislotwin.o constitutive_j2.o constitutive_phenopowerlaw.o \
|
constitutive_dislotwin.o constitutive_dislokmc.o constitutive_j2.o constitutive_phenopowerlaw.o \
|
||||||
constitutive_titanmod.o constitutive_nonlocal.o constitutive_none.o \
|
constitutive_titanmod.o constitutive_nonlocal.o constitutive_none.o \
|
||||||
constitutive_damage.o constitutive_thermal.o constitutive.o crystallite.o \
|
constitutive_damage.o constitutive_thermal.o constitutive.o crystallite.o \
|
||||||
homogenization_RGC.o homogenization_isostrain.o homogenization_none.o homogenization.o CPFEM.o \
|
homogenization_RGC.o homogenization_isostrain.o homogenization_none.o homogenization.o CPFEM.o \
|
||||||
|
@ -411,6 +411,7 @@ constitutive.o: constitutive.f90 \
|
||||||
constitutive_nonlocal.o \
|
constitutive_nonlocal.o \
|
||||||
constitutive_titanmod.o \
|
constitutive_titanmod.o \
|
||||||
constitutive_dislotwin.o \
|
constitutive_dislotwin.o \
|
||||||
|
constitutive_dislokmc.o \
|
||||||
constitutive_phenopowerlaw.o \
|
constitutive_phenopowerlaw.o \
|
||||||
constitutive_j2.o \
|
constitutive_j2.o \
|
||||||
constitutive_none.o
|
constitutive_none.o
|
||||||
|
@ -421,6 +422,9 @@ constitutive_nonlocal.o: constitutive_nonlocal.f90 \
|
||||||
constitutive_titanmod.o: constitutive_titanmod.f90 \
|
constitutive_titanmod.o: constitutive_titanmod.f90 \
|
||||||
lattice.o
|
lattice.o
|
||||||
|
|
||||||
|
constitutive_dislokmc.o: constitutive_dislokmc.f90 \
|
||||||
|
lattice.o
|
||||||
|
|
||||||
constitutive_dislotwin.o: constitutive_dislotwin.f90 \
|
constitutive_dislotwin.o: constitutive_dislotwin.f90 \
|
||||||
lattice.o
|
lattice.o
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ subroutine constitutive_init
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID ,&
|
PLASTICITY_NONLOCAL_ID ,&
|
||||||
ELASTICITY_HOOKE_label, &
|
ELASTICITY_HOOKE_label, &
|
||||||
|
@ -88,15 +89,18 @@ subroutine constitutive_init
|
||||||
PLASTICITY_J2_label, &
|
PLASTICITY_J2_label, &
|
||||||
PLASTICITY_PHENOPOWERLAW_label, &
|
PLASTICITY_PHENOPOWERLAW_label, &
|
||||||
PLASTICITY_DISLOTWIN_label, &
|
PLASTICITY_DISLOTWIN_label, &
|
||||||
|
PLASTICITY_DISLOKMC_label, &
|
||||||
PLASTICITY_TITANMOD_label, &
|
PLASTICITY_TITANMOD_label, &
|
||||||
|
PLASTICITY_NONLOCAL_label, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
mappingConstitutive
|
||||||
|
|
||||||
|
|
||||||
PLASTICITY_NONLOCAL_label
|
|
||||||
use constitutive_none
|
use constitutive_none
|
||||||
use constitutive_j2
|
use constitutive_j2
|
||||||
use constitutive_phenopowerlaw
|
use constitutive_phenopowerlaw
|
||||||
use constitutive_dislotwin
|
use constitutive_dislotwin
|
||||||
|
use constitutive_dislokmc
|
||||||
use constitutive_titanmod
|
use constitutive_titanmod
|
||||||
use constitutive_nonlocal
|
use constitutive_nonlocal
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -120,6 +124,7 @@ subroutine constitutive_init
|
||||||
if (any(phase_plasticity == PLASTICITY_J2_ID)) call constitutive_j2_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_J2_ID)) call constitutive_j2_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call constitutive_phenopowerlaw_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call constitutive_phenopowerlaw_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call constitutive_dislotwin_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call constitutive_dislotwin_init(FILEUNIT)
|
||||||
|
if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call constitutive_dislokmc_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call constitutive_titanmod_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call constitutive_titanmod_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) then
|
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) then
|
||||||
call constitutive_nonlocal_init(FILEUNIT)
|
call constitutive_nonlocal_init(FILEUNIT)
|
||||||
|
@ -155,6 +160,10 @@ subroutine constitutive_init
|
||||||
outputName = PLASTICITY_DISLOTWIN_label
|
outputName = PLASTICITY_DISLOTWIN_label
|
||||||
thisOutput => constitutive_dislotwin_output
|
thisOutput => constitutive_dislotwin_output
|
||||||
thisSize => constitutive_dislotwin_sizePostResult
|
thisSize => constitutive_dislotwin_sizePostResult
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
outputName = PLASTICITY_DISLOKMC_label
|
||||||
|
thisOutput => constitutive_dislokmc_output
|
||||||
|
thisSize => constitutive_dislokmc_sizePostResult
|
||||||
case (PLASTICITY_TITANMOD_ID)
|
case (PLASTICITY_TITANMOD_ID)
|
||||||
outputName = PLASTICITY_TITANMOD_label
|
outputName = PLASTICITY_TITANMOD_label
|
||||||
thisOutput => constitutive_titanmod_output
|
thisOutput => constitutive_titanmod_output
|
||||||
|
@ -244,13 +253,17 @@ function constitutive_homogenizedC(ipc,ip,el)
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
plasticState,&
|
plasticState,&
|
||||||
mappingConstitutive, &
|
mappingConstitutive
|
||||||
PLASTICITY_DISLOTWIN_ID
|
|
||||||
use constitutive_titanmod, only: &
|
use constitutive_titanmod, only: &
|
||||||
constitutive_titanmod_homogenizedC
|
constitutive_titanmod_homogenizedC
|
||||||
use constitutive_dislotwin, only: &
|
use constitutive_dislotwin, only: &
|
||||||
constitutive_dislotwin_homogenizedC
|
constitutive_dislotwin_homogenizedC
|
||||||
|
use constitutive_dislokmc, only: &
|
||||||
|
constitutive_dislokmc_homogenizedC
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_C66
|
lattice_C66
|
||||||
|
|
||||||
|
@ -265,6 +278,8 @@ function constitutive_homogenizedC(ipc,ip,el)
|
||||||
|
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
constitutive_homogenizedC = constitutive_dislotwin_homogenizedC(ipc,ip,el)
|
constitutive_homogenizedC = constitutive_dislotwin_homogenizedC(ipc,ip,el)
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
constitutive_homogenizedC = constitutive_dislokmc_homogenizedC(ipc,ip,el)
|
||||||
case (PLASTICITY_TITANMOD_ID)
|
case (PLASTICITY_TITANMOD_ID)
|
||||||
constitutive_homogenizedC = constitutive_titanmod_homogenizedC (ipc,ip,el)
|
constitutive_homogenizedC = constitutive_titanmod_homogenizedC (ipc,ip,el)
|
||||||
case default
|
case default
|
||||||
|
@ -285,16 +300,20 @@ subroutine constitutive_microstructure(temperature, Fe, Fp, ipc, ip, el)
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
plasticState, &
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
mappingConstitutive, &
|
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID, &
|
||||||
|
plasticState, &
|
||||||
|
mappingConstitutive
|
||||||
|
|
||||||
use constitutive_titanmod, only: &
|
use constitutive_titanmod, only: &
|
||||||
constitutive_titanmod_microstructure
|
constitutive_titanmod_microstructure
|
||||||
use constitutive_nonlocal, only: &
|
use constitutive_nonlocal, only: &
|
||||||
constitutive_nonlocal_microstructure
|
constitutive_nonlocal_microstructure
|
||||||
use constitutive_dislotwin, only: &
|
use constitutive_dislotwin, only: &
|
||||||
constitutive_dislotwin_microstructure
|
constitutive_dislotwin_microstructure
|
||||||
|
use constitutive_dislokmc, only: &
|
||||||
|
constitutive_dislokmc_microstructure
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -311,6 +330,8 @@ subroutine constitutive_microstructure(temperature, Fe, Fp, ipc, ip, el)
|
||||||
|
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
call constitutive_dislotwin_microstructure(temperature,ipc,ip,el)
|
call constitutive_dislotwin_microstructure(temperature,ipc,ip,el)
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
call constitutive_dislokmc_microstructure(temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_TITANMOD_ID)
|
case (PLASTICITY_TITANMOD_ID)
|
||||||
call constitutive_titanmod_microstructure (temperature,ipc,ip,el)
|
call constitutive_titanmod_microstructure (temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
|
@ -338,6 +359,7 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, temperature, ip
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
use constitutive_j2, only: &
|
use constitutive_j2, only: &
|
||||||
|
@ -346,6 +368,8 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, temperature, ip
|
||||||
constitutive_phenopowerlaw_LpAndItsTangent
|
constitutive_phenopowerlaw_LpAndItsTangent
|
||||||
use constitutive_dislotwin, only: &
|
use constitutive_dislotwin, only: &
|
||||||
constitutive_dislotwin_LpAndItsTangent
|
constitutive_dislotwin_LpAndItsTangent
|
||||||
|
use constitutive_dislokmc, only: &
|
||||||
|
constitutive_dislokmc_LpAndItsTangent
|
||||||
use constitutive_titanmod, only: &
|
use constitutive_titanmod, only: &
|
||||||
constitutive_titanmod_LpAndItsTangent
|
constitutive_titanmod_LpAndItsTangent
|
||||||
use constitutive_nonlocal, only: &
|
use constitutive_nonlocal, only: &
|
||||||
|
@ -378,6 +402,8 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, temperature, ip
|
||||||
call constitutive_nonlocal_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature, ip,el)
|
call constitutive_nonlocal_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature, ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
call constitutive_dislotwin_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature,ipc,ip,el)
|
call constitutive_dislotwin_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature,ipc,ip,el)
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
call constitutive_dislokmc_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_TITANMOD_ID)
|
case (PLASTICITY_TITANMOD_ID)
|
||||||
call constitutive_titanmod_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature,ipc,ip,el)
|
call constitutive_titanmod_LpAndItsTangent (Lp,dLp_dTstar,Tstar_v,temperature,ipc,ip,el)
|
||||||
|
|
||||||
|
@ -526,6 +552,7 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, Temperature,
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
use constitutive_j2, only: &
|
use constitutive_j2, only: &
|
||||||
|
@ -534,6 +561,8 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, Temperature,
|
||||||
constitutive_phenopowerlaw_dotState
|
constitutive_phenopowerlaw_dotState
|
||||||
use constitutive_dislotwin, only: &
|
use constitutive_dislotwin, only: &
|
||||||
constitutive_dislotwin_dotState
|
constitutive_dislotwin_dotState
|
||||||
|
use constitutive_dislokmc, only: &
|
||||||
|
constitutive_dislokmc_dotState
|
||||||
use constitutive_titanmod, only: &
|
use constitutive_titanmod, only: &
|
||||||
constitutive_titanmod_dotState
|
constitutive_titanmod_dotState
|
||||||
use constitutive_nonlocal, only: &
|
use constitutive_nonlocal, only: &
|
||||||
|
@ -569,6 +598,8 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, Temperature,
|
||||||
call constitutive_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
call constitutive_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
call constitutive_dislotwin_dotState (Tstar_v,Temperature,ipc,ip,el)
|
call constitutive_dislotwin_dotState (Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
call constitutive_dislokmc_dotState (Tstar_v,Temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_TITANMOD_ID)
|
case (PLASTICITY_TITANMOD_ID)
|
||||||
call constitutive_titanmod_dotState (Tstar_v,Temperature,ipc,ip,el)
|
call constitutive_titanmod_dotState (Tstar_v,Temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
|
@ -669,6 +700,7 @@ function constitutive_postResults(Tstar_v, FeArray, temperature, ipc, ip, el)
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_TITANMOD_ID, &
|
PLASTICITY_TITANMOD_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
use constitutive_j2, only: &
|
use constitutive_j2, only: &
|
||||||
|
@ -680,6 +712,8 @@ function constitutive_postResults(Tstar_v, FeArray, temperature, ipc, ip, el)
|
||||||
constitutive_phenopowerlaw_postResults
|
constitutive_phenopowerlaw_postResults
|
||||||
use constitutive_dislotwin, only: &
|
use constitutive_dislotwin, only: &
|
||||||
constitutive_dislotwin_postResults
|
constitutive_dislotwin_postResults
|
||||||
|
use constitutive_dislokmc, only: &
|
||||||
|
constitutive_dislokmc_postResults
|
||||||
use constitutive_titanmod, only: &
|
use constitutive_titanmod, only: &
|
||||||
constitutive_titanmod_postResults
|
constitutive_titanmod_postResults
|
||||||
use constitutive_nonlocal, only: &
|
use constitutive_nonlocal, only: &
|
||||||
|
@ -709,6 +743,8 @@ function constitutive_postResults(Tstar_v, FeArray, temperature, ipc, ip, el)
|
||||||
constitutive_postResults = constitutive_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
constitutive_postResults = constitutive_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
constitutive_postResults = constitutive_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
|
constitutive_postResults = constitutive_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
case (PLASTICITY_DISLOKMC_ID)
|
||||||
|
constitutive_postResults = constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
constitutive_postResults = constitutive_nonlocal_postResults (Tstar_v,FeArray, ip,el)
|
constitutive_postResults = constitutive_nonlocal_postResults (Tstar_v,FeArray, ip,el)
|
||||||
end select
|
end select
|
||||||
|
|
|
@ -232,10 +232,6 @@ subroutine constitutive_dislokmc_init(fileUnit)
|
||||||
if (iand(debug_level(debug_constitutive),debug_levelBasic) /= 0_pInt) &
|
if (iand(debug_level(debug_constitutive),debug_levelBasic) /= 0_pInt) &
|
||||||
write(6,'(a16,1x,i5,/)') '# instances:',maxNinstance
|
write(6,'(a16,1x,i5,/)') '# instances:',maxNinstance
|
||||||
|
|
||||||
allocate(constitutive_dislotkmc_sizeDotState(maxNinstance), source=0_pInt)
|
|
||||||
allocate(constitutive_dislotkmc_sizeState(maxNinstance), source=0_pInt)
|
|
||||||
allocate(constitutive_dislokmc_sizeDotState(maxNinstance), source=0_pInt)
|
|
||||||
allocate(constitutive_dislokmc_sizeState(maxNinstance), source=0_pInt)
|
|
||||||
allocate(constitutive_dislokmc_sizePostResults(maxNinstance), source=0_pInt)
|
allocate(constitutive_dislokmc_sizePostResults(maxNinstance), source=0_pInt)
|
||||||
allocate(constitutive_dislokmc_sizePostResult(maxval(phase_Noutput),maxNinstance),source=0_pInt)
|
allocate(constitutive_dislokmc_sizePostResult(maxval(phase_Noutput),maxNinstance),source=0_pInt)
|
||||||
allocate(constitutive_dislokmc_output(maxval(phase_Noutput),maxNinstance))
|
allocate(constitutive_dislokmc_output(maxval(phase_Noutput),maxNinstance))
|
||||||
|
@ -1316,7 +1312,7 @@ subroutine constitutive_dislokmc_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v,Temperatu
|
||||||
|
|
||||||
!* Shear rates due to slip
|
!* Shear rates due to slip
|
||||||
vel_slip(j) = exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) &
|
vel_slip(j) = exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) &
|
||||||
* (1-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
* (1.0_pReal-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
||||||
* exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
* exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
||||||
|
|
||||||
gdot_slip(j) = (1.0_pReal - sumf) * DotGamma0 &
|
gdot_slip(j) = (1.0_pReal - sumf) * DotGamma0 &
|
||||||
|
@ -1552,10 +1548,10 @@ subroutine constitutive_dislokmc_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
|
|
||||||
StressRatio_u = ((abs(tau_slip(j))-state%p(6*ns+4*nt+j, of))/&
|
StressRatio_u = ((abs(tau_slip(j))-plasticState(ph)%state(6*ns+4*nt+j, of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
||||||
StressRatio_uminus1 = ((abs(tau_slip(j))-state%p(6*ns+4*nt+j,of))/&
|
StressRatio_uminus1 = ((abs(tau_slip(j))-plasticState(ph)%state(6*ns+4*nt+j,of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
|
|
||||||
|
@ -1803,7 +1799,7 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
constitutive_dislokmc_postResults(c+j) = &
|
constitutive_dislokmc_postResults(c+j) = &
|
||||||
DotGamma0*exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**&
|
DotGamma0*exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**&
|
||||||
constitutive_dislokmc_qPerSlipFamily(f,instance))*sign(1.0_pReal,tau) &
|
constitutive_dislokmc_qPerSlipFamily(f,instance))*sign(1.0_pReal,tau) &
|
||||||
* (1-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
* (1.0_pReal-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
||||||
* exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
* exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
||||||
else
|
else
|
||||||
constitutive_dislokmc_postResults(c+j) = 0.0_pReal
|
constitutive_dislokmc_postResults(c+j) = 0.0_pReal
|
||||||
|
@ -1844,8 +1840,6 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
(16.0_pReal*pi*abs(dot_product(Tstar_v,lattice_Sslip_v(:,1,index_myFamily+i,ph))))
|
(16.0_pReal*pi*abs(dot_product(Tstar_v,lattice_Sslip_v(:,1,index_myFamily+i,ph))))
|
||||||
constitutive_dislokmc_postResults(c+j)=min(constitutive_dislokmc_postResults(c+j),&
|
constitutive_dislokmc_postResults(c+j)=min(constitutive_dislokmc_postResults(c+j),&
|
||||||
plasticState(ph)%state(5*ns+3*nt+j, of))
|
plasticState(ph)%state(5*ns+3*nt+j, of))
|
||||||
! constitutive_dislokmc_postResults(c+j)=max(constitutive_dislokmc_postResults(c+j),&
|
|
||||||
! plasticState(ph)%state(4*ns+2*nt+j, of))
|
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
c = c + ns
|
c = c + ns
|
||||||
case (resolved_stress_shearband_ID)
|
case (resolved_stress_shearband_ID)
|
||||||
|
@ -1904,10 +1898,10 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
|
|
||||||
StressRatio_u = ((abs(tau)-state%p(6*ns+4*nt+j, of))/&
|
StressRatio_u = ((abs(tau)-plasticState(ph)%state(6*ns+4*nt+j, of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
||||||
StressRatio_uminus1 = ((abs(tau)-state%p(6*ns+4*nt+j, of))/&
|
StressRatio_uminus1 = ((abs(tau)-plasticState(ph)%state(6*ns+4*nt+j, of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
|
|
||||||
|
@ -1921,7 +1915,7 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
!* Shear rates due to slip
|
!* Shear rates due to slip
|
||||||
gdot_slip(j) = DotGamma0*exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**&
|
gdot_slip(j) = DotGamma0*exp(-BoltzmannRatio*(1_pInt-StressRatio_p)**&
|
||||||
constitutive_dislokmc_qPerSlipFamily(f,instance))*sign(1.0_pReal,tau) &
|
constitutive_dislokmc_qPerSlipFamily(f,instance))*sign(1.0_pReal,tau) &
|
||||||
* (1_pInt-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
* (1.0_pReal-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
||||||
* exp(-BoltzmannRatio*(1_pInt-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) ) &
|
* exp(-BoltzmannRatio*(1_pInt-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) ) &
|
||||||
* StressRatio_u
|
* StressRatio_u
|
||||||
else
|
else
|
||||||
|
@ -2010,10 +2004,10 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+&
|
||||||
constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_pPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
StressRatio_u = ((abs(tau)-state%p(6*ns+4*nt+j))/&
|
StressRatio_u = ((abs(tau)-plasticState(ph)%state(6*ns+4*nt+j,of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
**constitutive_dislokmc_uPerSlipFamily(f,instance)
|
||||||
StressRatio_uminus1 = ((abs(tau)-state%p(6*ns+4*nt+j))/&
|
StressRatio_uminus1 = ((abs(tau)-plasticState(ph)%state(6*ns+4*nt+j,of))/&
|
||||||
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
(constitutive_dislokmc_SolidSolutionStrength(instance)+constitutive_dislokmc_tau_peierlsPerSlipFamily(f,instance)))&
|
||||||
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
**(constitutive_dislokmc_uPerSlipFamily(f,instance)-1.0_pReal)
|
||||||
|
|
||||||
|
@ -2026,7 +2020,7 @@ function constitutive_dislokmc_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
|
||||||
!* Shear rates due to slip
|
!* Shear rates due to slip
|
||||||
vel_slip(j) = exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) &
|
vel_slip(j) = exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)) &
|
||||||
* (1-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
* (1.0_pReal-constitutive_dislokmc_sPerSlipFamily(f,instance) &
|
||||||
* exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
* exp(-BoltzmannRatio*(1-StressRatio_p) ** constitutive_dislokmc_qPerSlipFamily(f,instance)))
|
||||||
|
|
||||||
gdot_slip(j) = (1.0_pReal - sumf) * DotGamma0 &
|
gdot_slip(j) = (1.0_pReal - sumf) * DotGamma0 &
|
||||||
|
|
|
@ -23,6 +23,7 @@ module material
|
||||||
PLASTICITY_J2_label = 'j2', &
|
PLASTICITY_J2_label = 'j2', &
|
||||||
PLASTICITY_PHENOPOWERLAW_label = 'phenopowerlaw', &
|
PLASTICITY_PHENOPOWERLAW_label = 'phenopowerlaw', &
|
||||||
PLASTICITY_DISLOTWIN_label = 'dislotwin', &
|
PLASTICITY_DISLOTWIN_label = 'dislotwin', &
|
||||||
|
PLASTICITY_DISLOKMC_label = 'dislokmc', &
|
||||||
PLASTICITY_TITANMOD_label = 'titanmod', &
|
PLASTICITY_TITANMOD_label = 'titanmod', &
|
||||||
PLASTICITY_NONLOCAL_label = 'nonlocal', &
|
PLASTICITY_NONLOCAL_label = 'nonlocal', &
|
||||||
DAMAGE_NONE_label = 'none', &
|
DAMAGE_NONE_label = 'none', &
|
||||||
|
@ -46,6 +47,7 @@ module material
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_titanmod_ID, &
|
PLASTICITY_titanmod_ID, &
|
||||||
PLASTICITY_nonlocal_ID
|
PLASTICITY_nonlocal_ID
|
||||||
end enum
|
end enum
|
||||||
|
@ -186,6 +188,7 @@ module material
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_titanmod_ID, &
|
PLASTICITY_titanmod_ID, &
|
||||||
PLASTICITY_nonlocal_ID, &
|
PLASTICITY_nonlocal_ID, &
|
||||||
DAMAGE_none_ID, &
|
DAMAGE_none_ID, &
|
||||||
|
@ -670,6 +673,8 @@ subroutine material_parsePhase(fileUnit,myPart)
|
||||||
phase_plasticity(section) = PLASTICITY_PHENOPOWERLAW_ID
|
phase_plasticity(section) = PLASTICITY_PHENOPOWERLAW_ID
|
||||||
case (PLASTICITY_DISLOTWIN_label)
|
case (PLASTICITY_DISLOTWIN_label)
|
||||||
phase_plasticity(section) = PLASTICITY_DISLOTWIN_ID
|
phase_plasticity(section) = PLASTICITY_DISLOTWIN_ID
|
||||||
|
case (PLASTICITY_DISLOKMC_label)
|
||||||
|
phase_plasticity(section) = PLASTICITY_DISLOKMC_ID
|
||||||
case (PLASTICITY_TITANMOD_label)
|
case (PLASTICITY_TITANMOD_label)
|
||||||
phase_plasticity(section) = PLASTICITY_TITANMOD_ID
|
phase_plasticity(section) = PLASTICITY_TITANMOD_ID
|
||||||
case (PLASTICITY_NONLOCAL_label)
|
case (PLASTICITY_NONLOCAL_label)
|
||||||
|
|
Loading…
Reference in New Issue