changed constitutive_* prefix for plasticity laws to plastic_* to be consistent with novel thermal_, damage_, vacancy_, etc. laws.
This commit is contained in:
parent
6066a03f85
commit
c34252c71c
|
@ -317,8 +317,8 @@ VACANCY_FILES = \
|
|||
vacancy_constant.o vacancy_generation.o
|
||||
|
||||
CONSTITUTIVE_FILES = \
|
||||
constitutive_dislotwin.o constitutive_dislokmc.o constitutive_j2.o constitutive_phenopowerlaw.o \
|
||||
constitutive_titanmod.o constitutive_nonlocal.o constitutive_none.o constitutive.o
|
||||
plastic_dislotwin.o plastic_dislokmc.o plastic_j2.o plastic_phenopowerlaw.o \
|
||||
plastic_titanmod.o plastic_nonlocal.o plastic_none.o constitutive.o
|
||||
|
||||
HOMOGENIZATION_FILES = \
|
||||
homogenization_RGC.o homogenization_isostrain.o homogenization_none.o homogenization.o
|
||||
|
@ -431,36 +431,36 @@ crystallite.o: crystallite.f90 \
|
|||
constitutive.o
|
||||
|
||||
constitutive.o: constitutive.f90 \
|
||||
constitutive_nonlocal.o \
|
||||
constitutive_titanmod.o \
|
||||
constitutive_dislotwin.o \
|
||||
constitutive_dislokmc.o \
|
||||
constitutive_phenopowerlaw.o \
|
||||
constitutive_j2.o \
|
||||
constitutive_none.o \
|
||||
plastic_nonlocal.o \
|
||||
plastic_titanmod.o \
|
||||
plastic_dislotwin.o \
|
||||
plastic_dislokmc.o \
|
||||
plastic_phenopowerlaw.o \
|
||||
plastic_j2.o \
|
||||
plastic_none.o \
|
||||
$(DAMAGE_FILES) \
|
||||
$(THERMAL_FILES) \
|
||||
$(VACANCY_FILES)
|
||||
|
||||
constitutive_nonlocal.o: constitutive_nonlocal.f90 \
|
||||
plastic_nonlocal.o: plastic_nonlocal.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_titanmod.o: constitutive_titanmod.f90 \
|
||||
plastic_titanmod.o: plastic_titanmod.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_dislokmc.o: constitutive_dislokmc.f90 \
|
||||
plastic_dislokmc.o: plastic_dislokmc.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_dislotwin.o: constitutive_dislotwin.f90 \
|
||||
plastic_dislotwin.o: plastic_dislotwin.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_phenopowerlaw.o: constitutive_phenopowerlaw.f90 \
|
||||
plastic_phenopowerlaw.o: plastic_phenopowerlaw.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_j2.o: constitutive_j2.f90 \
|
||||
plastic_j2.o: plastic_j2.f90 \
|
||||
lattice.o
|
||||
|
||||
constitutive_none.o: constitutive_none.f90 \
|
||||
plastic_none.o: plastic_none.f90 \
|
||||
lattice.o
|
||||
|
||||
damage_none.o: damage_none.f90 \
|
||||
|
|
|
@ -25,13 +25,13 @@
|
|||
#include "thermal_adiabatic.f90"
|
||||
#include "vacancy_constant.f90"
|
||||
#include "vacancy_generation.f90"
|
||||
#include "constitutive_none.f90"
|
||||
#include "constitutive_j2.f90"
|
||||
#include "constitutive_phenopowerlaw.f90"
|
||||
#include "constitutive_titanmod.f90"
|
||||
#include "constitutive_dislotwin.f90"
|
||||
#include "constitutive_dislokmc.f90"
|
||||
#include "constitutive_nonlocal.f90"
|
||||
#include "plastic_none.f90"
|
||||
#include "plastic_j2.f90"
|
||||
#include "plastic_phenopowerlaw.f90"
|
||||
#include "plastic_titanmod.f90"
|
||||
#include "plastic_dislotwin.f90"
|
||||
#include "plastic_dislokmc.f90"
|
||||
#include "plastic_nonlocal.f90"
|
||||
#include "constitutive.f90"
|
||||
#include "crystallite.f90"
|
||||
#include "homogenization_none.f90"
|
||||
|
|
|
@ -156,13 +156,13 @@ subroutine constitutive_init(temperature_init)
|
|||
mappingConstitutive
|
||||
|
||||
|
||||
use constitutive_none
|
||||
use constitutive_j2
|
||||
use constitutive_phenopowerlaw
|
||||
use constitutive_dislotwin
|
||||
use constitutive_dislokmc
|
||||
use constitutive_titanmod
|
||||
use constitutive_nonlocal
|
||||
use plastic_none
|
||||
use plastic_j2
|
||||
use plastic_phenopowerlaw
|
||||
use plastic_dislotwin
|
||||
use plastic_dislokmc
|
||||
use plastic_titanmod
|
||||
use plastic_nonlocal
|
||||
use damage_none
|
||||
use damage_isoBrittle
|
||||
use damage_isoDuctile
|
||||
|
@ -194,15 +194,15 @@ subroutine constitutive_init(temperature_init)
|
|||
! parse plasticities from config file
|
||||
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
|
||||
if (any(phase_plasticity == PLASTICITY_NONE_ID)) call constitutive_none_init
|
||||
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_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_NONE_ID)) call plastic_none_init
|
||||
if (any(phase_plasticity == PLASTICITY_J2_ID)) call plastic_j2_init(FILEUNIT)
|
||||
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init(FILEUNIT)
|
||||
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init(FILEUNIT)
|
||||
if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call plastic_dislokmc_init(FILEUNIT)
|
||||
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call plastic_titanmod_init(FILEUNIT)
|
||||
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) then
|
||||
call constitutive_nonlocal_init(FILEUNIT)
|
||||
call constitutive_nonlocal_stateInit()
|
||||
call plastic_nonlocal_init(FILEUNIT)
|
||||
call plastic_nonlocal_stateInit()
|
||||
endif
|
||||
close(FILEUNIT)
|
||||
|
||||
|
@ -252,38 +252,38 @@ subroutine constitutive_init(temperature_init)
|
|||
case (PLASTICITY_NONE_ID)
|
||||
outputName = PLASTICITY_NONE_label
|
||||
thisNoutput => null()
|
||||
thisOutput => null() ! constitutive_none_output
|
||||
thisSize => null() ! constitutive_none_sizePostResult
|
||||
thisOutput => null() ! plastic_none_output
|
||||
thisSize => null() ! plastic_none_sizePostResult
|
||||
case (PLASTICITY_J2_ID)
|
||||
outputName = PLASTICITY_J2_label
|
||||
thisNoutput => constitutive_j2_Noutput
|
||||
thisOutput => constitutive_j2_output
|
||||
thisSize => constitutive_j2_sizePostResult
|
||||
thisNoutput => plastic_j2_Noutput
|
||||
thisOutput => plastic_j2_output
|
||||
thisSize => plastic_j2_sizePostResult
|
||||
case (PLASTICITY_PHENOPOWERLAW_ID)
|
||||
outputName = PLASTICITY_PHENOPOWERLAW_label
|
||||
thisNoutput => constitutive_phenopowerlaw_Noutput
|
||||
thisOutput => constitutive_phenopowerlaw_output
|
||||
thisSize => constitutive_phenopowerlaw_sizePostResult
|
||||
thisNoutput => plastic_phenopowerlaw_Noutput
|
||||
thisOutput => plastic_phenopowerlaw_output
|
||||
thisSize => plastic_phenopowerlaw_sizePostResult
|
||||
case (PLASTICITY_DISLOTWIN_ID)
|
||||
outputName = PLASTICITY_DISLOTWIN_label
|
||||
thisNoutput => constitutive_dislotwin_Noutput
|
||||
thisOutput => constitutive_dislotwin_output
|
||||
thisSize => constitutive_dislotwin_sizePostResult
|
||||
thisNoutput => plastic_dislotwin_Noutput
|
||||
thisOutput => plastic_dislotwin_output
|
||||
thisSize => plastic_dislotwin_sizePostResult
|
||||
case (PLASTICITY_DISLOKMC_ID)
|
||||
outputName = PLASTICITY_DISLOKMC_label
|
||||
thisNoutput => constitutive_dislokmc_Noutput
|
||||
thisOutput => constitutive_dislokmc_output
|
||||
thisSize => constitutive_dislokmc_sizePostResult
|
||||
thisNoutput => plastic_dislokmc_Noutput
|
||||
thisOutput => plastic_dislokmc_output
|
||||
thisSize => plastic_dislokmc_sizePostResult
|
||||
case (PLASTICITY_TITANMOD_ID)
|
||||
outputName = PLASTICITY_TITANMOD_label
|
||||
thisNoutput => constitutive_titanmod_Noutput
|
||||
thisOutput => constitutive_titanmod_output
|
||||
thisSize => constitutive_titanmod_sizePostResult
|
||||
thisNoutput => plastic_titanmod_Noutput
|
||||
thisOutput => plastic_titanmod_output
|
||||
thisSize => plastic_titanmod_sizePostResult
|
||||
case (PLASTICITY_NONLOCAL_ID)
|
||||
outputName = PLASTICITY_NONLOCAL_label
|
||||
thisNoutput => constitutive_nonlocal_Noutput
|
||||
thisOutput => constitutive_nonlocal_output
|
||||
thisSize => constitutive_nonlocal_sizePostResult
|
||||
thisNoutput => plastic_nonlocal_Noutput
|
||||
thisOutput => plastic_nonlocal_output
|
||||
thisSize => plastic_nonlocal_sizePostResult
|
||||
case default
|
||||
knownPlasticity = .false.
|
||||
end select
|
||||
|
@ -480,12 +480,12 @@ function constitutive_homogenizedC(ipc,ip,el)
|
|||
plasticState,&
|
||||
mappingConstitutive
|
||||
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_homogenizedC
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_homogenizedC
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_homogenizedC
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_homogenizedC
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_homogenizedC
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_homogenizedC
|
||||
use lattice, only: &
|
||||
lattice_C66
|
||||
|
||||
|
@ -499,11 +499,11 @@ function constitutive_homogenizedC(ipc,ip,el)
|
|||
select case (phase_plasticity(material_phase(ipc,ip,el)))
|
||||
|
||||
case (PLASTICITY_DISLOTWIN_ID)
|
||||
constitutive_homogenizedC = constitutive_dislotwin_homogenizedC(ipc,ip,el)
|
||||
constitutive_homogenizedC = plastic_dislotwin_homogenizedC(ipc,ip,el)
|
||||
case (PLASTICITY_DISLOKMC_ID)
|
||||
constitutive_homogenizedC = constitutive_dislokmc_homogenizedC(ipc,ip,el)
|
||||
constitutive_homogenizedC = plastic_dislokmc_homogenizedC(ipc,ip,el)
|
||||
case (PLASTICITY_TITANMOD_ID)
|
||||
constitutive_homogenizedC = constitutive_titanmod_homogenizedC (ipc,ip,el)
|
||||
constitutive_homogenizedC = plastic_titanmod_homogenizedC (ipc,ip,el)
|
||||
case default
|
||||
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_phaseField_ID
|
||||
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_microstructure
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_microstructure
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_microstructure
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_microstructure
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_microstructure
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_microstructure
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_microstructure
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_microstructure
|
||||
use damage_isoBrittle, only: &
|
||||
damage_isoBrittle_microstructure
|
||||
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)))
|
||||
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
call constitutive_nonlocal_microstructure (Fe,Fp, ip,el)
|
||||
call plastic_nonlocal_microstructure (Fe,Fp, ip,el)
|
||||
|
||||
end select
|
||||
|
||||
|
@ -665,22 +665,22 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, ipc, ip, el)
|
|||
PLASTICITY_DISLOKMC_ID, &
|
||||
PLASTICITY_TITANMOD_ID, &
|
||||
PLASTICITY_NONLOCAL_ID
|
||||
use constitutive_j2, only: &
|
||||
constitutive_j2_LpAndItsTangent
|
||||
use constitutive_phenopowerlaw, only: &
|
||||
constitutive_phenopowerlaw_LpAndItsTangent, &
|
||||
constitutive_phenopowerlaw_totalNslip
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_LpAndItsTangent, &
|
||||
constitutive_dislotwin_totalNslip
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_LpAndItsTangent, &
|
||||
constitutive_dislokmc_totalNslip
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_LpAndItsTangent, &
|
||||
constitutive_titanmod_totalNslip
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_LpAndItsTangent, &
|
||||
use plastic_j2, only: &
|
||||
plastic_j2_LpAndItsTangent
|
||||
use plastic_phenopowerlaw, only: &
|
||||
plastic_phenopowerlaw_LpAndItsTangent, &
|
||||
plastic_phenopowerlaw_totalNslip
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_LpAndItsTangent, &
|
||||
plastic_dislotwin_totalNslip
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_LpAndItsTangent, &
|
||||
plastic_dislokmc_totalNslip
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_LpAndItsTangent, &
|
||||
plastic_titanmod_totalNslip
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_LpAndItsTangent, &
|
||||
totalNslip
|
||||
|
||||
implicit none
|
||||
|
@ -704,35 +704,35 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar, Tstar_v, ipc, ip, el)
|
|||
dLp_dTstar = 0.0_pReal
|
||||
case (PLASTICITY_J2_ID)
|
||||
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), &
|
||||
ipc,ip,el)
|
||||
case (PLASTICITY_PHENOPOWERLAW_ID)
|
||||
nSlip = constitutive_phenopowerlaw_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call constitutive_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
nSlip = plastic_phenopowerlaw_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
|
||||
ipc,ip,el)
|
||||
case (PLASTICITY_NONLOCAL_ID)
|
||||
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_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
|
||||
ipc,ip,el)
|
||||
case (PLASTICITY_DISLOTWIN_ID)
|
||||
nSlip = constitutive_dislotwin_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call constitutive_dislotwin_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
nSlip = plastic_dislotwin_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
constitutive_getTemperature(ipc,ip,el), &
|
||||
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
|
||||
ipc,ip,el)
|
||||
case (PLASTICITY_DISLOKMC_ID)
|
||||
nSlip = constitutive_dislokmc_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call constitutive_dislokmc_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
nSlip = plastic_dislokmc_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call plastic_dislokmc_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
constitutive_getTemperature(ipc,ip,el), &
|
||||
constitutive_getSlipDamage(nSlip,Tstar_v,ipc,ip,el), &
|
||||
ipc,ip,el)
|
||||
case (PLASTICITY_TITANMOD_ID)
|
||||
nSlip = constitutive_titanmod_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call constitutive_titanmod_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
nSlip = plastic_titanmod_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))
|
||||
call plastic_titanmod_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v, &
|
||||
constitutive_getTemperature(ipc,ip,el), &
|
||||
constitutive_getSlipDamage(nSlip,Tstar_v,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_gurson_ID, &
|
||||
LOCAL_VACANCY_generation_ID
|
||||
use constitutive_j2, only: &
|
||||
constitutive_j2_dotState
|
||||
use constitutive_phenopowerlaw, only: &
|
||||
constitutive_phenopowerlaw_dotState
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_dotState
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_dotState
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_dotState
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_dotState
|
||||
use plastic_j2, only: &
|
||||
plastic_j2_dotState
|
||||
use plastic_phenopowerlaw, only: &
|
||||
plastic_phenopowerlaw_dotState
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_dotState
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_dotState
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_dotState
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_dotState
|
||||
use damage_anisoBrittle, only: &
|
||||
damage_anisoBrittle_dotState
|
||||
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)))
|
||||
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)
|
||||
call constitutive_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||
call plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
end select
|
||||
|
||||
|
@ -1194,8 +1194,8 @@ logical function constitutive_collectDeltaState(Tstar_v, ipc, ip, el)
|
|||
plasticState, &
|
||||
mappingConstitutive, &
|
||||
PLASTICITY_NONLOCAL_ID
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_deltaState
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_deltaState
|
||||
|
||||
implicit none
|
||||
integer(pInt), intent(in) :: &
|
||||
|
@ -1216,7 +1216,7 @@ logical function constitutive_collectDeltaState(Tstar_v, ipc, ip, el)
|
|||
|
||||
case (PLASTICITY_NONLOCAL_ID)
|
||||
constitutive_collectDeltaState = .true.
|
||||
call constitutive_nonlocal_deltaState(Tstar_v,ip,el)
|
||||
call plastic_nonlocal_deltaState(Tstar_v,ip,el)
|
||||
case default
|
||||
constitutive_collectDeltaState = .false.
|
||||
|
||||
|
@ -1813,18 +1813,18 @@ subroutine constitutive_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
|||
PLASTICITY_dislokmc_ID, &
|
||||
PLASTICITY_titanmod_ID, &
|
||||
PLASTICITY_nonlocal_ID
|
||||
use constitutive_J2, only: &
|
||||
constitutive_J2_getAccumulatedSlip
|
||||
use constitutive_phenopowerlaw, only: &
|
||||
constitutive_phenopowerlaw_getAccumulatedSlip
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_getAccumulatedSlip
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_getAccumulatedSlip
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_getAccumulatedSlip
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_getAccumulatedSlip
|
||||
use plastic_j2, only: &
|
||||
plastic_j2_getAccumulatedSlip
|
||||
use plastic_phenopowerlaw, only: &
|
||||
plastic_phenopowerlaw_getAccumulatedSlip
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_getAccumulatedSlip
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_getAccumulatedSlip
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_getAccumulatedSlip
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_getAccumulatedSlip
|
||||
|
||||
implicit none
|
||||
|
||||
|
@ -1842,17 +1842,17 @@ subroutine constitutive_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
|||
nSlip = 0_pInt
|
||||
allocate(accumulatedSlip(nSlip))
|
||||
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)
|
||||
call constitutive_phenopowerlaw_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
call plastic_phenopowerlaw_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
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)
|
||||
call constitutive_dislokmc_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
call plastic_dislokmc_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
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)
|
||||
call constitutive_nonlocal_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
call plastic_nonlocal_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
||||
end select
|
||||
|
||||
end subroutine constitutive_getAccumulatedSlip
|
||||
|
@ -1878,16 +1878,16 @@ subroutine constitutive_getSlipRate(nSlip,slipRate,Lp,ipc, ip, el)
|
|||
PLASTICITY_dislokmc_ID, &
|
||||
PLASTICITY_titanmod_ID, &
|
||||
PLASTICITY_nonlocal_ID
|
||||
use constitutive_phenopowerlaw, only: &
|
||||
constitutive_phenopowerlaw_getSlipRate
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_getSlipRate
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_getSlipRate
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_getSlipRate
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_getSlipRate
|
||||
use plastic_phenopowerlaw, only: &
|
||||
plastic_phenopowerlaw_getSlipRate
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_getSlipRate
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_getSlipRate
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_getSlipRate
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_getSlipRate
|
||||
|
||||
implicit none
|
||||
|
||||
|
@ -1911,15 +1911,15 @@ subroutine constitutive_getSlipRate(nSlip,slipRate,Lp,ipc, ip, el)
|
|||
allocate(slipRate(nSlip))
|
||||
slipRate(1) = math_equivStrain33(Lp)
|
||||
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)
|
||||
call constitutive_dislotwin_getSlipRate(nSlip,slipRate,ipc, ip, el)
|
||||
call plastic_dislotwin_getSlipRate(nSlip,slipRate,ipc, ip, el)
|
||||
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)
|
||||
call constitutive_titanmod_getSlipRate(nSlip,slipRate,ipc, ip, el)
|
||||
call plastic_titanmod_getSlipRate(nSlip,slipRate,ipc, ip, el)
|
||||
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 subroutine constitutive_getSlipRate
|
||||
|
@ -1959,21 +1959,21 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
|
|||
LOCAL_DAMAGE_phaseField_ID, &
|
||||
LOCAL_THERMAL_ADIABATIC_ID, &
|
||||
LOCAL_VACANCY_generation_ID
|
||||
use constitutive_j2, only: &
|
||||
use plastic_j2, only: &
|
||||
#ifdef HDF
|
||||
constitutive_j2_postResults2,&
|
||||
plastic_j2_postResults2,&
|
||||
#endif
|
||||
constitutive_j2_postResults
|
||||
use constitutive_phenopowerlaw, only: &
|
||||
constitutive_phenopowerlaw_postResults
|
||||
use constitutive_dislotwin, only: &
|
||||
constitutive_dislotwin_postResults
|
||||
use constitutive_dislokmc, only: &
|
||||
constitutive_dislokmc_postResults
|
||||
use constitutive_titanmod, only: &
|
||||
constitutive_titanmod_postResults
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_postResults
|
||||
plastic_j2_postResults
|
||||
use plastic_phenopowerlaw, only: &
|
||||
plastic_phenopowerlaw_postResults
|
||||
use plastic_dislotwin, only: &
|
||||
plastic_dislotwin_postResults
|
||||
use plastic_dislokmc, only: &
|
||||
plastic_dislokmc_postResults
|
||||
use plastic_titanmod, only: &
|
||||
plastic_titanmod_postResults
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_postResults
|
||||
#ifdef multiphysicsOut
|
||||
use damage_isoBrittle, only: &
|
||||
damage_isoBrittle_postResults
|
||||
|
@ -2021,21 +2021,21 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
|
|||
endPos = plasticState(material_phase(ipc,ip,el))%sizePostResults
|
||||
select case (phase_plasticity(material_phase(ipc,ip,el)))
|
||||
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)
|
||||
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)
|
||||
constitutive_postResults(startPos:endPos) = &
|
||||
constitutive_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||
plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||
case (PLASTICITY_DISLOTWIN_ID)
|
||||
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)
|
||||
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)
|
||||
constitutive_postResults(startPos:endPos) = &
|
||||
constitutive_nonlocal_postResults (Tstar_v,FeArray,ip,el)
|
||||
plastic_nonlocal_postResults (Tstar_v,FeArray,ip,el)
|
||||
end select
|
||||
|
||||
#ifdef multiphysicsOut
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3991,8 +3991,8 @@ subroutine crystallite_orientations
|
|||
use lattice, only: &
|
||||
lattice_qDisorientation, &
|
||||
lattice_structure
|
||||
use constitutive_nonlocal, only: &
|
||||
constitutive_nonlocal_updateCompatibility
|
||||
use plastic_nonlocal, only: &
|
||||
plastic_nonlocal_updateCompatibility
|
||||
|
||||
|
||||
implicit none
|
||||
|
@ -4073,7 +4073,7 @@ subroutine crystallite_orientations
|
|||
|
||||
! --- 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
|
||||
enddo
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@
|
|||
!! resolving the stress on the slip systems. Will give the response of phenopowerlaw for an
|
||||
!! untextured polycrystal
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
module constitutive_j2
|
||||
module plastic_j2
|
||||
#ifdef HDF
|
||||
use hdf5, only: &
|
||||
HID_T
|
||||
|
@ -21,35 +21,35 @@ module constitutive_j2
|
|||
implicit none
|
||||
private
|
||||
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 :: &
|
||||
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 :: &
|
||||
constitutive_j2_output !< name of each post result output
|
||||
plastic_j2_output !< name of each post result output
|
||||
|
||||
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 :: &
|
||||
constitutive_j2_fTaylor, & !< Taylor factor
|
||||
constitutive_j2_tau0, & !< initial plastic stress
|
||||
constitutive_j2_gdot0, & !< reference velocity
|
||||
constitutive_j2_n, & !< Visco-plastic parameter
|
||||
plastic_j2_fTaylor, & !< Taylor factor
|
||||
plastic_j2_tau0, & !< initial plastic stress
|
||||
plastic_j2_gdot0, & !< reference velocity
|
||||
plastic_j2_n, & !< Visco-plastic parameter
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! h0 as function of h0 = A + B log (gammadot)
|
||||
constitutive_j2_h0, &
|
||||
constitutive_j2_h0_slopeLnRate, &
|
||||
constitutive_j2_tausat, & !< final plastic stress
|
||||
constitutive_j2_a, &
|
||||
constitutive_j2_aTolResistance, &
|
||||
constitutive_j2_aTolShear, &
|
||||
plastic_j2_h0, &
|
||||
plastic_j2_h0_slopeLnRate, &
|
||||
plastic_j2_tausat, & !< final plastic stress
|
||||
plastic_j2_a, &
|
||||
plastic_j2_aTolResistance, &
|
||||
plastic_j2_aTolShear, &
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! 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
|
||||
constitutive_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
|
||||
constitutive_j2_tausat_SinhFitD !< fitting parameter for normalized strain rate vs. stress function
|
||||
plastic_j2_tausat_SinhFitA, & !< fitting parameter for normalized strain rate vs. stress function
|
||||
plastic_j2_tausat_SinhFitB, & !< fitting parameter for normalized strain rate vs. stress function
|
||||
plastic_j2_tausat_SinhFitC, & !< 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)
|
||||
enumerator :: undefined_ID, &
|
||||
|
@ -57,27 +57,27 @@ module constitutive_j2
|
|||
strainrate_ID
|
||||
end enum
|
||||
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
|
||||
type constitutive_j2_tOutput
|
||||
type plastic_j2_tOutput
|
||||
real(pReal), dimension(:), allocatable, private :: &
|
||||
flowstress, &
|
||||
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))
|
||||
end type constitutive_j2_tOutput
|
||||
type(constitutive_j2_tOutput), allocatable, dimension(:) :: constitutive_j2_Output2
|
||||
end type plastic_j2_tOutput
|
||||
type(plastic_j2_tOutput), allocatable, dimension(:) :: plastic_j2_Output2
|
||||
integer(HID_T), allocatable, dimension(:) :: outID
|
||||
#endif
|
||||
|
||||
|
||||
public :: &
|
||||
constitutive_j2_init, &
|
||||
constitutive_j2_LpAndItsTangent, &
|
||||
constitutive_j2_dotState, &
|
||||
constitutive_J2_getAccumulatedSlip, &
|
||||
constitutive_j2_postResults
|
||||
plastic_j2_init, &
|
||||
plastic_j2_LpAndItsTangent, &
|
||||
plastic_j2_dotState, &
|
||||
plastic_j2_getAccumulatedSlip, &
|
||||
plastic_j2_postResults
|
||||
|
||||
contains
|
||||
|
||||
|
@ -86,7 +86,7 @@ contains
|
|||
!> @brief module initialization
|
||||
!> @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)
|
||||
#ifdef HDF
|
||||
use hdf5
|
||||
|
@ -169,30 +169,30 @@ subroutine constitutive_j2_init(fileUnit)
|
|||
write(6,'(a16,1x,i5,/)') '# instances:',maxNinstance
|
||||
|
||||
#ifdef HDF
|
||||
allocate(constitutive_j2_Output2(maxNinstance))
|
||||
allocate(plastic_j2_Output2(maxNinstance))
|
||||
allocate(outID(maxNinstance))
|
||||
#endif
|
||||
|
||||
allocate(constitutive_j2_sizePostResults(maxNinstance), source=0_pInt)
|
||||
allocate(constitutive_j2_sizePostResult(maxval(phase_Noutput), maxNinstance),source=0_pInt)
|
||||
allocate(constitutive_j2_output(maxval(phase_Noutput), maxNinstance))
|
||||
constitutive_j2_output = ''
|
||||
allocate(constitutive_j2_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
||||
allocate(constitutive_j2_Noutput(maxNinstance), source=0_pInt)
|
||||
allocate(constitutive_j2_fTaylor(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tau0(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_gdot0(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_n(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_h0(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_h0_slopeLnRate(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tausat(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_a(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_aTolResistance(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_aTolShear (maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tausat_SinhFitA(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tausat_SinhFitB(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tausat_SinhFitC(maxNinstance), source=0.0_pReal)
|
||||
allocate(constitutive_j2_tausat_SinhFitD(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_sizePostResults(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_j2_sizePostResult(maxval(phase_Noutput), maxNinstance),source=0_pInt)
|
||||
allocate(plastic_j2_output(maxval(phase_Noutput), maxNinstance))
|
||||
plastic_j2_output = ''
|
||||
allocate(plastic_j2_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
||||
allocate(plastic_j2_Noutput(maxNinstance), source=0_pInt)
|
||||
allocate(plastic_j2_fTaylor(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tau0(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_gdot0(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_n(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_h0(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_h0_slopeLnRate(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tausat(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_a(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_aTolResistance(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_aTolShear (maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tausat_SinhFitA(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tausat_SinhFitB(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tausat_SinhFitC(maxNinstance), source=0.0_pReal)
|
||||
allocate(plastic_j2_tausat_SinhFitD(maxNinstance), source=0.0_pReal)
|
||||
|
||||
rewind(fileUnit)
|
||||
phase = 0_pInt
|
||||
|
@ -226,70 +226,70 @@ subroutine constitutive_j2_init(fileUnit)
|
|||
case ('(output)')
|
||||
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
|
||||
case ('flowstress')
|
||||
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
|
||||
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = flowstress_ID
|
||||
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
|
||||
plastic_j2_Noutput(instance) = plastic_j2_Noutput(instance) + 1_pInt
|
||||
plastic_j2_outputID(plastic_j2_Noutput(instance),instance) = flowstress_ID
|
||||
plastic_j2_output(plastic_j2_Noutput(instance),instance) = &
|
||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
#ifdef HDF
|
||||
call HDF5_addScalarDataset(outID(instance),myConstituents,'flowstress','MPa')
|
||||
allocate(constitutive_j2_Output2(instance)%flowstress(myConstituents))
|
||||
constitutive_j2_Output2(instance)%flowstressActive = .true.
|
||||
allocate(plastic_j2_Output2(instance)%flowstress(myConstituents))
|
||||
plastic_j2_Output2(instance)%flowstressActive = .true.
|
||||
#endif
|
||||
case ('strainrate')
|
||||
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
|
||||
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = strainrate_ID
|
||||
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
|
||||
plastic_j2_Noutput(instance) = plastic_j2_Noutput(instance) + 1_pInt
|
||||
plastic_j2_outputID(plastic_j2_Noutput(instance),instance) = strainrate_ID
|
||||
plastic_j2_output(plastic_j2_Noutput(instance),instance) = &
|
||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
#ifdef HDF
|
||||
call HDF5_addScalarDataset(outID(instance),myConstituents,'strainrate','1/s')
|
||||
allocate(constitutive_j2_Output2(instance)%strainrate(myConstituents))
|
||||
constitutive_j2_Output2(instance)%strainrateActive = .true.
|
||||
allocate(plastic_j2_Output2(instance)%strainrate(myConstituents))
|
||||
plastic_j2_Output2(instance)%strainrateActive = .true.
|
||||
#endif
|
||||
case default
|
||||
|
||||
end select
|
||||
case ('tau0')
|
||||
constitutive_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_tau0(instance) < 0.0_pReal) &
|
||||
plastic_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_tau0(instance) < 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
case ('gdot0')
|
||||
constitutive_j2_gdot0(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_gdot0(instance) <= 0.0_pReal) &
|
||||
plastic_j2_gdot0(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_gdot0(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
case ('n')
|
||||
constitutive_j2_n(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_n(instance) <= 0.0_pReal) &
|
||||
plastic_j2_n(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_n(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
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')
|
||||
constitutive_j2_h0_slopeLnRate(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
plastic_j2_h0_slopeLnRate(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat')
|
||||
constitutive_j2_tausat(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_tausat(instance) <= 0.0_pReal) &
|
||||
plastic_j2_tausat(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_tausat(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
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')
|
||||
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')
|
||||
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')
|
||||
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')
|
||||
constitutive_j2_a(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_a(instance) <= 0.0_pReal) &
|
||||
plastic_j2_a(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_a(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
case ('taylorfactor')
|
||||
constitutive_j2_fTaylor(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_fTaylor(instance) <= 0.0_pReal) &
|
||||
plastic_j2_fTaylor(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_fTaylor(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
case ('atol_resistance')
|
||||
constitutive_j2_aTolResistance(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (constitutive_j2_aTolResistance(instance) <= 0.0_pReal) &
|
||||
plastic_j2_aTolResistance(instance) = IO_floatValue(line,positions,2_pInt)
|
||||
if (plastic_j2_aTolResistance(instance) <= 0.0_pReal) &
|
||||
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
|
||||
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
|
||||
|
||||
|
@ -303,22 +303,22 @@ subroutine constitutive_j2_init(fileUnit)
|
|||
instance = phase_plasticityInstance(phase)
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! sanity checks
|
||||
if (constitutive_j2_aTolShear(instance) <= 0.0_pReal) &
|
||||
constitutive_j2_aTolShear(instance) = 1.0e-6_pReal ! default absolute tolerance 1e-6
|
||||
if (plastic_j2_aTolShear(instance) <= 0.0_pReal) &
|
||||
plastic_j2_aTolShear(instance) = 1.0e-6_pReal ! default absolute tolerance 1e-6
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! Determine size of postResults array
|
||||
outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance)
|
||||
select case(constitutive_j2_outputID(o,instance))
|
||||
outputsLoop: do o = 1_pInt,plastic_j2_Noutput(instance)
|
||||
select case(plastic_j2_outputID(o,instance))
|
||||
case(flowstress_ID,strainrate_ID)
|
||||
mySize = 1_pInt
|
||||
case default
|
||||
end select
|
||||
|
||||
outputFound: if (mySize > 0_pInt) then
|
||||
constitutive_j2_sizePostResult(o,instance) = mySize
|
||||
constitutive_j2_sizePostResults(instance) = &
|
||||
constitutive_j2_sizePostResults(instance) + mySize
|
||||
plastic_j2_sizePostResult(o,instance) = mySize
|
||||
plastic_j2_sizePostResults(instance) = &
|
||||
plastic_j2_sizePostResults(instance) + mySize
|
||||
endif outputFound
|
||||
enddo outputsLoop
|
||||
|
||||
|
@ -328,12 +328,12 @@ subroutine constitutive_j2_init(fileUnit)
|
|||
sizeDotState = sizeState
|
||||
plasticState(phase)%sizeState = sizeState
|
||||
plasticState(phase)%sizeDotState = sizeDotState
|
||||
plasticState(phase)%sizePostResults = constitutive_j2_sizePostResults(instance)
|
||||
plasticState(phase)%sizePostResults = plastic_j2_sizePostResults(instance)
|
||||
allocate(plasticState(phase)%aTolState ( sizeState))
|
||||
plasticState(phase)%aTolState(1) = constitutive_j2_aTolResistance(instance)
|
||||
plasticState(phase)%aTolState(2) = constitutive_j2_aTolShear(instance)
|
||||
plasticState(phase)%aTolState(1) = plastic_j2_aTolResistance(instance)
|
||||
plasticState(phase)%aTolState(2) = plastic_j2_aTolShear(instance)
|
||||
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
|
||||
allocate(plasticState(phase)%partionedState0 ( 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
|
||||
enddo initializeInstances
|
||||
|
||||
end subroutine constitutive_j2_init
|
||||
end subroutine plastic_j2_init
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @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: &
|
||||
math_mul6x6, &
|
||||
math_Mandel6to33, &
|
||||
|
@ -412,32 +412,32 @@ subroutine constitutive_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,slipDamage,ip
|
|||
Lp = 0.0_pReal
|
||||
dLp_dTstar99 = 0.0_pReal
|
||||
else
|
||||
gamma_dot = constitutive_j2_gdot0(instance) &
|
||||
* (sqrt(1.5_pReal) * norm_Tstar_dev / (slipDamage(1)*constitutive_j2_fTaylor(instance) * &
|
||||
gamma_dot = plastic_j2_gdot0(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)))) &
|
||||
**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
|
||||
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
|
||||
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
|
||||
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_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)
|
||||
end if
|
||||
end subroutine constitutive_j2_LpAndItsTangent
|
||||
end subroutine plastic_j2_LpAndItsTangent
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @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: &
|
||||
math_mul6x6
|
||||
use mesh, only: &
|
||||
|
@ -481,31 +481,31 @@ subroutine constitutive_j2_dotState(Tstar_v,ipc,ip,el)
|
|||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! 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
|
||||
if (abs(gamma_dot) > 1e-12_pReal) then
|
||||
if (constitutive_j2_tausat_SinhFitA(instance) == 0.0_pReal) then
|
||||
saturation = constitutive_j2_tausat(instance)
|
||||
if (plastic_j2_tausat_SinhFitA(instance) == 0.0_pReal) then
|
||||
saturation = plastic_j2_tausat(instance)
|
||||
else
|
||||
saturation = ( constitutive_j2_tausat(instance) &
|
||||
+ ( log( ( gamma_dot / constitutive_j2_tausat_SinhFitA(instance)&
|
||||
)**(1.0_pReal / constitutive_j2_tausat_SinhFitD(instance))&
|
||||
+ sqrt( ( gamma_dot / constitutive_j2_tausat_SinhFitA(instance) &
|
||||
)**(2.0_pReal / constitutive_j2_tausat_SinhFitD(instance)) &
|
||||
saturation = ( plastic_j2_tausat(instance) &
|
||||
+ ( log( ( gamma_dot / plastic_j2_tausat_SinhFitA(instance)&
|
||||
)**(1.0_pReal / plastic_j2_tausat_SinhFitD(instance))&
|
||||
+ sqrt( ( gamma_dot / plastic_j2_tausat_SinhFitA(instance) &
|
||||
)**(2.0_pReal / plastic_j2_tausat_SinhFitD(instance)) &
|
||||
+ 1.0_pReal ) &
|
||||
) & ! asinh(K) = ln(K + sqrt(K^2 +1))
|
||||
)**(1.0_pReal / constitutive_j2_tausat_SinhFitC(instance)) &
|
||||
/ ( constitutive_j2_tausat_SinhFitB(instance) &
|
||||
* (gamma_dot / constitutive_j2_gdot0(instance))**(1.0_pReal / constitutive_j2_n(instance)) &
|
||||
)**(1.0_pReal / plastic_j2_tausat_SinhFitC(instance)) &
|
||||
/ ( plastic_j2_tausat_SinhFitB(instance) &
|
||||
* (gamma_dot / plastic_j2_gdot0(instance))**(1.0_pReal / plastic_j2_n(instance)) &
|
||||
) &
|
||||
)
|
||||
endif
|
||||
hardening = ( constitutive_j2_h0(instance) + constitutive_j2_h0_slopeLnRate(instance) * log(gamma_dot) ) &
|
||||
* abs( 1.0_pReal - plasticState(ph)%state(1,of)/saturation )**constitutive_j2_a(instance) &
|
||||
hardening = ( plastic_j2_h0(instance) + plastic_j2_h0_slopeLnRate(instance) * log(gamma_dot) ) &
|
||||
* 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)
|
||||
else
|
||||
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(2,of) = gamma_dot
|
||||
|
||||
end subroutine constitutive_j2_dotState
|
||||
end subroutine plastic_j2_dotState
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @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: &
|
||||
mappingConstitutive, &
|
||||
plasticState, &
|
||||
|
@ -549,13 +549,13 @@ subroutine constitutive_J2_getAccumulatedSlip(nSlip,accumulatedSlip,ipc, ip, el)
|
|||
allocate(accumulatedSlip(nSlip))
|
||||
accumulatedSlip(1) = plasticState(phase)%state(2,constituent)
|
||||
|
||||
end subroutine constitutive_J2_getAccumulatedSlip
|
||||
end subroutine plastic_j2_getAccumulatedSlip
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!> @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: &
|
||||
math_mul6x6
|
||||
use mesh, only: &
|
||||
|
@ -576,8 +576,8 @@ function constitutive_j2_postResults(Tstar_v,ipc,ip,el)
|
|||
ipc, & !< component-ID of integration point
|
||||
ip, & !< integration point
|
||||
el !< element
|
||||
real(pReal), dimension(constitutive_j2_sizePostResults(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||
constitutive_j2_postResults
|
||||
real(pReal), dimension(plastic_j2_sizePostResults(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||
plastic_j2_postResults
|
||||
|
||||
real(pReal), dimension(6) :: &
|
||||
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))
|
||||
|
||||
c = 0_pInt
|
||||
constitutive_j2_postResults = 0.0_pReal
|
||||
plastic_j2_postResults = 0.0_pReal
|
||||
|
||||
outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance)
|
||||
select case(constitutive_j2_outputID(o,instance))
|
||||
outputsLoop: do o = 1_pInt,plastic_j2_Noutput(instance)
|
||||
select case(plastic_j2_outputID(o,instance))
|
||||
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
|
||||
case (strainrate_ID)
|
||||
constitutive_j2_postResults(c+1_pInt) = &
|
||||
constitutive_j2_gdot0(instance) * ( sqrt(1.5_pReal) * norm_Tstar_dev &
|
||||
plastic_j2_postResults(c+1_pInt) = &
|
||||
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
|
||||
end select
|
||||
enddo outputsLoop
|
||||
|
||||
end function constitutive_j2_postResults
|
||||
end function plastic_j2_postResults
|
||||
|
||||
|
||||
end module constitutive_j2
|
||||
end module plastic_j2
|
|
@ -5,20 +5,20 @@
|
|||
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
|
||||
!> @brief material subroutine for purely elastic material
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
module constitutive_none
|
||||
module plastic_none
|
||||
use prec, only: &
|
||||
pInt
|
||||
|
||||
implicit none
|
||||
private
|
||||
integer(pInt), dimension(:), allocatable, public, protected :: &
|
||||
constitutive_none_sizePostResults
|
||||
plastic_none_sizePostResults
|
||||
|
||||
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 :: &
|
||||
constitutive_none_init
|
||||
plastic_none_init
|
||||
|
||||
contains
|
||||
|
||||
|
@ -27,7 +27,7 @@ contains
|
|||
!> @brief module initialization
|
||||
!> @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 debug, only: &
|
||||
debug_level, &
|
||||
|
@ -98,8 +98,8 @@ subroutine constitutive_none_init
|
|||
endif
|
||||
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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue