add pheno+ module in
This commit is contained in:
parent
8fac635c15
commit
d6abc00218
|
@ -318,7 +318,7 @@ KINEMATICS_FILES = \
|
||||||
|
|
||||||
PLASTIC_FILES = \
|
PLASTIC_FILES = \
|
||||||
plastic_dislotwin.o plastic_disloUCLA.o plastic_disloKMC.o plastic_j2.o plastic_phenopowerlaw.o \
|
plastic_dislotwin.o plastic_disloUCLA.o plastic_disloKMC.o plastic_j2.o plastic_phenopowerlaw.o \
|
||||||
plastic_titanmod.o plastic_nonlocal.o plastic_none.o
|
plastic_titanmod.o plastic_nonlocal.o plastic_none.o plastic_phenoplus.o
|
||||||
|
|
||||||
THERMAL_FILES = \
|
THERMAL_FILES = \
|
||||||
thermal_isothermal.o thermal_adiabatic.o thermal_conduction.o
|
thermal_isothermal.o thermal_adiabatic.o thermal_conduction.o
|
||||||
|
@ -580,6 +580,9 @@ plastic_dislotwin.o: plastic_dislotwin.f90 \
|
||||||
plastic_phenopowerlaw.o: plastic_phenopowerlaw.f90 \
|
plastic_phenopowerlaw.o: plastic_phenopowerlaw.f90 \
|
||||||
lattice.o
|
lattice.o
|
||||||
|
|
||||||
|
plastic_phenoplus.o: plastic_phenoplus.f90 \
|
||||||
|
lattice.o
|
||||||
|
|
||||||
plastic_j2.o: plastic_j2.f90 \
|
plastic_j2.o: plastic_j2.f90 \
|
||||||
lattice.o
|
lattice.o
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ subroutine constitutive_init()
|
||||||
PLASTICITY_none_ID, &
|
PLASTICITY_none_ID, &
|
||||||
PLASTICITY_j2_ID, &
|
PLASTICITY_j2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
|
PLASTICITY_phenoplus_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
PLASTICITY_dislokmc_ID, &
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_disloucla_ID, &
|
PLASTICITY_disloucla_ID, &
|
||||||
|
@ -101,6 +102,7 @@ subroutine constitutive_init()
|
||||||
PLASTICITY_NONE_label, &
|
PLASTICITY_NONE_label, &
|
||||||
PLASTICITY_J2_label, &
|
PLASTICITY_J2_label, &
|
||||||
PLASTICITY_PHENOPOWERLAW_label, &
|
PLASTICITY_PHENOPOWERLAW_label, &
|
||||||
|
PLASTICITY_PHENOPLUS_label, &
|
||||||
PLASTICITY_DISLOTWIN_label, &
|
PLASTICITY_DISLOTWIN_label, &
|
||||||
PLASTICITY_DISLOKMC_label, &
|
PLASTICITY_DISLOKMC_label, &
|
||||||
PLASTICITY_DISLOUCLA_label, &
|
PLASTICITY_DISLOUCLA_label, &
|
||||||
|
@ -121,6 +123,7 @@ subroutine constitutive_init()
|
||||||
use plastic_none
|
use plastic_none
|
||||||
use plastic_j2
|
use plastic_j2
|
||||||
use plastic_phenopowerlaw
|
use plastic_phenopowerlaw
|
||||||
|
use plastic_phenoplus
|
||||||
use plastic_dislotwin
|
use plastic_dislotwin
|
||||||
use plastic_dislokmc
|
use plastic_dislokmc
|
||||||
use plastic_disloucla
|
use plastic_disloucla
|
||||||
|
@ -163,6 +166,7 @@ subroutine constitutive_init()
|
||||||
if (any(phase_plasticity == PLASTICITY_NONE_ID)) call plastic_none_init
|
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_J2_ID)) call plastic_j2_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call plastic_phenopowerlaw_init(FILEUNIT)
|
||||||
|
if (any(phase_plasticity == PLASTICITY_PHENOPLUS_ID)) call plastic_phenoplus_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call plastic_dislotwin_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call plastic_dislokmc_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOKMC_ID)) call plastic_dislokmc_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOUCLA_ID)) call plastic_disloucla_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOUCLA_ID)) call plastic_disloucla_init(FILEUNIT)
|
||||||
|
@ -230,6 +234,11 @@ subroutine constitutive_init()
|
||||||
thisNoutput => plastic_phenopowerlaw_Noutput
|
thisNoutput => plastic_phenopowerlaw_Noutput
|
||||||
thisOutput => plastic_phenopowerlaw_output
|
thisOutput => plastic_phenopowerlaw_output
|
||||||
thisSize => plastic_phenopowerlaw_sizePostResult
|
thisSize => plastic_phenopowerlaw_sizePostResult
|
||||||
|
case (PLASTICITY_PHENOPLUS_ID)
|
||||||
|
outputName = PLASTICITY_PHENOPLUS_label
|
||||||
|
thisNoutput => plastic_phenoplus_Noutput
|
||||||
|
thisOutput => plastic_phenoplus_output
|
||||||
|
thisSize => plastic_phenoplus_sizePostResult
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
outputName = PLASTICITY_DISLOTWIN_label
|
outputName = PLASTICITY_DISLOTWIN_label
|
||||||
thisNoutput => plastic_dislotwin_Noutput
|
thisNoutput => plastic_dislotwin_Noutput
|
||||||
|
@ -452,7 +461,7 @@ end function constitutive_homogenizedC
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calls microstructure function of the different constitutive models
|
!> @brief calls microstructure function of the different constitutive models
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine constitutive_microstructure(Fe, Fp, ipc, ip, el)
|
subroutine constitutive_microstructure(orientations, Fe, Fp, ipc, ip, el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pReal
|
pReal
|
||||||
use material, only: &
|
use material, only: &
|
||||||
|
@ -465,7 +474,8 @@ subroutine constitutive_microstructure(Fe, Fp, ipc, ip, el)
|
||||||
PLASTICITY_dislokmc_ID, &
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_disloucla_ID, &
|
PLASTICITY_disloucla_ID, &
|
||||||
PLASTICITY_titanmod_ID, &
|
PLASTICITY_titanmod_ID, &
|
||||||
PLASTICITY_nonlocal_ID
|
PLASTICITY_nonlocal_ID, &
|
||||||
|
PLASTICITY_phenoplus_ID
|
||||||
use plastic_titanmod, only: &
|
use plastic_titanmod, only: &
|
||||||
plastic_titanmod_microstructure
|
plastic_titanmod_microstructure
|
||||||
use plastic_nonlocal, only: &
|
use plastic_nonlocal, only: &
|
||||||
|
@ -476,6 +486,8 @@ subroutine constitutive_microstructure(Fe, Fp, ipc, ip, el)
|
||||||
plastic_dislokmc_microstructure
|
plastic_dislokmc_microstructure
|
||||||
use plastic_disloucla, only: &
|
use plastic_disloucla, only: &
|
||||||
plastic_disloucla_microstructure
|
plastic_disloucla_microstructure
|
||||||
|
use plastic_phenoplus, only: &
|
||||||
|
plastic_phenoplus_microstructure
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -487,6 +499,8 @@ subroutine constitutive_microstructure(Fe, Fp, ipc, ip, el)
|
||||||
Fp !< plastic deformation gradient
|
Fp !< plastic deformation gradient
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, homog, offset
|
phase, homog, offset
|
||||||
|
real(pReal), intent(in), dimension(:,:,:,:) :: &
|
||||||
|
orientations !< crystal orientation in quaternions
|
||||||
|
|
||||||
phase = material_phase(ipc,ip,el)
|
phase = material_phase(ipc,ip,el)
|
||||||
homog = material_homog( ip,el)
|
homog = material_homog( ip,el)
|
||||||
|
@ -503,6 +517,8 @@ subroutine constitutive_microstructure(Fe, Fp, ipc, ip, el)
|
||||||
call plastic_titanmod_microstructure (temperature(homog)%p(offset),ipc,ip,el)
|
call plastic_titanmod_microstructure (temperature(homog)%p(offset),ipc,ip,el)
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
call plastic_nonlocal_microstructure (Fe,Fp,ip,el)
|
call plastic_nonlocal_microstructure (Fe,Fp,ip,el)
|
||||||
|
case (PLASTICITY_PHENOPLUS_ID)
|
||||||
|
call plastic_phenoplus_microstructure(orientations,ipc,ip,el)
|
||||||
|
|
||||||
end select
|
end select
|
||||||
|
|
||||||
|
@ -530,6 +546,7 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar3333, dLp_dFi3333, Tstar_v
|
||||||
PLASTICITY_NONE_ID, &
|
PLASTICITY_NONE_ID, &
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
|
PLASTICITY_PHENOPLUS_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
PLASTICITY_DISLOKMC_ID, &
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_DISLOUCLA_ID, &
|
PLASTICITY_DISLOUCLA_ID, &
|
||||||
|
@ -539,6 +556,8 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar3333, dLp_dFi3333, Tstar_v
|
||||||
plastic_j2_LpAndItsTangent
|
plastic_j2_LpAndItsTangent
|
||||||
use plastic_phenopowerlaw, only: &
|
use plastic_phenopowerlaw, only: &
|
||||||
plastic_phenopowerlaw_LpAndItsTangent
|
plastic_phenopowerlaw_LpAndItsTangent
|
||||||
|
use plastic_phenoplus, only: &
|
||||||
|
plastic_phenoplus_LpAndItsTangent
|
||||||
use plastic_dislotwin, only: &
|
use plastic_dislotwin, only: &
|
||||||
plastic_dislotwin_LpAndItsTangent
|
plastic_dislotwin_LpAndItsTangent
|
||||||
use plastic_dislokmc, only: &
|
use plastic_dislokmc, only: &
|
||||||
|
@ -587,6 +606,8 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dTstar3333, dLp_dFi3333, Tstar_v
|
||||||
call plastic_j2_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v,ipc,ip,el)
|
call plastic_j2_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_PHENOPOWERLAW_ID)
|
case (PLASTICITY_PHENOPOWERLAW_ID)
|
||||||
call plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v,ipc,ip,el)
|
call plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v,ipc,ip,el)
|
||||||
|
case (PLASTICITY_PHENOPLUS_ID)
|
||||||
|
call plastic_phenoplus_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_NONLOCAL_ID)
|
case (PLASTICITY_NONLOCAL_ID)
|
||||||
call plastic_nonlocal_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
call plastic_nonlocal_LpAndItsTangent(Lp,dLp_dMstar,Mstar_v, &
|
||||||
temperature(homog)%p(offset), &
|
temperature(homog)%p(offset), &
|
||||||
|
@ -912,6 +933,7 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, subdt, subfra
|
||||||
PLASTICITY_none_ID, &
|
PLASTICITY_none_ID, &
|
||||||
PLASTICITY_j2_ID, &
|
PLASTICITY_j2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
|
PLASTICITY_phenoplus_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
PLASTICITY_dislokmc_ID, &
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_disloucla_ID, &
|
PLASTICITY_disloucla_ID, &
|
||||||
|
@ -925,6 +947,8 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, subdt, subfra
|
||||||
plastic_j2_dotState
|
plastic_j2_dotState
|
||||||
use plastic_phenopowerlaw, only: &
|
use plastic_phenopowerlaw, only: &
|
||||||
plastic_phenopowerlaw_dotState
|
plastic_phenopowerlaw_dotState
|
||||||
|
use plastic_phenoplus, only: &
|
||||||
|
plastic_phenoplus_dotState
|
||||||
use plastic_dislotwin, only: &
|
use plastic_dislotwin, only: &
|
||||||
plastic_dislotwin_dotState
|
plastic_dislotwin_dotState
|
||||||
use plastic_dislokmc, only: &
|
use plastic_dislokmc, only: &
|
||||||
|
@ -976,6 +1000,8 @@ subroutine constitutive_collectDotState(Tstar_v, FeArray, FpArray, subdt, subfra
|
||||||
call plastic_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 plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
call plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
|
case (PLASTICITY_PHENOPLUS_ID)
|
||||||
|
call plastic_phenoplus_dotState(Tstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
call plastic_dislotwin_dotState (Tstar_v,temperature(homog)%p(offset), &
|
call plastic_dislotwin_dotState (Tstar_v,temperature(homog)%p(offset), &
|
||||||
ipc,ip,el)
|
ipc,ip,el)
|
||||||
|
@ -1124,6 +1150,7 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
|
||||||
PLASTICITY_NONE_ID, &
|
PLASTICITY_NONE_ID, &
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_PHENOPOWERLAW_ID, &
|
PLASTICITY_PHENOPOWERLAW_ID, &
|
||||||
|
PLASTICITY_PHENOPLUS_ID, &
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
PLASTICITY_DISLOKMC_ID, &
|
PLASTICITY_DISLOKMC_ID, &
|
||||||
PLASTICITY_DISLOUCLA_ID, &
|
PLASTICITY_DISLOUCLA_ID, &
|
||||||
|
@ -1140,6 +1167,8 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
|
||||||
plastic_j2_postResults
|
plastic_j2_postResults
|
||||||
use plastic_phenopowerlaw, only: &
|
use plastic_phenopowerlaw, only: &
|
||||||
plastic_phenopowerlaw_postResults
|
plastic_phenopowerlaw_postResults
|
||||||
|
use plastic_phenoplus, only: &
|
||||||
|
plastic_phenoplus_postResults
|
||||||
use plastic_dislotwin, only: &
|
use plastic_dislotwin, only: &
|
||||||
plastic_dislotwin_postResults
|
plastic_dislotwin_postResults
|
||||||
use plastic_dislokmc, only: &
|
use plastic_dislokmc, only: &
|
||||||
|
@ -1190,6 +1219,9 @@ function constitutive_postResults(Tstar_v, FeArray, ipc, ip, el)
|
||||||
case (PLASTICITY_PHENOPOWERLAW_ID)
|
case (PLASTICITY_PHENOPOWERLAW_ID)
|
||||||
constitutive_postResults(startPos:endPos) = &
|
constitutive_postResults(startPos:endPos) = &
|
||||||
plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
|
case (PLASTICITY_PHENOPLUS_ID)
|
||||||
|
constitutive_postResults(startPos:endPos) = &
|
||||||
|
plastic_phenoplus_postResults(Tstar_v,ipc,ip,el)
|
||||||
case (PLASTICITY_DISLOTWIN_ID)
|
case (PLASTICITY_DISLOTWIN_ID)
|
||||||
constitutive_postResults(startPos:endPos) = &
|
constitutive_postResults(startPos:endPos) = &
|
||||||
plastic_dislotwin_postResults(Tstar_v,temperature(homog)%p(offset),ipc,ip,el)
|
plastic_dislotwin_postResults(Tstar_v,temperature(homog)%p(offset),ipc,ip,el)
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH
|
!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH
|
||||||
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
|
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
|
||||||
!> @author Christoph Kords, Max-Planck-Institut für Eisenforschung GmbH
|
!> @author Christoph Kords, Max-Planck-Institut für Eisenforschung GmbH
|
||||||
|
!> @author Chen Zhang, Michigan State University
|
||||||
!> @brief crystallite state integration functions and reporting of results
|
!> @brief crystallite state integration functions and reporting of results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -437,13 +438,17 @@ subroutine crystallite_init
|
||||||
call crystallite_orientations()
|
call crystallite_orientations()
|
||||||
crystallite_orientation0 = crystallite_orientation ! store initial orientations for calculation of grain rotations
|
crystallite_orientation0 = crystallite_orientation ! store initial orientations for calculation of grain rotations
|
||||||
|
|
||||||
|
!***some debugging statement here
|
||||||
|
!write(6,*) 'CZ: before crystallite initialization'
|
||||||
|
|
||||||
!$OMP PARALLEL DO PRIVATE(myNgrains)
|
!$OMP PARALLEL DO PRIVATE(myNgrains)
|
||||||
do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
||||||
myNgrains = homogenization_Ngrains(mesh_element(3,e))
|
myNgrains = homogenization_Ngrains(mesh_element(3,e))
|
||||||
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e)
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e)
|
||||||
do g = 1_pInt,myNgrains
|
do g = 1_pInt,myNgrains
|
||||||
|
!***dirty way to pass orientation to constitutive module
|
||||||
call constitutive_microstructure( &
|
call constitutive_microstructure( &
|
||||||
|
crystallite_orientation, &
|
||||||
crystallite_Fe(1:3,1:3,g,i,e), &
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g,i,e) ! update dependent state variables to be consistent with basic states
|
g,i,e) ! update dependent state variables to be consistent with basic states
|
||||||
|
@ -452,6 +457,9 @@ subroutine crystallite_init
|
||||||
enddo
|
enddo
|
||||||
!$OMP END PARALLEL DO
|
!$OMP END PARALLEL DO
|
||||||
|
|
||||||
|
!***some debugging statement here
|
||||||
|
!write(6,*) 'CZ: after crystallite initialization'
|
||||||
|
|
||||||
call crystallite_stressAndItsTangent(.true.) ! request elastic answers
|
call crystallite_stressAndItsTangent(.true.) ! request elastic answers
|
||||||
crystallite_fallbackdPdF = crystallite_dPdF ! use initial elastic stiffness as fallback
|
crystallite_fallbackdPdF = crystallite_dPdF ! use initial elastic stiffness as fallback
|
||||||
|
|
||||||
|
@ -1729,7 +1737,9 @@ subroutine crystallite_integrateStateRK4()
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e)) &
|
if (crystallite_todo(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientation information
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
@ -2054,7 +2064,9 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e)) &
|
if (crystallite_todo(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientations to constitutive_microstructure
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
@ -2272,7 +2284,9 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e)) &
|
if (crystallite_todo(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientations to constitutive_microstructure
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
@ -2505,7 +2519,9 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e)) &
|
if (crystallite_todo(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientations to constitutive_microstructure
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
@ -2847,7 +2863,9 @@ eIter = FEsolving_execElem(1:2)
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) &
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientations to constitutive_microstructure
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
@ -3090,7 +3108,9 @@ subroutine crystallite_integrateStateFPI()
|
||||||
!$OMP DO PRIVATE(p,c)
|
!$OMP DO PRIVATE(p,c)
|
||||||
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
do e = eIter(1),eIter(2); do i = iIter(1,e),iIter(2,e); do g = gIter(1,e),gIter(2,e) ! iterate over elements, ips and grains
|
||||||
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) &
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) &
|
||||||
call constitutive_microstructure(crystallite_Fe(1:3,1:3,g,i,e), &
|
!***dirty way to pass orientations to constitutive_micrsotructure
|
||||||
|
call constitutive_microstructure(crystallite_orientation, &
|
||||||
|
crystallite_Fe(1:3,1:3,g,i,e), &
|
||||||
crystallite_Fp(1:3,1:3,g,i,e), &
|
crystallite_Fp(1:3,1:3,g,i,e), &
|
||||||
g, i, e) ! update dependent state variables to be consistent with basic states
|
g, i, e) ! update dependent state variables to be consistent with basic states
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = mappingConstitutive(2,g,i,e)
|
||||||
|
|
|
@ -27,6 +27,7 @@ module material
|
||||||
PLASTICITY_none_label = 'none', &
|
PLASTICITY_none_label = 'none', &
|
||||||
PLASTICITY_j2_label = 'j2', &
|
PLASTICITY_j2_label = 'j2', &
|
||||||
PLASTICITY_phenopowerlaw_label = 'phenopowerlaw', &
|
PLASTICITY_phenopowerlaw_label = 'phenopowerlaw', &
|
||||||
|
PLASTICITY_phenoplus_label = 'phenoplus', &
|
||||||
PLASTICITY_dislotwin_label = 'dislotwin', &
|
PLASTICITY_dislotwin_label = 'dislotwin', &
|
||||||
PLASTICITY_dislokmc_label = 'dislokmc', &
|
PLASTICITY_dislokmc_label = 'dislokmc', &
|
||||||
PLASTICITY_disloucla_label = 'disloucla', &
|
PLASTICITY_disloucla_label = 'disloucla', &
|
||||||
|
@ -76,6 +77,7 @@ module material
|
||||||
PLASTICITY_none_ID, &
|
PLASTICITY_none_ID, &
|
||||||
PLASTICITY_j2_ID, &
|
PLASTICITY_j2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
|
PLASTICITY_phenoplus_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
PLASTICITY_dislokmc_ID, &
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_disloucla_ID, &
|
PLASTICITY_disloucla_ID, &
|
||||||
|
@ -313,6 +315,7 @@ module material
|
||||||
PLASTICITY_none_ID, &
|
PLASTICITY_none_ID, &
|
||||||
PLASTICITY_J2_ID, &
|
PLASTICITY_J2_ID, &
|
||||||
PLASTICITY_phenopowerlaw_ID, &
|
PLASTICITY_phenopowerlaw_ID, &
|
||||||
|
PLASTICITY_phenoplus_ID, &
|
||||||
PLASTICITY_dislotwin_ID, &
|
PLASTICITY_dislotwin_ID, &
|
||||||
PLASTICITY_dislokmc_ID, &
|
PLASTICITY_dislokmc_ID, &
|
||||||
PLASTICITY_disloucla_ID, &
|
PLASTICITY_disloucla_ID, &
|
||||||
|
@ -981,6 +984,8 @@ subroutine material_parsePhase(fileUnit,myPart)
|
||||||
phase_plasticity(section) = PLASTICITY_J2_ID
|
phase_plasticity(section) = PLASTICITY_J2_ID
|
||||||
case (PLASTICITY_PHENOPOWERLAW_label)
|
case (PLASTICITY_PHENOPOWERLAW_label)
|
||||||
phase_plasticity(section) = PLASTICITY_PHENOPOWERLAW_ID
|
phase_plasticity(section) = PLASTICITY_PHENOPOWERLAW_ID
|
||||||
|
case (PLASTICITY_PHENOPLUS_label)
|
||||||
|
phase_plasticity(section) = PLASTICITY_PHENOPLUS_ID
|
||||||
case (PLASTICITY_DISLOTWIN_label)
|
case (PLASTICITY_DISLOTWIN_label)
|
||||||
phase_plasticity(section) = PLASTICITY_DISLOTWIN_ID
|
phase_plasticity(section) = PLASTICITY_DISLOTWIN_ID
|
||||||
case (PLASTICITY_DISLOKMC_label)
|
case (PLASTICITY_DISLOKMC_label)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue