changed constitutive_* prefix for plasticity laws to plastic_* to be consistent with novel thermal_, damage_, vacancy_, etc. laws.

This commit is contained in:
Philip Eisenlohr 2014-12-08 15:55:30 +00:00
parent 6066a03f85
commit c34252c71c
12 changed files with 4330 additions and 4330 deletions

View File

@ -317,8 +317,8 @@ VACANCY_FILES = \
vacancy_constant.o vacancy_generation.o vacancy_constant.o vacancy_generation.o
CONSTITUTIVE_FILES = \ CONSTITUTIVE_FILES = \
constitutive_dislotwin.o constitutive_dislokmc.o constitutive_j2.o constitutive_phenopowerlaw.o \ plastic_dislotwin.o plastic_dislokmc.o plastic_j2.o plastic_phenopowerlaw.o \
constitutive_titanmod.o constitutive_nonlocal.o constitutive_none.o constitutive.o plastic_titanmod.o plastic_nonlocal.o plastic_none.o constitutive.o
HOMOGENIZATION_FILES = \ HOMOGENIZATION_FILES = \
homogenization_RGC.o homogenization_isostrain.o homogenization_none.o homogenization.o homogenization_RGC.o homogenization_isostrain.o homogenization_none.o homogenization.o
@ -431,36 +431,36 @@ crystallite.o: crystallite.f90 \
constitutive.o constitutive.o
constitutive.o: constitutive.f90 \ constitutive.o: constitutive.f90 \
constitutive_nonlocal.o \ plastic_nonlocal.o \
constitutive_titanmod.o \ plastic_titanmod.o \
constitutive_dislotwin.o \ plastic_dislotwin.o \
constitutive_dislokmc.o \ plastic_dislokmc.o \
constitutive_phenopowerlaw.o \ plastic_phenopowerlaw.o \
constitutive_j2.o \ plastic_j2.o \
constitutive_none.o \ plastic_none.o \
$(DAMAGE_FILES) \ $(DAMAGE_FILES) \
$(THERMAL_FILES) \ $(THERMAL_FILES) \
$(VACANCY_FILES) $(VACANCY_FILES)
constitutive_nonlocal.o: constitutive_nonlocal.f90 \ plastic_nonlocal.o: plastic_nonlocal.f90 \
lattice.o lattice.o
constitutive_titanmod.o: constitutive_titanmod.f90 \ plastic_titanmod.o: plastic_titanmod.f90 \
lattice.o lattice.o
constitutive_dislokmc.o: constitutive_dislokmc.f90 \ plastic_dislokmc.o: plastic_dislokmc.f90 \
lattice.o lattice.o
constitutive_dislotwin.o: constitutive_dislotwin.f90 \ plastic_dislotwin.o: plastic_dislotwin.f90 \
lattice.o lattice.o
constitutive_phenopowerlaw.o: constitutive_phenopowerlaw.f90 \ plastic_phenopowerlaw.o: plastic_phenopowerlaw.f90 \
lattice.o lattice.o
constitutive_j2.o: constitutive_j2.f90 \ plastic_j2.o: plastic_j2.f90 \
lattice.o lattice.o
constitutive_none.o: constitutive_none.f90 \ plastic_none.o: plastic_none.f90 \
lattice.o lattice.o
damage_none.o: damage_none.f90 \ damage_none.o: damage_none.f90 \

View File

@ -25,13 +25,13 @@
#include "thermal_adiabatic.f90" #include "thermal_adiabatic.f90"
#include "vacancy_constant.f90" #include "vacancy_constant.f90"
#include "vacancy_generation.f90" #include "vacancy_generation.f90"
#include "constitutive_none.f90" #include "plastic_none.f90"
#include "constitutive_j2.f90" #include "plastic_j2.f90"
#include "constitutive_phenopowerlaw.f90" #include "plastic_phenopowerlaw.f90"
#include "constitutive_titanmod.f90" #include "plastic_titanmod.f90"
#include "constitutive_dislotwin.f90" #include "plastic_dislotwin.f90"
#include "constitutive_dislokmc.f90" #include "plastic_dislokmc.f90"
#include "constitutive_nonlocal.f90" #include "plastic_nonlocal.f90"
#include "constitutive.f90" #include "constitutive.f90"
#include "crystallite.f90" #include "crystallite.f90"
#include "homogenization_none.f90" #include "homogenization_none.f90"

View File

@ -156,13 +156,13 @@ subroutine constitutive_init(temperature_init)
mappingConstitutive mappingConstitutive
use constitutive_none use plastic_none
use constitutive_j2 use plastic_j2
use constitutive_phenopowerlaw use plastic_phenopowerlaw
use constitutive_dislotwin use plastic_dislotwin
use constitutive_dislokmc use plastic_dislokmc
use constitutive_titanmod use plastic_titanmod
use constitutive_nonlocal use plastic_nonlocal
use damage_none use damage_none
use damage_isoBrittle use damage_isoBrittle
use damage_isoDuctile use damage_isoDuctile
@ -194,15 +194,15 @@ subroutine constitutive_init(temperature_init)
! parse plasticities from config file ! parse plasticities from config file
if (.not. IO_open_jobFile_stat(FILEUNIT,material_localFileExt)) & ! no local material configuration present... if (.not. IO_open_jobFile_stat(FILEUNIT,material_localFileExt)) & ! no local material configuration present...
call IO_open_file(FILEUNIT,material_configFile) ! ... open material.config file call IO_open_file(FILEUNIT,material_configFile) ! ... open material.config file
if (any(phase_plasticity == PLASTICITY_NONE_ID)) call constitutive_none_init if (any(phase_plasticity == PLASTICITY_NONE_ID)) call plastic_none_init
if (any(phase_plasticity == PLASTICITY_J2_ID)) call constitutive_j2_init(FILEUNIT) if (any(phase_plasticity == PLASTICITY_J2_ID)) call plastic_j2_init(FILEUNIT)
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call constitutive_phenopowerlaw_init(FILEUNIT) if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init(FILEUNIT)
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call constitutive_dislotwin_init(FILEUNIT) if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init(FILEUNIT)
if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call constitutive_dislokmc_init(FILEUNIT) if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call plastic_dislokmc_init(FILEUNIT)
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call constitutive_titanmod_init(FILEUNIT) if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call plastic_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 plastic_nonlocal_init(FILEUNIT)
call constitutive_nonlocal_stateInit() call plastic_nonlocal_stateInit()
endif endif
close(FILEUNIT) close(FILEUNIT)
@ -252,38 +252,38 @@ subroutine constitutive_init(temperature_init)
case (PLASTICITY_NONE_ID) case (PLASTICITY_NONE_ID)
outputName = PLASTICITY_NONE_label outputName = PLASTICITY_NONE_label
thisNoutput => null() thisNoutput => null()
thisOutput => null() ! constitutive_none_output thisOutput => null() ! plastic_none_output
thisSize => null() ! constitutive_none_sizePostResult thisSize => null() ! plastic_none_sizePostResult
case (PLASTICITY_J2_ID) case (PLASTICITY_J2_ID)
outputName = PLASTICITY_J2_label outputName = PLASTICITY_J2_label
thisNoutput => constitutive_j2_Noutput thisNoutput => plastic_j2_Noutput
thisOutput => constitutive_j2_output thisOutput => plastic_j2_output
thisSize => constitutive_j2_sizePostResult thisSize => plastic_j2_sizePostResult
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
outputName = PLASTICITY_PHENOPOWERLAW_label outputName = PLASTICITY_PHENOPOWERLAW_label
thisNoutput => constitutive_phenopowerlaw_Noutput thisNoutput => plastic_phenopowerlaw_Noutput
thisOutput => constitutive_phenopowerlaw_output thisOutput => plastic_phenopowerlaw_output
thisSize => constitutive_phenopowerlaw_sizePostResult thisSize => plastic_phenopowerlaw_sizePostResult
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
outputName = PLASTICITY_DISLOTWIN_label outputName = PLASTICITY_DISLOTWIN_label
thisNoutput => constitutive_dislotwin_Noutput thisNoutput => plastic_dislotwin_Noutput
thisOutput => constitutive_dislotwin_output thisOutput => plastic_dislotwin_output
thisSize => constitutive_dislotwin_sizePostResult thisSize => plastic_dislotwin_sizePostResult
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
outputName = PLASTICITY_DISLOKMC_label outputName = PLASTICITY_DISLOKMC_label
thisNoutput => constitutive_dislokmc_Noutput thisNoutput => plastic_dislokmc_Noutput
thisOutput => constitutive_dislokmc_output thisOutput => plastic_dislokmc_output
thisSize => constitutive_dislokmc_sizePostResult thisSize => plastic_dislokmc_sizePostResult
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
outputName = PLASTICITY_TITANMOD_label outputName = PLASTICITY_TITANMOD_label
thisNoutput => constitutive_titanmod_Noutput thisNoutput => plastic_titanmod_Noutput
thisOutput => constitutive_titanmod_output thisOutput => plastic_titanmod_output
thisSize => constitutive_titanmod_sizePostResult thisSize => plastic_titanmod_sizePostResult
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
outputName = PLASTICITY_NONLOCAL_label outputName = PLASTICITY_NONLOCAL_label
thisNoutput => constitutive_nonlocal_Noutput thisNoutput => plastic_nonlocal_Noutput
thisOutput => constitutive_nonlocal_output thisOutput => plastic_nonlocal_output
thisSize => constitutive_nonlocal_sizePostResult thisSize => plastic_nonlocal_sizePostResult
case default case default
knownPlasticity = .false. knownPlasticity = .false.
end select end select
@ -480,12 +480,12 @@ function constitutive_homogenizedC(ipc,ip,el)
plasticState,& plasticState,&
mappingConstitutive mappingConstitutive
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_homogenizedC plastic_titanmod_homogenizedC
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_homogenizedC plastic_dislotwin_homogenizedC
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_homogenizedC plastic_dislokmc_homogenizedC
use lattice, only: & use lattice, only: &
lattice_C66 lattice_C66
@ -499,11 +499,11 @@ function constitutive_homogenizedC(ipc,ip,el)
select case (phase_plasticity(material_phase(ipc,ip,el))) select case (phase_plasticity(material_phase(ipc,ip,el)))
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
constitutive_homogenizedC = constitutive_dislotwin_homogenizedC(ipc,ip,el) constitutive_homogenizedC = plastic_dislotwin_homogenizedC(ipc,ip,el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
constitutive_homogenizedC = constitutive_dislokmc_homogenizedC(ipc,ip,el) constitutive_homogenizedC = plastic_dislokmc_homogenizedC(ipc,ip,el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
constitutive_homogenizedC = constitutive_titanmod_homogenizedC (ipc,ip,el) constitutive_homogenizedC = plastic_titanmod_homogenizedC (ipc,ip,el)
case default case default
constitutive_homogenizedC = lattice_C66(1:6,1:6,material_phase (ipc,ip,el)) constitutive_homogenizedC = lattice_C66(1:6,1:6,material_phase (ipc,ip,el))
@ -569,14 +569,14 @@ subroutine constitutive_microstructure(Tstar_v, Fe, Fp, subdt, ipc, ip, el)
LOCAL_DAMAGE_gurson_ID, & LOCAL_DAMAGE_gurson_ID, &
LOCAL_DAMAGE_phaseField_ID LOCAL_DAMAGE_phaseField_ID
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_microstructure plastic_titanmod_microstructure
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_microstructure plastic_nonlocal_microstructure
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_microstructure plastic_dislotwin_microstructure
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_microstructure plastic_dislokmc_microstructure
use damage_isoBrittle, only: & use damage_isoBrittle, only: &
damage_isoBrittle_microstructure damage_isoBrittle_microstructure
use damage_isoDuctile, only: & use damage_isoDuctile, only: &
@ -610,13 +610,13 @@ subroutine constitutive_microstructure(Tstar_v, Fe, Fp, subdt, ipc, ip, el)
select case (phase_plasticity(material_phase(ipc,ip,el))) select case (phase_plasticity(material_phase(ipc,ip,el)))
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
call constitutive_dislotwin_microstructure(constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_dislotwin_microstructure(constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
call constitutive_dislokmc_microstructure(constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_dislokmc_microstructure(constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
call constitutive_titanmod_microstructure (constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_titanmod_microstructure (constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
call constitutive_nonlocal_microstructure (Fe,Fp, ip,el) call plastic_nonlocal_microstructure (Fe,Fp, ip,el)
end select end select
@ -665,22 +665,22 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, ipc, ip, el)
PLASTICITY_DISLOKMC_ID, & PLASTICITY_DISLOKMC_ID, &
PLASTICITY_TITANMOD_ID, & PLASTICITY_TITANMOD_ID, &
PLASTICITY_NONLOCAL_ID PLASTICITY_NONLOCAL_ID
use constitutive_j2, only: & use plastic_j2, only: &
constitutive_j2_LpAndItsTangent plastic_j2_LpAndItsTangent
use constitutive_phenopowerlaw, only: & use plastic_phenopowerlaw, only: &
constitutive_phenopowerlaw_LpAndItsTangent, & plastic_phenopowerlaw_LpAndItsTangent, &
constitutive_phenopowerlaw_totalNslip plastic_phenopowerlaw_totalNslip
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_LpAndItsTangent, & plastic_dislotwin_LpAndItsTangent, &
constitutive_dislotwin_totalNslip plastic_dislotwin_totalNslip
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_LpAndItsTangent, & plastic_dislokmc_LpAndItsTangent, &
constitutive_dislokmc_totalNslip plastic_dislokmc_totalNslip
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_LpAndItsTangent, & plastic_titanmod_LpAndItsTangent, &
constitutive_titanmod_totalNslip plastic_titanmod_totalNslip
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_LpAndItsTangent, & plastic_nonlocal_LpAndItsTangent, &
totalNslip totalNslip
implicit none implicit none
@ -704,35 +704,35 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, ipc, ip, el)
dLp_dTstar = 0.0_pReal dLp_dTstar = 0.0_pReal
case (PLASTICITY_J2_ID) case (PLASTICITY_J2_ID)
nSlip = 1_pInt nSlip = 1_pInt
call constitutive_j2_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_j2_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
nSlip = constitutive_phenopowerlaw_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el))) nSlip = plastic_phenopowerlaw_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
call constitutive_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
nSlip = totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el))) nSlip = totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
call constitutive_nonlocal_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_nonlocal_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getTemperature(ipc,ip,el), & constitutive_getTemperature(ipc,ip,el), &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
nSlip = constitutive_dislotwin_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el))) nSlip = plastic_dislotwin_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
call constitutive_dislotwin_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getTemperature(ipc,ip,el), & constitutive_getTemperature(ipc,ip,el), &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
nSlip = constitutive_dislokmc_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el))) nSlip = plastic_dislokmc_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
call constitutive_dislokmc_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_dislokmc_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getTemperature(ipc,ip,el), & constitutive_getTemperature(ipc,ip,el), &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
nSlip = constitutive_titanmod_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el))) nSlip = plastic_titanmod_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
call constitutive_titanmod_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, & call plastic_titanmod_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
constitutive_getTemperature(ipc,ip,el), & constitutive_getTemperature(ipc,ip,el), &
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), & constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
ipc,ip,el) ipc,ip,el)
@ -1086,18 +1086,18 @@ subroutine constitutive_collectDotState(Tstar_v, Lp, FeArray, FpArray, subdt, su
LOCAL_DAMAGE_anisoBrittle_ID, & LOCAL_DAMAGE_anisoBrittle_ID, &
LOCAL_DAMAGE_gurson_ID, & LOCAL_DAMAGE_gurson_ID, &
LOCAL_VACANCY_generation_ID LOCAL_VACANCY_generation_ID
use constitutive_j2, only: & use plastic_j2, only: &
constitutive_j2_dotState plastic_j2_dotState
use constitutive_phenopowerlaw, only: & use plastic_phenopowerlaw, only: &
constitutive_phenopowerlaw_dotState plastic_phenopowerlaw_dotState
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_dotState plastic_dislotwin_dotState
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_dotState plastic_dislokmc_dotState
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_dotState plastic_titanmod_dotState
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_dotState plastic_nonlocal_dotState
use damage_anisoBrittle, only: & use damage_anisoBrittle, only: &
damage_anisoBrittle_dotState damage_anisoBrittle_dotState
use damage_gurson, only: & use damage_gurson, only: &
@ -1135,17 +1135,17 @@ subroutine constitutive_collectDotState(Tstar_v, Lp, FeArray, FpArray, subdt, su
select case (phase_plasticity(material_phase(ipc,ip,el))) select case (phase_plasticity(material_phase(ipc,ip,el)))
case (PLASTICITY_J2_ID) case (PLASTICITY_J2_ID)
call constitutive_j2_dotState (Tstar_v,ipc,ip,el) call plastic_j2_dotState (Tstar_v,ipc,ip,el)
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
call constitutive_phenopowerlaw_dotState(Tstar_v,ipc,ip,el) call plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
call constitutive_dislotwin_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_dislotwin_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
call constitutive_dislokmc_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_dislokmc_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
call constitutive_titanmod_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el) call plastic_titanmod_dotState (Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
call constitutive_nonlocal_dotState (Tstar_v,FeArray,FpArray,constitutive_getTemperature(ipc,ip,el), & call plastic_nonlocal_dotState (Tstar_v,FeArray,FpArray,constitutive_getTemperature(ipc,ip,el), &
subdt,subfracArray,ip,el) subdt,subfracArray,ip,el)
end select end select
@ -1194,8 +1194,8 @@ logical function constitutive_collectDeltaState(Tstar_v, ipc, ip, el)
plasticState, & plasticState, &
mappingConstitutive, & mappingConstitutive, &
PLASTICITY_NONLOCAL_ID PLASTICITY_NONLOCAL_ID
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_deltaState plastic_nonlocal_deltaState
implicit none implicit none
integer(pInt), intent(in) :: & integer(pInt), intent(in) :: &
@ -1216,7 +1216,7 @@ logical function constitutive_collectDeltaState(Tstar_v, ipc, ip, el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
constitutive_collectDeltaState = .true. constitutive_collectDeltaState = .true.
call constitutive_nonlocal_deltaState(Tstar_v,ip,el) call plastic_nonlocal_deltaState(Tstar_v,ip,el)
case default case default
constitutive_collectDeltaState = .false. constitutive_collectDeltaState = .false.
@ -1813,18 +1813,18 @@ subroutine constitutive_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
PLASTICITY_dislokmc_ID, & PLASTICITY_dislokmc_ID, &
PLASTICITY_titanmod_ID, & PLASTICITY_titanmod_ID, &
PLASTICITY_nonlocal_ID PLASTICITY_nonlocal_ID
use constitutive_J2, only: & use plastic_j2, only: &
constitutive_J2_getAccumulatedSlip plastic_j2_getAccumulatedSlip
use constitutive_phenopowerlaw, only: & use plastic_phenopowerlaw, only: &
constitutive_phenopowerlaw_getAccumulatedSlip plastic_phenopowerlaw_getAccumulatedSlip
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_getAccumulatedSlip plastic_dislotwin_getAccumulatedSlip
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_getAccumulatedSlip plastic_dislokmc_getAccumulatedSlip
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_getAccumulatedSlip plastic_titanmod_getAccumulatedSlip
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_getAccumulatedSlip plastic_nonlocal_getAccumulatedSlip
implicit none implicit none
@ -1842,17 +1842,17 @@ subroutine constitutive_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
nSlip = 0_pInt nSlip = 0_pInt
allocate(accumulatedSlip(nSlip)) allocate(accumulatedSlip(nSlip))
case (PLASTICITY_J2_ID) case (PLASTICITY_J2_ID)
call constitutive_J2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_j2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
call constitutive_phenopowerlaw_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_phenopowerlaw_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
call constitutive_dislotwin_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_dislotwin_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
call constitutive_dislokmc_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_dislokmc_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
call constitutive_titanmod_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_titanmod_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
call constitutive_nonlocal_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) call plastic_nonlocal_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
end select end select
end subroutine constitutive_getAccumulatedSlip end subroutine constitutive_getAccumulatedSlip
@ -1878,16 +1878,16 @@ subroutine constitutive_getSlipRate(nSlip,slipRate,Lp,ipc, ip, el)
PLASTICITY_dislokmc_ID, & PLASTICITY_dislokmc_ID, &
PLASTICITY_titanmod_ID, & PLASTICITY_titanmod_ID, &
PLASTICITY_nonlocal_ID PLASTICITY_nonlocal_ID
use constitutive_phenopowerlaw, only: & use plastic_phenopowerlaw, only: &
constitutive_phenopowerlaw_getSlipRate plastic_phenopowerlaw_getSlipRate
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_getSlipRate plastic_dislotwin_getSlipRate
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_getSlipRate plastic_dislokmc_getSlipRate
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_getSlipRate plastic_titanmod_getSlipRate
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_getSlipRate plastic_nonlocal_getSlipRate
implicit none implicit none
@ -1911,15 +1911,15 @@ subroutine constitutive_getSlipRate(nSlip,slipRate,Lp,ipc, ip, el)
allocate(slipRate(nSlip)) allocate(slipRate(nSlip))
slipRate(1) = math_equivStrain33(Lp) slipRate(1) = math_equivStrain33(Lp)
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
call constitutive_phenopowerlaw_getSlipRate(nSlip,slipRate,ipc, ip, el) call plastic_phenopowerlaw_getSlipRate(nSlip,slipRate,ipc, ip, el)
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
call constitutive_dislotwin_getSlipRate(nSlip,slipRate,ipc, ip, el) call plastic_dislotwin_getSlipRate(nSlip,slipRate,ipc, ip, el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
call constitutive_dislokmc_getSlipRate(nSlip,slipRate,ipc, ip, el) call plastic_dislokmc_getSlipRate(nSlip,slipRate,ipc, ip, el)
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
call constitutive_titanmod_getSlipRate(nSlip,slipRate,ipc, ip, el) call plastic_titanmod_getSlipRate(nSlip,slipRate,ipc, ip, el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
call constitutive_nonlocal_getSlipRate(nSlip,slipRate,ipc, ip, el) call plastic_nonlocal_getSlipRate(nSlip,slipRate,ipc, ip, el)
end select end select
end subroutine constitutive_getSlipRate end subroutine constitutive_getSlipRate
@ -1959,21 +1959,21 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
LOCAL_DAMAGE_phaseField_ID, & LOCAL_DAMAGE_phaseField_ID, &
LOCAL_THERMAL_ADIABATIC_ID, & LOCAL_THERMAL_ADIABATIC_ID, &
LOCAL_VACANCY_generation_ID LOCAL_VACANCY_generation_ID
use constitutive_j2, only: & use plastic_j2, only: &
#ifdef HDF #ifdef HDF
constitutive_j2_postResults2,& plastic_j2_postResults2,&
#endif #endif
constitutive_j2_postResults plastic_j2_postResults
use constitutive_phenopowerlaw, only: & use plastic_phenopowerlaw, only: &
constitutive_phenopowerlaw_postResults plastic_phenopowerlaw_postResults
use constitutive_dislotwin, only: & use plastic_dislotwin, only: &
constitutive_dislotwin_postResults plastic_dislotwin_postResults
use constitutive_dislokmc, only: & use plastic_dislokmc, only: &
constitutive_dislokmc_postResults plastic_dislokmc_postResults
use constitutive_titanmod, only: & use plastic_titanmod, only: &
constitutive_titanmod_postResults plastic_titanmod_postResults
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_postResults plastic_nonlocal_postResults
#ifdef multiphysicsOut #ifdef multiphysicsOut
use damage_isoBrittle, only: & use damage_isoBrittle, only: &
damage_isoBrittle_postResults damage_isoBrittle_postResults
@ -2021,21 +2021,21 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
endPos = plasticState(material_phase(ipc,ip,el))%sizePostResults endPos = plasticState(material_phase(ipc,ip,el))%sizePostResults
select case (phase_plasticity(material_phase(ipc,ip,el))) select case (phase_plasticity(material_phase(ipc,ip,el)))
case (PLASTICITY_TITANMOD_ID) case (PLASTICITY_TITANMOD_ID)
constitutive_postResults(startPos:endPos) = constitutive_titanmod_postResults(ipc,ip,el) constitutive_postResults(startPos:endPos) = plastic_titanmod_postResults(ipc,ip,el)
case (PLASTICITY_J2_ID) case (PLASTICITY_J2_ID)
constitutive_postResults(startPos:endPos) = constitutive_j2_postResults(Tstar_v,ipc,ip,el) constitutive_postResults(startPos:endPos) = plastic_j2_postResults(Tstar_v,ipc,ip,el)
case (PLASTICITY_PHENOPOWERLAW_ID) case (PLASTICITY_PHENOPOWERLAW_ID)
constitutive_postResults(startPos:endPos) = & constitutive_postResults(startPos:endPos) = &
constitutive_phenopowerlaw_postResults(Tstar_v,ipc,ip,el) plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
case (PLASTICITY_DISLOTWIN_ID) case (PLASTICITY_DISLOTWIN_ID)
constitutive_postResults(startPos:endPos) = & constitutive_postResults(startPos:endPos) = &
constitutive_dislotwin_postResults(Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el) plastic_dislotwin_postResults(Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_DISLOKMC_ID) case (PLASTICITY_DISLOKMC_ID)
constitutive_postResults(startPos:endPos) = & constitutive_postResults(startPos:endPos) = &
constitutive_dislokmc_postResults(Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el) plastic_dislokmc_postResults(Tstar_v,constitutive_getTemperature(ipc,ip,el),ipc,ip,el)
case (PLASTICITY_NONLOCAL_ID) case (PLASTICITY_NONLOCAL_ID)
constitutive_postResults(startPos:endPos) = & constitutive_postResults(startPos:endPos) = &
constitutive_nonlocal_postResults (Tstar_v,FeArray,ip,el) plastic_nonlocal_postResults (Tstar_v,FeArray,ip,el)
end select end select
#ifdef multiphysicsOut #ifdef multiphysicsOut

File diff suppressed because it is too large Load Diff

View File

@ -3991,8 +3991,8 @@ subroutine crystallite_orientations
use lattice, only: & use lattice, only: &
lattice_qDisorientation, & lattice_qDisorientation, &
lattice_structure lattice_structure
use constitutive_nonlocal, only: & use plastic_nonlocal, only: &
constitutive_nonlocal_updateCompatibility plastic_nonlocal_updateCompatibility
implicit none implicit none
@ -4073,7 +4073,7 @@ subroutine crystallite_orientations
! --- calculate compatibility and transmissivity between me and my neighbor --- ! --- calculate compatibility and transmissivity between me and my neighbor ---
call constitutive_nonlocal_updateCompatibility(crystallite_orientation,i,e) call plastic_nonlocal_updateCompatibility(crystallite_orientation,i,e)
endif endif
enddo enddo

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
!! resolving the stress on the slip systems. Will give the response of phenopowerlaw for an !! resolving the stress on the slip systems. Will give the response of phenopowerlaw for an
!! untextured polycrystal !! untextured polycrystal
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
module constitutive_j2 module plastic_j2
#ifdef HDF #ifdef HDF
use hdf5, only: & use hdf5, only: &
HID_T HID_T
@ -21,35 +21,35 @@ module constitutive_j2
implicit none implicit none
private private
integer(pInt), dimension(:), allocatable, public, protected :: & integer(pInt), dimension(:), allocatable, public, protected :: &
constitutive_j2_sizePostResults !< cumulative size of post results plastic_j2_sizePostResults !< cumulative size of post results
integer(pInt), dimension(:,:), allocatable, target, public :: & integer(pInt), dimension(:,:), allocatable, target, public :: &
constitutive_j2_sizePostResult !< size of each post result output plastic_j2_sizePostResult !< size of each post result output
character(len=64), dimension(:,:), allocatable, target, public :: & character(len=64), dimension(:,:), allocatable, target, public :: &
constitutive_j2_output !< name of each post result output plastic_j2_output !< name of each post result output
integer(pInt), dimension(:), allocatable, target, public :: & integer(pInt), dimension(:), allocatable, target, public :: &
constitutive_j2_Noutput !< number of outputs per instance plastic_j2_Noutput !< number of outputs per instance
real(pReal), dimension(:), allocatable, private :: & real(pReal), dimension(:), allocatable, private :: &
constitutive_j2_fTaylor, & !< Taylor factor plastic_j2_fTaylor, & !< Taylor factor
constitutive_j2_tau0, & !< initial plastic stress plastic_j2_tau0, & !< initial plastic stress
constitutive_j2_gdot0, & !< reference velocity plastic_j2_gdot0, & !< reference velocity
constitutive_j2_n, & !< Visco-plastic parameter plastic_j2_n, & !< Visco-plastic parameter
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! h0 as function of h0 = A + B log (gammadot) ! h0 as function of h0 = A + B log (gammadot)
constitutive_j2_h0, & plastic_j2_h0, &
constitutive_j2_h0_slopeLnRate, & plastic_j2_h0_slopeLnRate, &
constitutive_j2_tausat, & !< final plastic stress plastic_j2_tausat, & !< final plastic stress
constitutive_j2_a, & plastic_j2_a, &
constitutive_j2_aTolResistance, & plastic_j2_aTolResistance, &
constitutive_j2_aTolShear, & plastic_j2_aTolShear, &
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! tausat += (asinh((gammadot / SinhFitA)**(1 / SinhFitD)))**(1 / SinhFitC) / (SinhFitB * (gammadot / gammadot0)**(1/n)) ! tausat += (asinh((gammadot / SinhFitA)**(1 / SinhFitD)))**(1 / SinhFitC) / (SinhFitB * (gammadot / gammadot0)**(1/n))
constitutive_j2_tausat_SinhFitA, & !< fitting parameter for normalized strain rate vs. stress function plastic_j2_tausat_SinhFitA, & !< fitting parameter for normalized strain rate vs. stress function
constitutive_j2_tausat_SinhFitB, & !< fitting parameter for normalized strain rate vs. stress function plastic_j2_tausat_SinhFitB, & !< fitting parameter for normalized strain rate vs. stress function
constitutive_j2_tausat_SinhFitC, & !< fitting parameter for normalized strain rate vs. stress function plastic_j2_tausat_SinhFitC, & !< fitting parameter for normalized strain rate vs. stress function
constitutive_j2_tausat_SinhFitD !< fitting parameter for normalized strain rate vs. stress function plastic_j2_tausat_SinhFitD !< fitting parameter for normalized strain rate vs. stress function
enum, bind(c) enum, bind(c)
enumerator :: undefined_ID, & enumerator :: undefined_ID, &
@ -57,27 +57,27 @@ module constitutive_j2
strainrate_ID strainrate_ID
end enum end enum
integer(kind(undefined_ID)), dimension(:,:), allocatable, private :: & integer(kind(undefined_ID)), dimension(:,:), allocatable, private :: &
constitutive_j2_outputID !< ID of each post result output plastic_j2_outputID !< ID of each post result output
#ifdef HDF #ifdef HDF
type constitutive_j2_tOutput type plastic_j2_tOutput
real(pReal), dimension(:), allocatable, private :: & real(pReal), dimension(:), allocatable, private :: &
flowstress, & flowstress, &
strainrate strainrate
logical :: flowstressActive = .false., strainrateActive = .false. ! if we can write the output block wise, this is not needed anymore because we can do an if(allocated(xxx)) logical :: flowstressActive = .false., strainrateActive = .false. ! if we can write the output block wise, this is not needed anymore because we can do an if(allocated(xxx))
end type constitutive_j2_tOutput end type plastic_j2_tOutput
type(constitutive_j2_tOutput), allocatable, dimension(:) :: constitutive_j2_Output2 type(plastic_j2_tOutput), allocatable, dimension(:) :: plastic_j2_Output2
integer(HID_T), allocatable, dimension(:) :: outID integer(HID_T), allocatable, dimension(:) :: outID
#endif #endif
public :: & public :: &
constitutive_j2_init, & plastic_j2_init, &
constitutive_j2_LpAndItsTangent, & plastic_j2_LpAndItsTangent, &
constitutive_j2_dotState, & plastic_j2_dotState, &
constitutive_J2_getAccumulatedSlip, & plastic_j2_getAccumulatedSlip, &
constitutive_j2_postResults plastic_j2_postResults
contains contains
@ -86,7 +86,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 constitutive_j2_init(fileUnit) subroutine plastic_j2_init(fileUnit)
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)
#ifdef HDF #ifdef HDF
use hdf5 use hdf5
@ -169,30 +169,30 @@ subroutine constitutive_j2_init(fileUnit)
write(6,'(a16,1x,i5,/)') '# instances:',maxNinstance write(6,'(a16,1x,i5,/)') '# instances:',maxNinstance
#ifdef HDF #ifdef HDF
allocate(constitutive_j2_Output2(maxNinstance)) allocate(plastic_j2_Output2(maxNinstance))
allocate(outID(maxNinstance)) allocate(outID(maxNinstance))
#endif #endif
allocate(constitutive_j2_sizePostResults(maxNinstance), source=0_pInt) allocate(plastic_j2_sizePostResults(maxNinstance), source=0_pInt)
allocate(constitutive_j2_sizePostResult(maxval(phase_Noutput), maxNinstance),source=0_pInt) allocate(plastic_j2_sizePostResult(maxval(phase_Noutput), maxNinstance),source=0_pInt)
allocate(constitutive_j2_output(maxval(phase_Noutput), maxNinstance)) allocate(plastic_j2_output(maxval(phase_Noutput), maxNinstance))
constitutive_j2_output = '' plastic_j2_output = ''
allocate(constitutive_j2_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID) allocate(plastic_j2_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
allocate(constitutive_j2_Noutput(maxNinstance), source=0_pInt) allocate(plastic_j2_Noutput(maxNinstance), source=0_pInt)
allocate(constitutive_j2_fTaylor(maxNinstance), source=0.0_pReal) allocate(plastic_j2_fTaylor(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tau0(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tau0(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_gdot0(maxNinstance), source=0.0_pReal) allocate(plastic_j2_gdot0(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_n(maxNinstance), source=0.0_pReal) allocate(plastic_j2_n(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_h0(maxNinstance), source=0.0_pReal) allocate(plastic_j2_h0(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_h0_slopeLnRate(maxNinstance), source=0.0_pReal) allocate(plastic_j2_h0_slopeLnRate(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tausat(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tausat(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_a(maxNinstance), source=0.0_pReal) allocate(plastic_j2_a(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_aTolResistance(maxNinstance), source=0.0_pReal) allocate(plastic_j2_aTolResistance(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_aTolShear (maxNinstance), source=0.0_pReal) allocate(plastic_j2_aTolShear (maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tausat_SinhFitA(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tausat_SinhFitA(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tausat_SinhFitB(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tausat_SinhFitB(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tausat_SinhFitC(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tausat_SinhFitC(maxNinstance), source=0.0_pReal)
allocate(constitutive_j2_tausat_SinhFitD(maxNinstance), source=0.0_pReal) allocate(plastic_j2_tausat_SinhFitD(maxNinstance), source=0.0_pReal)
rewind(fileUnit) rewind(fileUnit)
phase = 0_pInt phase = 0_pInt
@ -226,70 +226,70 @@ subroutine constitutive_j2_init(fileUnit)
case ('(output)') case ('(output)')
select case(IO_lc(IO_stringValue(line,positions,2_pInt))) select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('flowstress') case ('flowstress')
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt plastic_j2_Noutput(instance) = plastic_j2_Noutput(instance) + 1_pInt
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = flowstress_ID plastic_j2_outputID(plastic_j2_Noutput(instance),instance) = flowstress_ID
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = & plastic_j2_output(plastic_j2_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt)) IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF #ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'flowstress','MPa') call HDF5_addScalarDataset(outID(instance),myConstituents,'flowstress','MPa')
allocate(constitutive_j2_Output2(instance)%flowstress(myConstituents)) allocate(plastic_j2_Output2(instance)%flowstress(myConstituents))
constitutive_j2_Output2(instance)%flowstressActive = .true. plastic_j2_Output2(instance)%flowstressActive = .true.
#endif #endif
case ('strainrate') case ('strainrate')
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt plastic_j2_Noutput(instance) = plastic_j2_Noutput(instance) + 1_pInt
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = strainrate_ID plastic_j2_outputID(plastic_j2_Noutput(instance),instance) = strainrate_ID
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = & plastic_j2_output(plastic_j2_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt)) IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF #ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'strainrate','1/s') call HDF5_addScalarDataset(outID(instance),myConstituents,'strainrate','1/s')
allocate(constitutive_j2_Output2(instance)%strainrate(myConstituents)) allocate(plastic_j2_Output2(instance)%strainrate(myConstituents))
constitutive_j2_Output2(instance)%strainrateActive = .true. plastic_j2_Output2(instance)%strainrateActive = .true.
#endif #endif
case default case default
end select end select
case ('tau0') case ('tau0')
constitutive_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_tau0(instance) < 0.0_pReal) & if (plastic_j2_tau0(instance) < 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('gdot0') case ('gdot0')
constitutive_j2_gdot0(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_gdot0(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_gdot0(instance) <= 0.0_pReal) & if (plastic_j2_gdot0(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('n') case ('n')
constitutive_j2_n(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_n(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_n(instance) <= 0.0_pReal) & if (plastic_j2_n(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('h0') case ('h0')
constitutive_j2_h0(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_h0(instance) = IO_floatValue(line,positions,2_pInt)
case ('h0_slope','slopelnrate') case ('h0_slope','slopelnrate')
constitutive_j2_h0_slopeLnRate(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_h0_slopeLnRate(instance) = IO_floatValue(line,positions,2_pInt)
case ('tausat') case ('tausat')
constitutive_j2_tausat(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tausat(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_tausat(instance) <= 0.0_pReal) & if (plastic_j2_tausat(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('tausat_sinhfita') case ('tausat_sinhfita')
constitutive_j2_tausat_SinhFitA(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tausat_SinhFitA(instance) = IO_floatValue(line,positions,2_pInt)
case ('tausat_sinhfitb') case ('tausat_sinhfitb')
constitutive_j2_tausat_SinhFitB(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tausat_SinhFitB(instance) = IO_floatValue(line,positions,2_pInt)
case ('tausat_sinhfitc') case ('tausat_sinhfitc')
constitutive_j2_tausat_SinhFitC(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tausat_SinhFitC(instance) = IO_floatValue(line,positions,2_pInt)
case ('tausat_sinhfitd') case ('tausat_sinhfitd')
constitutive_j2_tausat_SinhFitD(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_tausat_SinhFitD(instance) = IO_floatValue(line,positions,2_pInt)
case ('a', 'w0') case ('a', 'w0')
constitutive_j2_a(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_a(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_a(instance) <= 0.0_pReal) & if (plastic_j2_a(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('taylorfactor') case ('taylorfactor')
constitutive_j2_fTaylor(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_fTaylor(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_fTaylor(instance) <= 0.0_pReal) & if (plastic_j2_fTaylor(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('atol_resistance') case ('atol_resistance')
constitutive_j2_aTolResistance(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_aTolResistance(instance) = IO_floatValue(line,positions,2_pInt)
if (constitutive_j2_aTolResistance(instance) <= 0.0_pReal) & if (plastic_j2_aTolResistance(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')') call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case ('atol_shear') case ('atol_shear')
constitutive_j2_aTolShear(instance) = IO_floatValue(line,positions,2_pInt) plastic_j2_aTolShear(instance) = IO_floatValue(line,positions,2_pInt)
case default case default
@ -303,22 +303,22 @@ subroutine constitutive_j2_init(fileUnit)
instance = phase_plasticityInstance(phase) instance = phase_plasticityInstance(phase)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! sanity checks ! sanity checks
if (constitutive_j2_aTolShear(instance) <= 0.0_pReal) & if (plastic_j2_aTolShear(instance) <= 0.0_pReal) &
constitutive_j2_aTolShear(instance) = 1.0e-6_pReal ! default absolute tolerance 1e-6 plastic_j2_aTolShear(instance) = 1.0e-6_pReal ! default absolute tolerance 1e-6
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! Determine size of postResults array ! Determine size of postResults array
outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance) outputsLoop: do o = 1_pInt,plastic_j2_Noutput(instance)
select case(constitutive_j2_outputID(o,instance)) select case(plastic_j2_outputID(o,instance))
case(flowstress_ID,strainrate_ID) case(flowstress_ID,strainrate_ID)
mySize = 1_pInt mySize = 1_pInt
case default case default
end select end select
outputFound: if (mySize > 0_pInt) then outputFound: if (mySize > 0_pInt) then
constitutive_j2_sizePostResult(o,instance) = mySize plastic_j2_sizePostResult(o,instance) = mySize
constitutive_j2_sizePostResults(instance) = & plastic_j2_sizePostResults(instance) = &
constitutive_j2_sizePostResults(instance) + mySize plastic_j2_sizePostResults(instance) + mySize
endif outputFound endif outputFound
enddo outputsLoop enddo outputsLoop
@ -328,12 +328,12 @@ subroutine constitutive_j2_init(fileUnit)
sizeDotState = sizeState sizeDotState = sizeState
plasticState(phase)%sizeState = sizeState plasticState(phase)%sizeState = sizeState
plasticState(phase)%sizeDotState = sizeDotState plasticState(phase)%sizeDotState = sizeDotState
plasticState(phase)%sizePostResults = constitutive_j2_sizePostResults(instance) plasticState(phase)%sizePostResults = plastic_j2_sizePostResults(instance)
allocate(plasticState(phase)%aTolState ( sizeState)) allocate(plasticState(phase)%aTolState ( sizeState))
plasticState(phase)%aTolState(1) = constitutive_j2_aTolResistance(instance) plasticState(phase)%aTolState(1) = plastic_j2_aTolResistance(instance)
plasticState(phase)%aTolState(2) = constitutive_j2_aTolShear(instance) plasticState(phase)%aTolState(2) = plastic_j2_aTolShear(instance)
allocate(plasticState(phase)%state0 ( sizeState,NofMyPhase)) allocate(plasticState(phase)%state0 ( sizeState,NofMyPhase))
plasticState(phase)%state0(1,1:NofMyPhase) = constitutive_j2_tau0(instance) plasticState(phase)%state0(1,1:NofMyPhase) = plastic_j2_tau0(instance)
plasticState(phase)%state0(2,1:NofMyPhase) = 0.0_pReal plasticState(phase)%state0(2,1:NofMyPhase) = 0.0_pReal
allocate(plasticState(phase)%partionedState0 ( sizeState,NofMyPhase),source=0.0_pReal) allocate(plasticState(phase)%partionedState0 ( sizeState,NofMyPhase),source=0.0_pReal)
allocate(plasticState(phase)%subState0 ( sizeState,NofMyPhase),source=0.0_pReal) allocate(plasticState(phase)%subState0 ( sizeState,NofMyPhase),source=0.0_pReal)
@ -353,13 +353,13 @@ subroutine constitutive_j2_init(fileUnit)
endif myPhase endif myPhase
enddo initializeInstances enddo initializeInstances
end subroutine constitutive_j2_init end subroutine plastic_j2_init
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief calculates plastic velocity gradient and its tangent !> @brief calculates plastic velocity gradient and its tangent
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine constitutive_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,slipDamage,ipc,ip,el) subroutine plastic_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,slipDamage,ipc,ip,el)
use math, only: & use math, only: &
math_mul6x6, & math_mul6x6, &
math_Mandel6to33, & math_Mandel6to33, &
@ -412,32 +412,32 @@ subroutine constitutive_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,slipDamage,ip
Lp = 0.0_pReal Lp = 0.0_pReal
dLp_dTstar99 = 0.0_pReal dLp_dTstar99 = 0.0_pReal
else else
gamma_dot = constitutive_j2_gdot0(instance) & gamma_dot = plastic_j2_gdot0(instance) &
* (sqrt(1.5_pReal) * norm_Tstar_dev / (slipDamage(1)*constitutive_j2_fTaylor(instance) * & * (sqrt(1.5_pReal) * norm_Tstar_dev / (slipDamage(1)*plastic_j2_fTaylor(instance) * &
plasticState(mappingConstitutive(2,ipc,ip,el))%state(1,mappingConstitutive(1,ipc,ip,el)))) & plasticState(mappingConstitutive(2,ipc,ip,el))%state(1,mappingConstitutive(1,ipc,ip,el)))) &
**constitutive_j2_n(instance) **plastic_j2_n(instance)
Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/constitutive_j2_fTaylor(instance) Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/plastic_j2_fTaylor(instance)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! Calculation of the tangent of Lp ! Calculation of the tangent of Lp
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_dTstar_3333(k,l,m,n) = (constitutive_j2_n(instance)-1.0_pReal) * & dLp_dTstar_3333(k,l,m,n) = (plastic_j2_n(instance)-1.0_pReal) * &
Tstar_dev_33(k,l)*Tstar_dev_33(m,n) / squarenorm_Tstar_dev Tstar_dev_33(k,l)*Tstar_dev_33(m,n) / squarenorm_Tstar_dev
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt) & forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt) &
dLp_dTstar_3333(k,l,k,l) = dLp_dTstar_3333(k,l,k,l) + 1.0_pReal dLp_dTstar_3333(k,l,k,l) = dLp_dTstar_3333(k,l,k,l) + 1.0_pReal
forall (k=1_pInt:3_pInt,m=1_pInt:3_pInt) & forall (k=1_pInt:3_pInt,m=1_pInt:3_pInt) &
dLp_dTstar_3333(k,k,m,m) = dLp_dTstar_3333(k,k,m,m) - 1.0_pReal/3.0_pReal dLp_dTstar_3333(k,k,m,m) = dLp_dTstar_3333(k,k,m,m) - 1.0_pReal/3.0_pReal
dLp_dTstar99 = math_Plain3333to99(gamma_dot / constitutive_j2_fTaylor(instance) * & dLp_dTstar99 = math_Plain3333to99(gamma_dot / plastic_j2_fTaylor(instance) * &
dLp_dTstar_3333 / norm_Tstar_dev) dLp_dTstar_3333 / norm_Tstar_dev)
end if end if
end subroutine constitutive_j2_LpAndItsTangent end subroutine plastic_j2_LpAndItsTangent
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief calculates the rate of change of microstructure !> @brief calculates the rate of change of microstructure
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine constitutive_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: & use mesh, only: &
@ -481,31 +481,31 @@ subroutine constitutive_j2_dotState(Tstar_v,ipc,ip,el)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! strain rate ! strain rate
gamma_dot = constitutive_j2_gdot0(instance) * ( sqrt(1.5_pReal) * norm_Tstar_dev & gamma_dot = plastic_j2_gdot0(instance) * ( sqrt(1.5_pReal) * norm_Tstar_dev &
/ &!----------------------------------------------------------------------------------- / &!-----------------------------------------------------------------------------------
(constitutive_j2_fTaylor(instance)*plasticState(ph)%state(1,of)) )**constitutive_j2_n(instance) (plastic_j2_fTaylor(instance)*plasticState(ph)%state(1,of)) )**plastic_j2_n(instance)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! hardening coefficient ! hardening coefficient
if (abs(gamma_dot) > 1e-12_pReal) then if (abs(gamma_dot) > 1e-12_pReal) then
if (constitutive_j2_tausat_SinhFitA(instance) == 0.0_pReal) then if (plastic_j2_tausat_SinhFitA(instance) == 0.0_pReal) then
saturation = constitutive_j2_tausat(instance) saturation = plastic_j2_tausat(instance)
else else
saturation = ( constitutive_j2_tausat(instance) & saturation = ( plastic_j2_tausat(instance) &
+ ( log( ( gamma_dot / constitutive_j2_tausat_SinhFitA(instance)& + ( log( ( gamma_dot / plastic_j2_tausat_SinhFitA(instance)&
)**(1.0_pReal / constitutive_j2_tausat_SinhFitD(instance))& )**(1.0_pReal / plastic_j2_tausat_SinhFitD(instance))&
+ sqrt( ( gamma_dot / constitutive_j2_tausat_SinhFitA(instance) & + sqrt( ( gamma_dot / plastic_j2_tausat_SinhFitA(instance) &
)**(2.0_pReal / constitutive_j2_tausat_SinhFitD(instance)) & )**(2.0_pReal / plastic_j2_tausat_SinhFitD(instance)) &
+ 1.0_pReal ) & + 1.0_pReal ) &
) & ! asinh(K) = ln(K + sqrt(K^2 +1)) ) & ! asinh(K) = ln(K + sqrt(K^2 +1))
)**(1.0_pReal / constitutive_j2_tausat_SinhFitC(instance)) & )**(1.0_pReal / plastic_j2_tausat_SinhFitC(instance)) &
/ ( constitutive_j2_tausat_SinhFitB(instance) & / ( plastic_j2_tausat_SinhFitB(instance) &
* (gamma_dot / constitutive_j2_gdot0(instance))**(1.0_pReal / constitutive_j2_n(instance)) & * (gamma_dot / plastic_j2_gdot0(instance))**(1.0_pReal / plastic_j2_n(instance)) &
) & ) &
) )
endif endif
hardening = ( constitutive_j2_h0(instance) + constitutive_j2_h0_slopeLnRate(instance) * log(gamma_dot) ) & hardening = ( plastic_j2_h0(instance) + plastic_j2_h0_slopeLnRate(instance) * log(gamma_dot) ) &
* abs( 1.0_pReal - plasticState(ph)%state(1,of)/saturation )**constitutive_j2_a(instance) & * abs( 1.0_pReal - plasticState(ph)%state(1,of)/saturation )**plastic_j2_a(instance) &
* sign(1.0_pReal, 1.0_pReal - plasticState(ph)%state(1,of)/saturation) * sign(1.0_pReal, 1.0_pReal - plasticState(ph)%state(1,of)/saturation)
else else
hardening = 0.0_pReal hardening = 0.0_pReal
@ -514,13 +514,13 @@ subroutine constitutive_j2_dotState(Tstar_v,ipc,ip,el)
plasticState(ph)%dotState(1,of) = hardening * gamma_dot plasticState(ph)%dotState(1,of) = hardening * gamma_dot
plasticState(ph)%dotState(2,of) = gamma_dot plasticState(ph)%dotState(2,of) = gamma_dot
end subroutine constitutive_j2_dotState end subroutine plastic_j2_dotState
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief returns accumulated slip !> @brief returns accumulated slip
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine constitutive_J2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el) subroutine plastic_j2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
use material, only: & use material, only: &
mappingConstitutive, & mappingConstitutive, &
plasticState, & plasticState, &
@ -549,13 +549,13 @@ subroutine constitutive_J2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
allocate(accumulatedSlip(nSlip)) allocate(accumulatedSlip(nSlip))
accumulatedSlip(1) = plasticState(phase)%state(2,constituent) accumulatedSlip(1) = plasticState(phase)%state(2,constituent)
end subroutine constitutive_J2_getAccumulatedSlip end subroutine plastic_j2_getAccumulatedSlip
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief return array of constitutive results !> @brief return array of constitutive results
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
function constitutive_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: & use mesh, only: &
@ -576,8 +576,8 @@ function constitutive_j2_postResults(Tstar_v,ipc,ip,el)
ipc, & !< component-ID of integration point ipc, & !< component-ID of integration point
ip, & !< integration point ip, & !< integration point
el !< element el !< element
real(pReal), dimension(constitutive_j2_sizePostResults(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: & real(pReal), dimension(plastic_j2_sizePostResults(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
constitutive_j2_postResults plastic_j2_postResults
real(pReal), dimension(6) :: & real(pReal), dimension(6) :: &
Tstar_dev_v ! deviatoric part of the 2nd Piola Kirchhoff stress tensor in Mandel notation Tstar_dev_v ! deviatoric part of the 2nd Piola Kirchhoff stress tensor in Mandel notation
@ -601,23 +601,23 @@ function constitutive_j2_postResults(Tstar_v,ipc,ip,el)
norm_Tstar_dev = sqrt(math_mul6x6(Tstar_dev_v,Tstar_dev_v)) norm_Tstar_dev = sqrt(math_mul6x6(Tstar_dev_v,Tstar_dev_v))
c = 0_pInt c = 0_pInt
constitutive_j2_postResults = 0.0_pReal plastic_j2_postResults = 0.0_pReal
outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance) outputsLoop: do o = 1_pInt,plastic_j2_Noutput(instance)
select case(constitutive_j2_outputID(o,instance)) select case(plastic_j2_outputID(o,instance))
case (flowstress_ID) case (flowstress_ID)
constitutive_j2_postResults(c+1_pInt) = plasticState(ph)%state(1,of) plastic_j2_postResults(c+1_pInt) = plasticState(ph)%state(1,of)
c = c + 1_pInt c = c + 1_pInt
case (strainrate_ID) case (strainrate_ID)
constitutive_j2_postResults(c+1_pInt) = & plastic_j2_postResults(c+1_pInt) = &
constitutive_j2_gdot0(instance) * ( sqrt(1.5_pReal) * norm_Tstar_dev & plastic_j2_gdot0(instance) * ( sqrt(1.5_pReal) * norm_Tstar_dev &
/ &!---------------------------------------------------------------------------------- / &!----------------------------------------------------------------------------------
(constitutive_j2_fTaylor(instance) * plasticState(ph)%state(1,of)) ) ** constitutive_j2_n(instance) (plastic_j2_fTaylor(instance) * plasticState(ph)%state(1,of)) ) ** plastic_j2_n(instance)
c = c + 1_pInt c = c + 1_pInt
end select end select
enddo outputsLoop enddo outputsLoop
end function constitutive_j2_postResults end function plastic_j2_postResults
end module constitutive_j2 end module plastic_j2

View File

@ -5,20 +5,20 @@
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH !> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
!> @brief material subroutine for purely elastic material !> @brief material subroutine for purely elastic material
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
module constitutive_none module plastic_none
use prec, only: & use prec, only: &
pInt pInt
implicit none implicit none
private private
integer(pInt), dimension(:), allocatable, public, protected :: & integer(pInt), dimension(:), allocatable, public, protected :: &
constitutive_none_sizePostResults plastic_none_sizePostResults
integer(pInt), dimension(:,:), allocatable, target, public :: & integer(pInt), dimension(:,:), allocatable, target, public :: &
constitutive_none_sizePostResult !< size of each post result output plastic_none_sizePostResult !< size of each post result output
public :: & public :: &
constitutive_none_init plastic_none_init
contains contains
@ -27,7 +27,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 constitutive_none_init subroutine plastic_none_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 debug, only: & use debug, only: &
debug_level, & debug_level, &
@ -98,8 +98,8 @@ subroutine constitutive_none_init
endif endif
enddo initializeInstances enddo initializeInstances
allocate(constitutive_none_sizePostResults(maxNinstance), source=0_pInt) allocate(plastic_none_sizePostResults(maxNinstance), source=0_pInt)
end subroutine constitutive_none_init end subroutine plastic_none_init
end module constitutive_none end module plastic_none

File diff suppressed because it is too large Load Diff

2022
code/plastic_titanmod.f90 Normal file

File diff suppressed because it is too large Load Diff