exchanged mappingConstitutive array for more descriptive "phaseAt and phasememberAt"
This commit is contained in:
parent
4b10e4792e
commit
684992bf50
|
@ -321,7 +321,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, dt, elFE, ip)
|
||||||
damageState, &
|
damageState, &
|
||||||
vacancyfluxState, &
|
vacancyfluxState, &
|
||||||
hydrogenfluxState, &
|
hydrogenfluxState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
temperature, &
|
temperature, &
|
||||||
|
@ -441,7 +441,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, dt, elFE, ip)
|
||||||
if (debug_e <= mesh_NcpElems .and. debug_i <= mesh_maxNips) then
|
if (debug_e <= mesh_NcpElems .and. debug_i <= mesh_maxNips) then
|
||||||
write(6,'(a,1x,i8,1x,i2,1x,i4,/,(12x,6(e20.8,1x)),/)') &
|
write(6,'(a,1x,i8,1x,i2,1x,i4,/,(12x,6(e20.8,1x)),/)') &
|
||||||
'<< CPFEM >> aged state of elFE ip grain',debug_e, debug_i, 1, &
|
'<< CPFEM >> aged state of elFE ip grain',debug_e, debug_i, 1, &
|
||||||
plasticState(mappingConstitutive(2,1,debug_i,debug_e))%state(:,mappingConstitutive(1,1,debug_i,debug_e))
|
plasticState(phaseAt(1,debug_i,debug_e))%state(:,phasememberAt(1,debug_i,debug_e))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -650,7 +650,7 @@ subroutine constitutive_LiAndItsTangent(Li, dLi_dTstar3333, dLi_dFi3333, Tstar_v
|
||||||
phase_plasticity, &
|
phase_plasticity, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_kinematics, &
|
phase_kinematics, &
|
||||||
phase_Nkinematics, &
|
phase_Nkinematics, &
|
||||||
PLASTICITY_isotropic_ID, &
|
PLASTICITY_isotropic_ID, &
|
||||||
|
|
|
@ -579,7 +579,7 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
homogenization_maxNgrains
|
homogenization_maxNgrains
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_TandItsTangent, &
|
constitutive_TandItsTangent, &
|
||||||
|
@ -675,11 +675,11 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
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 g = 1_pInt,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1_pInt,myNgrains
|
||||||
if (crystallite_requested(g,i,e)) then
|
if (crystallite_requested(g,i,e)) then
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%subState0( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%subState0( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%partionedState0(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%partionedState0(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%subState0( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%subState0( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%partionedState0(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%partionedState0(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
crystallite_subFp0(1:3,1:3,g,i,e) = crystallite_partionedFp0(1:3,1:3,g,i,e) ! ...plastic def grad
|
crystallite_subFp0(1:3,1:3,g,i,e) = crystallite_partionedFp0(1:3,1:3,g,i,e) ! ...plastic def grad
|
||||||
crystallite_subLp0(1:3,1:3,g,i,e) = crystallite_partionedLp0(1:3,1:3,g,i,e) ! ...plastic velocity grad
|
crystallite_subLp0(1:3,1:3,g,i,e) = crystallite_partionedLp0(1:3,1:3,g,i,e) ! ...plastic velocity grad
|
||||||
|
@ -967,11 +967,11 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
crystallite_invFp(1:3,1:3,g,i,e)), &
|
crystallite_invFp(1:3,1:3,g,i,e)), &
|
||||||
crystallite_invFi(1:3,1:3,g,i,e)) ! only needed later on for stiffness calculation
|
crystallite_invFi(1:3,1:3,g,i,e)) ! only needed later on for stiffness calculation
|
||||||
!if abbrevation, make c and p private in omp
|
!if abbrevation, make c and p private in omp
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%subState0(:,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%subState0(:,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%subState0(:,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%subState0(:,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
crystallite_subTstar0_v(1:6,g,i,e) = crystallite_Tstar_v(1:6,g,i,e) ! ...2nd PK stress
|
crystallite_subTstar0_v(1:6,g,i,e) = crystallite_Tstar_v(1:6,g,i,e) ! ...2nd PK stress
|
||||||
if (crystallite_syncSubFrac(i,e)) then ! if we just did a synchronization of states, then we wind forward without any further time integration
|
if (crystallite_syncSubFrac(i,e)) then ! if we just did a synchronization of states, then we wind forward without any further time integration
|
||||||
|
@ -1021,11 +1021,11 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
!$OMP FLUSH(crystallite_invFi)
|
!$OMP FLUSH(crystallite_invFi)
|
||||||
crystallite_Lp(1:3,1:3,g,i,e) = crystallite_subLp0(1:3,1:3,g,i,e) ! ...plastic velocity grad
|
crystallite_Lp(1:3,1:3,g,i,e) = crystallite_subLp0(1:3,1:3,g,i,e) ! ...plastic velocity grad
|
||||||
crystallite_Li(1:3,1:3,g,i,e) = crystallite_subLi0(1:3,1:3,g,i,e) ! ...intermediate velocity grad
|
crystallite_Li(1:3,1:3,g,i,e) = crystallite_subLi0(1:3,1:3,g,i,e) ! ...intermediate velocity grad
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%subState0(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%subState0(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%subState0(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%subState0(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
crystallite_Tstar_v(1:6,g,i,e) = crystallite_subTstar0_v(1:6,g,i,e) ! ...2nd PK stress
|
crystallite_Tstar_v(1:6,g,i,e) = crystallite_subTstar0_v(1:6,g,i,e) ! ...2nd PK stress
|
||||||
|
|
||||||
|
@ -1302,18 +1302,18 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
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 g = 1,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state_backup(:,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state_backup(:,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state_backup(:,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state_backup(:,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState_backup(:,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%dotState_backup(:,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState( :,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%dotState( :,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState_backup(:,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState_backup(:,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState( :,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState( :,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
F_backup(1:3,1:3,g,i,e) = crystallite_subF(1:3,1:3,g,i,e) ! ... and kinematics
|
F_backup(1:3,1:3,g,i,e) = crystallite_subF(1:3,1:3,g,i,e) ! ... and kinematics
|
||||||
|
@ -1351,18 +1351,18 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
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 g = 1,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state_backup(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state_backup(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state_backup(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state_backup(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
crystallite_Fp(1:3,1:3,g,i,e) = Fp_backup(1:3,1:3,g,i,e)
|
crystallite_Fp(1:3,1:3,g,i,e) = Fp_backup(1:3,1:3,g,i,e)
|
||||||
|
@ -1382,18 +1382,18 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
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 g = 1,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%subState0(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%subState0(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%subState0(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%subState0(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
crystallite_Fp(1:3,1:3,g,i,e) = crystallite_subFp0(1:3,1:3,g,i,e)
|
crystallite_Fp(1:3,1:3,g,i,e) = crystallite_subFp0(1:3,1:3,g,i,e)
|
||||||
|
@ -1484,18 +1484,18 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
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 g = 1,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state_backup(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state_backup(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state_backup(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state_backup(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%dotState_backup(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%dotState_backup(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
crystallite_subF(1:3,1:3,g,i,e) = F_backup(1:3,1:3,g,i,e)
|
crystallite_subF(1:3,1:3,g,i,e) = F_backup(1:3,1:3,g,i,e)
|
||||||
|
@ -1563,7 +1563,7 @@ subroutine crystallite_integrateStateRK4()
|
||||||
sourceState, &
|
sourceState, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
material_Nphase, &
|
material_Nphase, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_collectDotState, &
|
constitutive_collectDotState, &
|
||||||
constitutive_microstructure
|
constitutive_microstructure
|
||||||
|
@ -1610,9 +1610,9 @@ subroutine crystallite_integrateStateRK4()
|
||||||
e = eIter(1)
|
e = eIter(1)
|
||||||
i = iIter(1,e)
|
i = iIter(1,e)
|
||||||
do g = iIter(1,e), iIter(2,e)
|
do g = iIter(1,e), iIter(2,e)
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%RK4dotState(:,mappingConstitutive(1,g,i,e)) = 0.0_pReal
|
plasticState (phaseAt(g,i,e))%RK4dotState(:,phasememberAt(g,i,e)) = 0.0_pReal
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%RK4dotState(:,mappingConstitutive(1,g,i,e)) = 0.0_pReal
|
sourceState(phaseAt(g,i,e))%p(mySource)%RK4dotState(:,phasememberAt(g,i,e)) = 0.0_pReal
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
@ -1634,8 +1634,8 @@ subroutine crystallite_integrateStateRK4()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -1663,8 +1663,8 @@ subroutine crystallite_integrateStateRK4()
|
||||||
!$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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
plasticState(p)%RK4dotState(:,c) = plasticState(p)%RK4dotState(:,c) &
|
plasticState(p)%RK4dotState(:,c) = plasticState(p)%RK4dotState(:,c) &
|
||||||
+ weight(n)*plasticState(p)%dotState(:,c)
|
+ weight(n)*plasticState(p)%dotState(:,c)
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
|
@ -1679,8 +1679,8 @@ subroutine crystallite_integrateStateRK4()
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
|
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticState(p)%state (1:mySizePlasticDotState,c) = &
|
plasticState(p)%state (1:mySizePlasticDotState,c) = &
|
||||||
plasticState(p)%subState0(1:mySizePlasticDotState,c) &
|
plasticState(p)%subState0(1:mySizePlasticDotState,c) &
|
||||||
|
@ -1779,8 +1779,8 @@ subroutine crystallite_integrateStateRK4()
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
|
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -1861,7 +1861,7 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
homogenization_maxNgrains
|
homogenization_maxNgrains
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_collectDotState, &
|
constitutive_collectDotState, &
|
||||||
|
@ -1952,8 +1952,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,cc)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,cc)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,cc)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,cc)))
|
||||||
|
@ -1983,8 +1983,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(p,cc)
|
!$OMP DO PRIVATE(p,cc)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
plasticState(p)%RKCK45dotState(stage,:,cc) = plasticState(p)%dotState(:,cc) ! store Runge-Kutta dotState
|
plasticState(p)%RKCK45dotState(stage,:,cc) = plasticState(p)%dotState(:,cc) ! store Runge-Kutta dotState
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
sourceState(p)%p(mySource)%RKCK45dotState(stage,:,cc) = sourceState(p)%p(mySource)%dotState(:,cc)
|
sourceState(p)%p(mySource)%RKCK45dotState(stage,:,cc) = sourceState(p)%p(mySource)%dotState(:,cc)
|
||||||
|
@ -1996,8 +1996,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(p,cc,n)
|
!$OMP DO PRIVATE(p,cc,n)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
|
|
||||||
plasticState(p)%dotState(:,cc) = A(1,stage) * plasticState(p)%RKCK45dotState(1,:,cc)
|
plasticState(p)%dotState(:,cc) = A(1,stage) * plasticState(p)%RKCK45dotState(1,:,cc)
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
|
@ -2018,8 +2018,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticState (p)%state (1:mySizePlasticDotState, cc) = &
|
plasticState (p)%state (1:mySizePlasticDotState, cc) = &
|
||||||
plasticState (p)%subState0(1:mySizePlasticDotState, cc) &
|
plasticState (p)%subState0(1:mySizePlasticDotState, cc) &
|
||||||
|
@ -2107,8 +2107,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
|
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,cc)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,cc)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,cc)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,cc)))
|
||||||
|
@ -2139,8 +2139,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(p,cc)
|
!$OMP DO PRIVATE(p,cc)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
plasticState(p)%RKCK45dotState(6,:,cc) = plasticState (p)%dotState(:,cc) ! store Runge-Kutta dotState
|
plasticState(p)%RKCK45dotState(6,:,cc) = plasticState (p)%dotState(:,cc) ! store Runge-Kutta dotState
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
sourceState(p)%p(mySource)%RKCK45dotState(6,:,cc) = sourceState(p)%p(mySource)%dotState(:,cc) ! store Runge-Kutta dotState
|
sourceState(p)%p(mySource)%RKCK45dotState(6,:,cc) = sourceState(p)%p(mySource)%dotState(:,cc) ! store Runge-Kutta dotState
|
||||||
|
@ -2152,8 +2152,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
|
|
||||||
! --- absolute residuum in state ---
|
! --- absolute residuum in state ---
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
|
@ -2185,8 +2185,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
|
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticState(p)%state (1:mySizePlasticDotState,cc) = &
|
plasticState(p)%state (1:mySizePlasticDotState,cc) = &
|
||||||
plasticState(p)%subState0(1:mySizePlasticDotState,cc) &
|
plasticState(p)%subState0(1:mySizePlasticDotState,cc) &
|
||||||
|
@ -2208,8 +2208,8 @@ subroutine crystallite_integrateStateRKCK45()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc,s)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,cc,s)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
cc = mappingConstitutive(1,g,i,e)
|
cc = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
forall (s = 1_pInt:mySizePlasticDotState, abs(plasticState(p)%state(s,cc)) > 0.0_pReal) &
|
forall (s = 1_pInt:mySizePlasticDotState, abs(plasticState(p)%state(s,cc)) > 0.0_pReal) &
|
||||||
relPlasticStateResiduum(s,g,i,e) = &
|
relPlasticStateResiduum(s,g,i,e) = &
|
||||||
|
@ -2366,7 +2366,7 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
homogenization_maxNgrains
|
homogenization_maxNgrains
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
|
@ -2440,8 +2440,8 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -2465,8 +2465,8 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,c)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticStateResiduum(1:mySizePlasticDotState,g,i,e) = &
|
plasticStateResiduum(1:mySizePlasticDotState,g,i,e) = &
|
||||||
- 0.5_pReal &
|
- 0.5_pReal &
|
||||||
|
@ -2562,8 +2562,8 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -2592,8 +2592,8 @@ subroutine crystallite_integrateStateAdaptiveEuler()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,converged,p,c,s)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,converged,p,c,s)
|
||||||
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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
! --- contribution of heun step to absolute residui ---
|
! --- contribution of heun step to absolute residui ---
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticStateResiduum(1:mySizePlasticDotState,g,i,e) = &
|
plasticStateResiduum(1:mySizePlasticDotState,g,i,e) = &
|
||||||
|
@ -2725,7 +2725,7 @@ subroutine crystallite_integrateStateEuler()
|
||||||
use material, only: &
|
use material, only: &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
homogenization_Ngrains
|
homogenization_Ngrains
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
|
@ -2779,8 +2779,8 @@ eIter = FEsolving_execElem(1:2)
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -2804,8 +2804,8 @@ eIter = FEsolving_execElem(1:2)
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,c)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,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)) then
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticState(p)%state( 1:mySizePlasticDotState,c) = &
|
plasticState(p)%state( 1:mySizePlasticDotState,c) = &
|
||||||
plasticState(p)%state( 1:mySizePlasticDotState,c) &
|
plasticState(p)%state( 1:mySizePlasticDotState,c) &
|
||||||
|
@ -2823,8 +2823,8 @@ eIter = FEsolving_execElem(1:2)
|
||||||
if (iand(debug_level(debug_crystallite), debug_levelExtensive) /= 0_pInt &
|
if (iand(debug_level(debug_crystallite), debug_levelExtensive) /= 0_pInt &
|
||||||
.and. ((e == debug_e .and. i == debug_i .and. g == debug_g) &
|
.and. ((e == debug_e .and. i == debug_i .and. g == debug_g) &
|
||||||
.or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then
|
.or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
write(6,'(a,i8,1x,i2,1x,i3,/)') '<< CRYST >> update state at el ip g ',e,i,g
|
write(6,'(a,i8,1x,i2,1x,i3,/)') '<< CRYST >> update state at el ip g ',e,i,g
|
||||||
write(6,'(a,/,(12x,12(e12.5,1x)),/)') '<< CRYST >> dotState', plasticState(p)%dotState(1:mySizePlasticDotState,c)
|
write(6,'(a,/,(12x,12(e12.5,1x)),/)') '<< CRYST >> dotState', plasticState(p)%dotState(1:mySizePlasticDotState,c)
|
||||||
write(6,'(a,/,(12x,12(e12.5,1x)),/)') '<< CRYST >> new state', plasticState(p)%state (1:mySizePlasticDotState,c)
|
write(6,'(a,/,(12x,12(e12.5,1x)),/)') '<< CRYST >> new state', plasticState(p)%state (1:mySizePlasticDotState,c)
|
||||||
|
@ -2950,7 +2950,7 @@ subroutine crystallite_integrateStateFPI()
|
||||||
use material, only: &
|
use material, only: &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
homogenization_Ngrains
|
homogenization_Ngrains
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
|
@ -3016,8 +3016,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
e = eIter(1)
|
e = eIter(1)
|
||||||
i = iIter(1,e)
|
i = iIter(1,e)
|
||||||
do g = gIter(1,e), gIter(2,e)
|
do g = gIter(1,e), gIter(2,e)
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
plasticState(p)%previousDotState (:,c) = 0.0_pReal
|
plasticState(p)%previousDotState (:,c) = 0.0_pReal
|
||||||
plasticState(p)%previousDotState2(:,c) = 0.0_pReal
|
plasticState(p)%previousDotState2(:,c) = 0.0_pReal
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
|
@ -3046,8 +3046,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -3070,8 +3070,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,p,c)
|
!$OMP DO PRIVATE(mySizePlasticDotState,mySizeSourceDotState,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)) then
|
if (crystallite_todo(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
mySizePlasticDotState = plasticState(p)%sizeDotState
|
mySizePlasticDotState = plasticState(p)%sizeDotState
|
||||||
plasticState(p)%state(1:mySizePlasticDotState,c) = &
|
plasticState(p)%state(1:mySizePlasticDotState,c) = &
|
||||||
plasticState(p)%subState0(1:mySizePlasticDotState,c) &
|
plasticState(p)%subState0(1:mySizePlasticDotState,c) &
|
||||||
|
@ -3109,8 +3109,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
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
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
plasticState(p)%previousDotState2(:,c) = plasticState(p)%previousDotState(:,c)
|
plasticState(p)%previousDotState2(:,c) = plasticState(p)%previousDotState(:,c)
|
||||||
plasticState(p)%previousDotState (:,c) = plasticState(p)%dotState(:,c)
|
plasticState(p)%previousDotState (:,c) = plasticState(p)%dotState(:,c)
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
|
@ -3161,8 +3161,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
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
|
||||||
!$OMP FLUSH(crystallite_todo)
|
!$OMP FLUSH(crystallite_todo)
|
||||||
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
NaN = any(prec_isNaN(plasticState(p)%dotState(:,c)))
|
||||||
do mySource = 1_pInt, phase_Nsources(p)
|
do mySource = 1_pInt, phase_Nsources(p)
|
||||||
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
NaN = NaN .or. any(prec_isNaN(sourceState(p)%p(mySource)%dotState(:,c)))
|
||||||
|
@ -3191,8 +3191,8 @@ subroutine crystallite_integrateStateFPI()
|
||||||
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)) then
|
if (crystallite_todo(g,i,e) .and. .not. crystallite_converged(g,i,e)) then
|
||||||
|
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
dot_prod12 = dot_product( plasticState(p)%dotState (:,c) &
|
dot_prod12 = dot_product( plasticState(p)%dotState (:,c) &
|
||||||
- plasticState(p)%previousDotState (:,c), &
|
- plasticState(p)%previousDotState (:,c), &
|
||||||
plasticState(p)%previousDotState (:,c) &
|
plasticState(p)%previousDotState (:,c) &
|
||||||
|
@ -3388,7 +3388,7 @@ logical function crystallite_stateJump(g,i,e)
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_collectDeltaState
|
constitutive_collectDeltaState
|
||||||
|
|
||||||
|
@ -3405,8 +3405,8 @@ logical function crystallite_stateJump(g,i,e)
|
||||||
mySizePlasticDeltaState, &
|
mySizePlasticDeltaState, &
|
||||||
mySizeSourceDeltaState
|
mySizeSourceDeltaState
|
||||||
|
|
||||||
c = mappingConstitutive(1,g,i,e)
|
c = phasememberAt(g,i,e)
|
||||||
p = mappingConstitutive(2,g,i,e)
|
p = phaseAt(g,i,e)
|
||||||
call constitutive_collectDeltaState(crystallite_Tstar_v(1:6,g,i,e), crystallite_Fe(1:3,1:3,g,i,e), g,i,e)
|
call constitutive_collectDeltaState(crystallite_Tstar_v(1:6,g,i,e), crystallite_Fe(1:3,1:3,g,i,e), g,i,e)
|
||||||
mySizePlasticDeltaState = plasticState(p)%sizeDeltaState
|
mySizePlasticDeltaState = plasticState(p)%sizeDeltaState
|
||||||
if( any(prec_isNaN(plasticState(p)%deltaState(:,c)))) then ! NaN occured in deltaState
|
if( any(prec_isNaN(plasticState(p)%deltaState(:,c)))) then ! NaN occured in deltaState
|
||||||
|
|
|
@ -226,7 +226,7 @@ subroutine damage_local_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip, el
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
SOURCE_damage_isoBrittle_ID, &
|
SOURCE_damage_isoBrittle_ID, &
|
||||||
|
@ -258,7 +258,7 @@ subroutine damage_local_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip, el
|
||||||
phiDot = 0.0_pReal
|
phiDot = 0.0_pReal
|
||||||
dPhiDot_dPhi = 0.0_pReal
|
dPhiDot_dPhi = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1, phase_Nsources(phase)
|
do source = 1, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_damage_isoBrittle_ID)
|
case (SOURCE_damage_isoBrittle_ID)
|
||||||
|
|
|
@ -187,7 +187,7 @@ subroutine damage_nonlocal_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip,
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
SOURCE_damage_isoBrittle_ID, &
|
SOURCE_damage_isoBrittle_ID, &
|
||||||
|
@ -219,7 +219,7 @@ subroutine damage_nonlocal_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip,
|
||||||
phiDot = 0.0_pReal
|
phiDot = 0.0_pReal
|
||||||
dPhiDot_dPhi = 0.0_pReal
|
dPhiDot_dPhi = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1_pInt, phase_Nsources(phase)
|
do source = 1_pInt, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_damage_isoBrittle_ID)
|
case (SOURCE_damage_isoBrittle_ID)
|
||||||
|
|
|
@ -530,7 +530,7 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
hydrogenfluxState, &
|
hydrogenfluxState, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
homogenization_Ngrains
|
homogenization_Ngrains
|
||||||
use crystallite, only: &
|
use crystallite, only: &
|
||||||
crystallite_F0, &
|
crystallite_F0, &
|
||||||
|
@ -600,11 +600,11 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
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 g = 1,myNgrains
|
do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains
|
||||||
|
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%partionedState0(:,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%partionedState0(:,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state0( :,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state0( :,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%partionedState0(:,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%partionedState0(:,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state0( :,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state0( :,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
crystallite_partionedFp0(1:3,1:3,g,i,e) = crystallite_Fp0(1:3,1:3,g,i,e) ! ...plastic def grads
|
crystallite_partionedFp0(1:3,1:3,g,i,e) = crystallite_Fp0(1:3,1:3,g,i,e) ! ...plastic def grads
|
||||||
|
@ -702,11 +702,11 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
crystallite_Tstar_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
crystallite_Tstar_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
||||||
|
|
||||||
do g = 1,myNgrains
|
do g = 1,myNgrains
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%partionedState0(:,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%partionedState0(:,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%partionedState0(:,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%partionedState0(:,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -787,11 +787,11 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
crystallite_Tstar_v(1:6,1:myNgrains,i,e) = &
|
crystallite_Tstar_v(1:6,1:myNgrains,i,e) = &
|
||||||
crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
||||||
do g = 1, myNgrains
|
do g = 1, myNgrains
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%state( :,mappingConstitutive(1,g,i,e)) = &
|
plasticState (phaseAt(g,i,e))%state( :,phasememberAt(g,i,e)) = &
|
||||||
plasticState (mappingConstitutive(2,g,i,e))%partionedState0(:,mappingConstitutive(1,g,i,e))
|
plasticState (phaseAt(g,i,e))%partionedState0(:,phasememberAt(g,i,e))
|
||||||
do mySource = 1_pInt, phase_Nsources(mappingConstitutive(2,g,i,e))
|
do mySource = 1_pInt, phase_Nsources(phaseAt(g,i,e))
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%state( :,mappingConstitutive(1,g,i,e)) = &
|
sourceState(phaseAt(g,i,e))%p(mySource)%state( :,phasememberAt(g,i,e)) = &
|
||||||
sourceState(mappingConstitutive(2,g,i,e))%p(mySource)%partionedState0(:,mappingConstitutive(1,g,i,e))
|
sourceState(phaseAt(g,i,e))%p(mySource)%partionedState0(:,phasememberAt(g,i,e))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
forall(i = FEsolving_execIP(1,e):FEsolving_execIP(2,e), &
|
forall(i = FEsolving_execIP(1,e):FEsolving_execIP(2,e), &
|
||||||
|
@ -931,7 +931,7 @@ subroutine materialpoint_postResults
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
#ifdef FEM
|
#ifdef FEM
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
homogenization_maxNgrains, &
|
homogenization_maxNgrains, &
|
||||||
material_Ncrystallite, &
|
material_Ncrystallite, &
|
||||||
material_Nphase, &
|
material_Nphase, &
|
||||||
|
@ -995,7 +995,7 @@ subroutine materialpoint_postResults
|
||||||
thePos) = homogenization_postResults(i,e)
|
thePos) = homogenization_postResults(i,e)
|
||||||
|
|
||||||
grainLooping :do g = 1,myNgrains
|
grainLooping :do g = 1,myNgrains
|
||||||
myPhase = mappingConstitutive(2,g,i,e)
|
myPhase = phaseAt(g,i,e)
|
||||||
crystalliteResults(1:1+crystallite_sizePostResults(myCrystallite) + &
|
crystalliteResults(1:1+crystallite_sizePostResults(myCrystallite) + &
|
||||||
1+plasticState(myPhase)%sizePostResults + &
|
1+plasticState(myPhase)%sizePostResults + &
|
||||||
sum(sourceState(myPhase)%p(:)%sizePostResults)) = crystallite_postResults(g,i,e)
|
sum(sourceState(myPhase)%p(:)%sizePostResults)) = crystallite_postResults(g,i,e)
|
||||||
|
|
|
@ -207,7 +207,7 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar3333, Tstar
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check
|
tol_math_check
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
damage, &
|
damage, &
|
||||||
damageMapping
|
damageMapping
|
||||||
|
@ -238,8 +238,8 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar3333, Tstar
|
||||||
traction_d, traction_t, traction_n, traction_crit, &
|
traction_d, traction_t, traction_n, traction_crit, &
|
||||||
udotd, dudotd_dt, udott, dudott_dt, udotn, dudotn_dt
|
udotd, dudotd_dt, udott, dudott_dt, udotn, dudotn_dt
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = kinematics_cleavage_opening_instance(phase)
|
instance = kinematics_cleavage_opening_instance(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
damageOffset = damageMapping(homog)%p(ip,el)
|
damageOffset = damageMapping(homog)%p(ip,el)
|
||||||
|
|
|
@ -212,7 +212,7 @@ subroutine kinematics_slipplane_opening_LiAndItsTangent(Ld, dLd_dTstar3333, Tsta
|
||||||
lattice_st, &
|
lattice_st, &
|
||||||
lattice_sn
|
lattice_sn
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
damage, &
|
damage, &
|
||||||
damageMapping
|
damageMapping
|
||||||
|
@ -251,8 +251,8 @@ subroutine kinematics_slipplane_opening_LiAndItsTangent(Ld, dLd_dTstar3333, Tsta
|
||||||
traction_d, traction_t, traction_n, traction_crit, &
|
traction_d, traction_t, traction_n, traction_crit, &
|
||||||
udotd, dudotd_dt, udott, dudott_dt, udotn, dudotn_dt
|
udotd, dudotd_dt, udott, dudott_dt, udotn, dudotn_dt
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = kinematics_slipplane_opening_instance(phase)
|
instance = kinematics_slipplane_opening_instance(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
damageOffset = damageMapping(homog)%p(ip,el)
|
damageOffset = damageMapping(homog)%p(ip,el)
|
||||||
|
|
|
@ -287,10 +287,11 @@ module material
|
||||||
logical, dimension(:), allocatable, private :: &
|
logical, dimension(:), allocatable, private :: &
|
||||||
homogenization_active
|
homogenization_active
|
||||||
|
|
||||||
integer(pInt), dimension(:,:,:,:), allocatable, public, target :: mappingConstitutive
|
integer(pInt), dimension(:,:,:), allocatable, public :: phaseAt !< phase ID of every material point (ipc,ip,el)
|
||||||
integer(pInt), dimension(:,:,:), allocatable, public, target :: mappingCrystallite
|
integer(pInt), dimension(:,:,:), allocatable, public :: phasememberAt !< memberID of given phase at every material point (ipc,ip,el)
|
||||||
integer(pInt), dimension(:,:,:), allocatable, public, target :: mappingHomogenization !< mapping from material points to offset in heterogenous state/field
|
integer(pInt), dimension(:,:,:), allocatable, public, target :: mappingCrystallite
|
||||||
integer(pInt), dimension(:,:), allocatable, public, target :: mappingHomogenizationConst !< mapping from material points to offset in constant state/field
|
integer(pInt), dimension(:,:,:), allocatable, public, target :: mappingHomogenization !< mapping from material points to offset in heterogenous state/field
|
||||||
|
integer(pInt), dimension(:,:), allocatable, public, target :: mappingHomogenizationConst !< mapping from material points to offset in constant state/field
|
||||||
|
|
||||||
type(tHomogMapping), allocatable, dimension(:), public :: &
|
type(tHomogMapping), allocatable, dimension(:), public :: &
|
||||||
thermalMapping, & !< mapping for thermal state/fields
|
thermalMapping, & !< mapping for thermal state/fields
|
||||||
|
@ -497,7 +498,8 @@ subroutine material_init()
|
||||||
|
|
||||||
call material_populateGrains
|
call material_populateGrains
|
||||||
|
|
||||||
allocate(mappingConstitutive (2,homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems),source=0_pInt)
|
allocate(phaseAt ( homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems),source=0_pInt)
|
||||||
|
allocate(phasememberAt ( homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems),source=0_pInt)
|
||||||
allocate(mappingHomogenization (2, mesh_maxNips,mesh_NcpElems),source=0_pInt)
|
allocate(mappingHomogenization (2, mesh_maxNips,mesh_NcpElems),source=0_pInt)
|
||||||
allocate(mappingCrystallite (2,homogenization_maxNgrains, mesh_NcpElems),source=0_pInt)
|
allocate(mappingCrystallite (2,homogenization_maxNgrains, mesh_NcpElems),source=0_pInt)
|
||||||
allocate(mappingHomogenizationConst( mesh_maxNips,mesh_NcpElems),source=1_pInt)
|
allocate(mappingHomogenizationConst( mesh_maxNips,mesh_NcpElems),source=1_pInt)
|
||||||
|
@ -514,7 +516,8 @@ subroutine material_init()
|
||||||
GrainLoop:do g = 1_pInt,homogenization_Ngrains(mesh_element(3,e)) ! loop over grains
|
GrainLoop:do g = 1_pInt,homogenization_Ngrains(mesh_element(3,e)) ! loop over grains
|
||||||
phase = material_phase(g,i,e)
|
phase = material_phase(g,i,e)
|
||||||
ConstitutivePosition(phase) = ConstitutivePosition(phase)+1_pInt ! not distinguishing between instances of same phase
|
ConstitutivePosition(phase) = ConstitutivePosition(phase)+1_pInt ! not distinguishing between instances of same phase
|
||||||
mappingConstitutive(1:2,g,i,e) = [ConstitutivePosition(phase),phase]
|
phaseAt(g,i,e) = phase
|
||||||
|
phasememberAt(g,i,e) = ConstitutivePosition(phase)
|
||||||
enddo GrainLoop
|
enddo GrainLoop
|
||||||
enddo IPloop
|
enddo IPloop
|
||||||
enddo ElemLoop
|
enddo ElemLoop
|
||||||
|
|
|
@ -958,7 +958,7 @@ function plastic_disloUCLA_homogenizedC(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_C66
|
lattice_C66
|
||||||
|
|
||||||
|
@ -976,8 +976,8 @@ function plastic_disloUCLA_homogenizedC(ipc,ip,el)
|
||||||
real(pReal) :: sumf
|
real(pReal) :: sumf
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_disloUCLA_totalNslip(instance)
|
ns = plastic_disloUCLA_totalNslip(instance)
|
||||||
nt = plastic_disloUCLA_totalNtwin(instance)
|
nt = plastic_disloUCLA_totalNtwin(instance)
|
||||||
|
@ -1003,7 +1003,7 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_mu, &
|
lattice_mu, &
|
||||||
lattice_nu
|
lattice_nu
|
||||||
|
@ -1026,8 +1026,8 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
real(pReal), dimension(plastic_disloUCLA_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: fOverStacksize
|
real(pReal), dimension(plastic_disloUCLA_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: fOverStacksize
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_disloUCLA_totalNslip(instance)
|
ns = plastic_disloUCLA_totalNslip(instance)
|
||||||
nt = plastic_disloUCLA_totalNtwin(instance)
|
nt = plastic_disloUCLA_totalNtwin(instance)
|
||||||
|
@ -1146,7 +1146,7 @@ subroutine plastic_disloUCLA_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip, &
|
lattice_Sslip, &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
|
@ -1181,8 +1181,8 @@ subroutine plastic_disloUCLA_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
gdot_slip_pos,gdot_slip_neg
|
gdot_slip_pos,gdot_slip_neg
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_disloUCLA_totalNslip(instance)
|
ns = plastic_disloUCLA_totalNslip(instance)
|
||||||
nt = plastic_disloUCLA_totalNtwin(instance)
|
nt = plastic_disloUCLA_totalNtwin(instance)
|
||||||
|
@ -1442,7 +1442,7 @@ subroutine plastic_disloUCLA_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
|
@ -1497,8 +1497,8 @@ subroutine plastic_disloUCLA_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
gdot_slip_pos, gdot_slip_neg
|
gdot_slip_pos, gdot_slip_neg
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_disloUCLA_totalNslip(instance)
|
ns = plastic_disloUCLA_totalNslip(instance)
|
||||||
nt = plastic_disloUCLA_totalNtwin(instance)
|
nt = plastic_disloUCLA_totalNtwin(instance)
|
||||||
|
@ -1694,7 +1694,7 @@ function plastic_disloUCLA_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance,&
|
phase_plasticityInstance,&
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
|
@ -1736,8 +1736,8 @@ function plastic_disloUCLA_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
gdot_slip_pos,dgdot_dtauslip_pos,tau_slip_pos,gdot_slip_neg,dgdot_dtauslip_neg,tau_slip_neg
|
gdot_slip_pos,dgdot_dtauslip_pos,tau_slip_pos,gdot_slip_neg,dgdot_dtauslip_neg,tau_slip_neg
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_disloUCLA_totalNslip(instance)
|
ns = plastic_disloUCLA_totalNslip(instance)
|
||||||
nt = plastic_disloUCLA_totalNtwin(instance)
|
nt = plastic_disloUCLA_totalNtwin(instance)
|
||||||
|
|
|
@ -1398,7 +1398,7 @@ end subroutine plastic_dislotwin_aTolState
|
||||||
function plastic_dislotwin_homogenizedC(ipc,ip,el)
|
function plastic_dislotwin_homogenizedC(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_C66
|
lattice_C66
|
||||||
|
|
||||||
|
@ -1416,8 +1416,8 @@ function plastic_dislotwin_homogenizedC(ipc,ip,el)
|
||||||
real(pReal) :: sumf, sumftr
|
real(pReal) :: sumf, sumftr
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_dislotwin_totalNslip(instance)
|
ns = plastic_dislotwin_totalNslip(instance)
|
||||||
nt = plastic_dislotwin_totalNtwin(instance)
|
nt = plastic_dislotwin_totalNtwin(instance)
|
||||||
|
@ -1454,7 +1454,7 @@ subroutine plastic_dislotwin_microstructure(temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
!plasticState, & !!!!delete
|
!plasticState, & !!!!delete
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_mu, &
|
lattice_mu, &
|
||||||
lattice_nu
|
lattice_nu
|
||||||
|
@ -1479,8 +1479,8 @@ subroutine plastic_dislotwin_microstructure(temperature,ipc,ip,el)
|
||||||
ftransOverLamellarSize
|
ftransOverLamellarSize
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_dislotwin_totalNslip(instance)
|
ns = plastic_dislotwin_totalNslip(instance)
|
||||||
nt = plastic_dislotwin_totalNtwin(instance)
|
nt = plastic_dislotwin_totalNtwin(instance)
|
||||||
|
@ -1645,7 +1645,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip, &
|
lattice_Sslip, &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
|
@ -1705,8 +1705,8 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
],pReal),[ 3,6])
|
],pReal),[ 3,6])
|
||||||
logical error
|
logical error
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_dislotwin_totalNslip(instance)
|
ns = plastic_dislotwin_totalNslip(instance)
|
||||||
nt = plastic_dislotwin_totalNtwin(instance)
|
nt = plastic_dislotwin_totalNtwin(instance)
|
||||||
|
@ -1954,7 +1954,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
|
@ -1999,8 +1999,8 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
tau_trans
|
tau_trans
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_dislotwin_totalNslip(instance)
|
ns = plastic_dislotwin_totalNslip(instance)
|
||||||
nt = plastic_dislotwin_totalNtwin(instance)
|
nt = plastic_dislotwin_totalNtwin(instance)
|
||||||
|
@ -2202,7 +2202,7 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance,&
|
phase_plasticityInstance,&
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
lattice_Stwin_v, &
|
lattice_Stwin_v, &
|
||||||
|
@ -2245,8 +2245,8 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_dislotwin_totalNslip(instance)
|
ns = plastic_dislotwin_totalNslip(instance)
|
||||||
nt = plastic_dislotwin_totalNtwin(instance)
|
nt = plastic_dislotwin_totalNtwin(instance)
|
||||||
|
|
|
@ -393,7 +393,7 @@ subroutine plastic_isotropic_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
math_mul33xx33, &
|
math_mul33xx33, &
|
||||||
math_transpose33
|
math_transpose33
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -434,7 +434,7 @@ subroutine plastic_isotropic_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
else
|
else
|
||||||
gamma_dot = plastic_isotropic_gdot0(instance) &
|
gamma_dot = plastic_isotropic_gdot0(instance) &
|
||||||
* (sqrt(1.5_pReal) * norm_Tstar_dev / (plastic_isotropic_fTaylor(instance) * &
|
* (sqrt(1.5_pReal) * norm_Tstar_dev / (plastic_isotropic_fTaylor(instance) * &
|
||||||
plasticState(mappingConstitutive(2,ipc,ip,el))%state(1,mappingConstitutive(1,ipc,ip,el)))) &
|
plasticState(phaseAt(ipc,ip,el))%state(1,phasememberAt(ipc,ip,el)))) &
|
||||||
**plastic_isotropic_n(instance)
|
**plastic_isotropic_n(instance)
|
||||||
|
|
||||||
Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/plastic_isotropic_fTaylor(instance)
|
Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/plastic_isotropic_fTaylor(instance)
|
||||||
|
@ -473,7 +473,7 @@ subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dTstar_3333,Tstar_v,ipc,ip,e
|
||||||
math_spherical33, &
|
math_spherical33, &
|
||||||
math_mul33xx33
|
math_mul33xx33
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -514,7 +514,7 @@ subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dTstar_3333,Tstar_v,ipc,ip,e
|
||||||
else
|
else
|
||||||
gamma_dot = plastic_isotropic_gdot0(instance) &
|
gamma_dot = plastic_isotropic_gdot0(instance) &
|
||||||
* (sqrt(1.5_pReal) * norm_Tstar_sph / (plastic_isotropic_fTaylor(instance) * &
|
* (sqrt(1.5_pReal) * norm_Tstar_sph / (plastic_isotropic_fTaylor(instance) * &
|
||||||
plasticState(mappingConstitutive(2,ipc,ip,el))%state(1,mappingConstitutive(1,ipc,ip,el)))) &
|
plasticState(phaseAt(ipc,ip,el))%state(1,phasememberAt(ipc,ip,el)))) &
|
||||||
**plastic_isotropic_n(instance)
|
**plastic_isotropic_n(instance)
|
||||||
|
|
||||||
Li = Tstar_sph_33/norm_Tstar_sph * gamma_dot/plastic_isotropic_fTaylor(instance)
|
Li = Tstar_sph_33/norm_Tstar_sph * gamma_dot/plastic_isotropic_fTaylor(instance)
|
||||||
|
@ -542,7 +542,7 @@ subroutine plastic_isotropic_dotState(Tstar_v,ipc,ip,el)
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_mul6x6
|
math_mul6x6
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -566,8 +566,8 @@ subroutine plastic_isotropic_dotState(Tstar_v,ipc,ip,el)
|
||||||
of, & !< shortcut notation for offset position in state array
|
of, & !< shortcut notation for offset position in state array
|
||||||
ph !< shortcut notation for phase ID (unique number of all phases, regardless of constitutive model)
|
ph !< shortcut notation for phase ID (unique number of all phases, regardless of constitutive model)
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -625,7 +625,7 @@ function plastic_isotropic_postResults(Tstar_v,ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -649,8 +649,8 @@ function plastic_isotropic_postResults(Tstar_v,ipc,ip,el)
|
||||||
c, &
|
c, &
|
||||||
o
|
o
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -375,7 +375,7 @@ subroutine plastic_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
math_deviatoric33, &
|
math_deviatoric33, &
|
||||||
math_mul33xx33
|
math_mul33xx33
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -416,7 +416,7 @@ subroutine plastic_j2_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
else
|
else
|
||||||
gamma_dot = plastic_j2_gdot0(instance) &
|
gamma_dot = plastic_j2_gdot0(instance) &
|
||||||
* (sqrt(1.5_pReal) * norm_Tstar_dev / (plastic_j2_fTaylor(instance) * &
|
* (sqrt(1.5_pReal) * norm_Tstar_dev / (plastic_j2_fTaylor(instance) * &
|
||||||
plasticState(mappingConstitutive(2,ipc,ip,el))%state(1,mappingConstitutive(1,ipc,ip,el)))) &
|
plasticState(phaseAt(ipc,ip,el))%state(1,phasememberAt(ipc,ip,el)))) &
|
||||||
**plastic_j2_n(instance)
|
**plastic_j2_n(instance)
|
||||||
|
|
||||||
Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/plastic_j2_fTaylor(instance)
|
Lp = Tstar_dev_33/norm_Tstar_dev * gamma_dot/plastic_j2_fTaylor(instance)
|
||||||
|
@ -443,7 +443,7 @@ subroutine plastic_j2_dotState(Tstar_v,ipc,ip,el)
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_mul6x6
|
math_mul6x6
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
@ -467,8 +467,8 @@ subroutine plastic_j2_dotState(Tstar_v,ipc,ip,el)
|
||||||
of, & !< shortcut notation for offset position in state array
|
of, & !< shortcut notation for offset position in state array
|
||||||
ph !< shortcut notation for phase ID (unique number of all phases, regardless of constitutive model)
|
ph !< shortcut notation for phase ID (unique number of all phases, regardless of constitutive model)
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -523,7 +523,7 @@ function plastic_j2_postResults(Tstar_v,ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -547,8 +547,8 @@ function plastic_j2_postResults(Tstar_v,ipc,ip,el)
|
||||||
c, &
|
c, &
|
||||||
o
|
o
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
instance = phase_plasticityInstance(material_phase(ipc,ip,el))
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -1422,7 +1422,7 @@ use mesh, only: mesh_ipVolume, &
|
||||||
use material, only: material_phase, &
|
use material, only: material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticity ,&
|
phase_plasticity ,&
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -1480,8 +1480,8 @@ do instance = 1_pInt,maxNinstances
|
||||||
s = nint(rnd(3)*real(ns,pReal)+0.5_pReal,pInt)
|
s = nint(rnd(3)*real(ns,pReal)+0.5_pReal,pInt)
|
||||||
t = nint(rnd(4)*4.0_pReal+0.5_pReal,pInt)
|
t = nint(rnd(4)*4.0_pReal+0.5_pReal,pInt)
|
||||||
meanDensity = meanDensity + densityBinning * mesh_ipVolume(i,e) / totalVolume
|
meanDensity = meanDensity + densityBinning * mesh_ipVolume(i,e) / totalVolume
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,t,instance),mappingConstitutive(2,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,t,instance),phaseAt(1,i,e)) = &
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,t,instance),mappingConstitutive(2,1,i,e)) &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,t,instance),phaseAt(1,i,e)) &
|
||||||
+ densityBinning
|
+ densityBinning
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
@ -1498,18 +1498,18 @@ do instance = 1_pInt,maxNinstances
|
||||||
do j = 1_pInt,2_pInt
|
do j = 1_pInt,2_pInt
|
||||||
noise(j) = math_sampleGaussVar(0.0_pReal, rhoSglScatter(instance))
|
noise(j) = math_sampleGaussVar(0.0_pReal, rhoSglScatter(instance))
|
||||||
enddo
|
enddo
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,1,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,1,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoSglEdgePos0(f,instance) + noise(1)
|
rhoSglEdgePos0(f,instance) + noise(1)
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,2,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,2,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoSglEdgeNeg0(f,instance) + noise(1)
|
rhoSglEdgeNeg0(f,instance) + noise(1)
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,3,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,3,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoSglScrewPos0(f,instance) + noise(2)
|
rhoSglScrewPos0(f,instance) + noise(2)
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoU(s,4,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoU(s,4,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoSglScrewNeg0(f,instance) + noise(2)
|
rhoSglScrewNeg0(f,instance) + noise(2)
|
||||||
enddo
|
enddo
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoD(from:upto,1,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoD(from:upto,1,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoDipEdge0(f,instance)
|
rhoDipEdge0(f,instance)
|
||||||
plasticState(mappingConstitutive(2,1,i,e))%state0(iRhoD(from:upto,2,instance),mappingConstitutive(1,1,i,e)) = &
|
plasticState(phaseAt(1,i,e))%state0(iRhoD(from:upto,2,instance),phasememberAt(1,i,e)) = &
|
||||||
rhoDipScrew0(f,instance)
|
rhoDipScrew0(f,instance)
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
@ -1582,7 +1582,7 @@ use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_localPlasticity, &
|
phase_localPlasticity, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_sd, &
|
lattice_sd, &
|
||||||
|
@ -1654,8 +1654,8 @@ real(pReal), dimension(2,maxval(totalNslip),mesh_maxNipNeighbors) :: &
|
||||||
real(pReal), dimension(3,totalNslip(phase_plasticityInstance(material_phase(1_pInt,ip,el))),2) :: &
|
real(pReal), dimension(3,totalNslip(phase_plasticityInstance(material_phase(1_pInt,ip,el))),2) :: &
|
||||||
m ! direction of dislocation motion
|
m ! direction of dislocation motion
|
||||||
|
|
||||||
ph = mappingConstitutive(2,1,ip,el)
|
ph = phaseAt(1,ip,el)
|
||||||
of = mappingConstitutive(1,1,ip,el)
|
of = phasememberAt(1,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = totalNslip(instance)
|
ns = totalNslip(instance)
|
||||||
|
|
||||||
|
@ -1726,8 +1726,8 @@ if (.not. phase_localPlasticity(ph) .and. shortRangeStressCorrection(instance))
|
||||||
do n = 1_pInt,FE_NipNeighbors(FE_celltype(FE_geomtype(mesh_element(2,el))))
|
do n = 1_pInt,FE_NipNeighbors(FE_celltype(FE_geomtype(mesh_element(2,el))))
|
||||||
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
||||||
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
||||||
np = mappingConstitutive(2,1,neighbor_ip,neighbor_el)
|
np = phaseAt(1,neighbor_ip,neighbor_el)
|
||||||
no = mappingConstitutive(1,1,neighbor_ip,neighbor_el)
|
no = phasememberAt(1,neighbor_ip,neighbor_el)
|
||||||
if (neighbor_el > 0 .and. neighbor_ip > 0) then
|
if (neighbor_el > 0 .and. neighbor_ip > 0) then
|
||||||
neighbor_phase = material_phase(1,neighbor_ip,neighbor_el)
|
neighbor_phase = material_phase(1,neighbor_ip,neighbor_el)
|
||||||
neighbor_instance = phase_plasticityInstance(neighbor_phase)
|
neighbor_instance = phase_plasticityInstance(neighbor_phase)
|
||||||
|
@ -2020,7 +2020,7 @@ use debug, only: debug_level, &
|
||||||
debug_e
|
debug_e
|
||||||
use material, only: material_phase, &
|
use material, only: material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive,&
|
phaseAt, phasememberAt,&
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: lattice_Sslip, &
|
use lattice, only: lattice_Sslip, &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
|
@ -2066,8 +2066,8 @@ real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phase(1_pInt
|
||||||
tauBack, & !< back stress from dislocation gradients on same slip system
|
tauBack, & !< back stress from dislocation gradients on same slip system
|
||||||
tauThreshold !< threshold shear stress
|
tauThreshold !< threshold shear stress
|
||||||
!*** shortcut for mapping
|
!*** shortcut for mapping
|
||||||
ph = mappingConstitutive(2,1_pInt,ip,el)
|
ph = phaseAt(1_pInt,ip,el)
|
||||||
of = mappingConstitutive(1,1_pInt,ip,el)
|
of = phasememberAt(1_pInt,ip,el)
|
||||||
|
|
||||||
!*** initialize local variables
|
!*** initialize local variables
|
||||||
|
|
||||||
|
@ -2218,7 +2218,7 @@ use lattice, only: lattice_Sslip_v ,&
|
||||||
use mesh, only: mesh_ipVolume
|
use mesh, only: mesh_ipVolume
|
||||||
use material, only: material_phase, &
|
use material, only: material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -2262,8 +2262,8 @@ real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phase(1,ip,e
|
||||||
write(6,'(/,a,i8,1x,i2,1x,i1,/)') '<< CONST >> nonlocal_deltaState at el ip ',el,ip
|
write(6,'(/,a,i8,1x,i2,1x,i1,/)') '<< CONST >> nonlocal_deltaState at el ip ',el,ip
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ph = mappingConstitutive(2,1,ip,el)
|
ph = phaseAt(1,ip,el)
|
||||||
of = mappingConstitutive(1,1,ip,el)
|
of = phasememberAt(1,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = totalNslip(instance)
|
ns = totalNslip(instance)
|
||||||
|
|
||||||
|
@ -2420,7 +2420,7 @@ use material, only: homogenization_maxNgrains, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
phase_localPlasticity, &
|
phase_localPlasticity, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticity ,&
|
phase_plasticity ,&
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
use lattice, only: lattice_Sslip_v, &
|
use lattice, only: lattice_Sslip_v, &
|
||||||
|
@ -2521,8 +2521,8 @@ logical considerEnteringFlux, &
|
||||||
considerLeavingFlux
|
considerLeavingFlux
|
||||||
|
|
||||||
|
|
||||||
p = mappingConstitutive(2,1,ip,el)
|
p = phaseAt(1,ip,el)
|
||||||
o = mappingConstitutive(1,1,ip,el)
|
o = phasememberAt(1,ip,el)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2726,8 +2726,8 @@ if (.not. phase_localPlasticity(material_phase(1_pInt,ip,el))) then
|
||||||
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
||||||
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
||||||
neighbor_n = mesh_ipNeighborhood(3,n,ip,el)
|
neighbor_n = mesh_ipNeighborhood(3,n,ip,el)
|
||||||
np = mappingConstitutive(2,1,neighbor_ip,neighbor_el)
|
np = phaseAt(1,neighbor_ip,neighbor_el)
|
||||||
no = mappingConstitutive(1,1,neighbor_ip,neighbor_el)
|
no = phasememberAt(1,neighbor_ip,neighbor_el)
|
||||||
|
|
||||||
opposite_neighbor = n + mod(n,2_pInt) - mod(n+1_pInt,2_pInt)
|
opposite_neighbor = n + mod(n,2_pInt) - mod(n+1_pInt,2_pInt)
|
||||||
opposite_el = mesh_ipNeighborhood(1,opposite_neighbor,ip,el)
|
opposite_el = mesh_ipNeighborhood(1,opposite_neighbor,ip,el)
|
||||||
|
@ -3197,7 +3197,7 @@ use mesh, only: mesh_NcpElems, &
|
||||||
use material, only: homogenization_maxNgrains, &
|
use material, only: homogenization_maxNgrains, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive,&
|
phaseAt, phasememberAt,&
|
||||||
phase_localPlasticity, &
|
phase_localPlasticity, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: lattice_mu, &
|
use lattice, only: lattice_mu, &
|
||||||
|
@ -3266,8 +3266,8 @@ real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phase(1_pInt
|
||||||
ph = material_phase(1_pInt,ip,el)
|
ph = material_phase(1_pInt,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = totalNslip(instance)
|
ns = totalNslip(instance)
|
||||||
p = mappingConstitutive(2,1,ip,el)
|
p = phaseAt(1,ip,el)
|
||||||
o = mappingConstitutive(1,1,ip,el)
|
o = phasememberAt(1,ip,el)
|
||||||
|
|
||||||
!*** get basic states
|
!*** get basic states
|
||||||
|
|
||||||
|
@ -3309,8 +3309,8 @@ if (.not. phase_localPlasticity(ph)) then
|
||||||
do neighbor_el = 1_pInt,mesh_NcpElems
|
do neighbor_el = 1_pInt,mesh_NcpElems
|
||||||
ipLoop: do neighbor_ip = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,neighbor_el)))
|
ipLoop: do neighbor_ip = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,neighbor_el)))
|
||||||
neighbor_phase = material_phase(1_pInt,neighbor_ip,neighbor_el)
|
neighbor_phase = material_phase(1_pInt,neighbor_ip,neighbor_el)
|
||||||
np = mappingConstitutive(2,1,neighbor_ip,neighbor_el)
|
np = phaseAt(1,neighbor_ip,neighbor_el)
|
||||||
no = mappingConstitutive(1,1,neighbor_ip,neighbor_el)
|
no = phasememberAt(1,neighbor_ip,neighbor_el)
|
||||||
|
|
||||||
if (phase_localPlasticity(neighbor_phase)) cycle
|
if (phase_localPlasticity(neighbor_phase)) cycle
|
||||||
neighbor_instance = phase_plasticityInstance(neighbor_phase)
|
neighbor_instance = phase_plasticityInstance(neighbor_phase)
|
||||||
|
@ -3537,7 +3537,7 @@ function plastic_nonlocal_postResults(Tstar_v,Fe,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
homogenization_maxNgrains, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
|
@ -3596,8 +3596,8 @@ function plastic_nonlocal_postResults(Tstar_v,Fe,ip,el)
|
||||||
real(pReal), dimension(3,3) :: &
|
real(pReal), dimension(3,3) :: &
|
||||||
sigma
|
sigma
|
||||||
|
|
||||||
ph = mappingConstitutive(2,1,ip,el)
|
ph = phaseAt(1,ip,el)
|
||||||
of = mappingConstitutive(1,1,ip,el)
|
of = phasememberAt(1,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = totalNslip(instance)
|
ns = totalNslip(instance)
|
||||||
|
|
||||||
|
|
|
@ -762,7 +762,7 @@ subroutine plastic_phenoplus_microstructure(orientation,ipc,ip,el)
|
||||||
use material, only: material_phase, &
|
use material, only: material_phase, &
|
||||||
material_texture, &
|
material_texture, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
homogenization_maxNgrains, &
|
homogenization_maxNgrains, &
|
||||||
plasticState
|
plasticState
|
||||||
|
|
||||||
|
@ -828,8 +828,8 @@ subroutine plastic_phenoplus_microstructure(orientation,ipc,ip,el)
|
||||||
|
|
||||||
!***Get my properties
|
!***Get my properties
|
||||||
Nneighbors = FE_NipNeighbors(FE_celltype(FE_geomtype(mesh_element(2,el))))
|
Nneighbors = FE_NipNeighbors(FE_celltype(FE_geomtype(mesh_element(2,el))))
|
||||||
ph = mappingConstitutive(2,ipc,ip,el) !get my phase
|
ph = phaseAt(ipc,ip,el) !get my phase
|
||||||
of = mappingConstitutive(1,ipc,ip,el) !get my spatial location offset in memory
|
of = phasememberAt(ipc,ip,el) !get my spatial location offset in memory
|
||||||
textureID = material_texture(1,ip,el) !get my texture ID
|
textureID = material_texture(1,ip,el) !get my texture ID
|
||||||
instance = phase_plasticityInstance(ph) !get my instance based on phase ID
|
instance = phase_plasticityInstance(ph) !get my instance based on phase ID
|
||||||
ns = plastic_phenoplus_totalNslip(instance)
|
ns = plastic_phenoplus_totalNslip(instance)
|
||||||
|
@ -861,8 +861,8 @@ subroutine plastic_phenoplus_microstructure(orientation,ipc,ip,el)
|
||||||
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
neighbor_el = mesh_ipNeighborhood(1,n,ip,el)
|
||||||
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
neighbor_ip = mesh_ipNeighborhood(2,n,ip,el)
|
||||||
neighbor_n = 1 !It is ipc
|
neighbor_n = 1 !It is ipc
|
||||||
neighbor_of = mappingConstitutive(1, neighbor_n, neighbor_ip, neighbor_el)
|
neighbor_of = phasememberAt( neighbor_n, neighbor_ip, neighbor_el)
|
||||||
neighbor_ph = mappingConstitutive(2, neighbor_n, neighbor_ip, neighbor_el)
|
neighbor_ph = phaseAt( neighbor_n, neighbor_ip, neighbor_el)
|
||||||
neighbor_tex = material_texture(1,neighbor_ip,neighbor_el)
|
neighbor_tex = material_texture(1,neighbor_ip,neighbor_el)
|
||||||
neighbor_orientation = orientation(1:4, neighbor_n, neighbor_ip, neighbor_el) !ipc is always 1.
|
neighbor_orientation = orientation(1:4, neighbor_n, neighbor_ip, neighbor_el) !ipc is always 1.
|
||||||
absMisorientation = lattice_qDisorientation(my_orientation, &
|
absMisorientation = lattice_qDisorientation(my_orientation, &
|
||||||
|
@ -941,7 +941,7 @@ subroutine plastic_phenoplus_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
lattice_NnonSchmid
|
lattice_NnonSchmid
|
||||||
use material, only: &
|
use material, only: &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -974,8 +974,8 @@ subroutine plastic_phenoplus_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,el)
|
||||||
real(pReal), dimension(3,3,2) :: &
|
real(pReal), dimension(3,3,2) :: &
|
||||||
nonSchmid_tensor
|
nonSchmid_tensor
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
nSlip = plastic_phenoplus_totalNslip(instance)
|
nSlip = plastic_phenoplus_totalNslip(instance)
|
||||||
nTwin = plastic_phenoplus_totalNtwin(instance)
|
nTwin = plastic_phenoplus_totalNtwin(instance)
|
||||||
|
@ -1106,7 +1106,7 @@ subroutine plastic_phenoplus_dotState(Tstar_v,ipc,ip,el)
|
||||||
lattice_NnonSchmid
|
lattice_NnonSchmid
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
|
@ -1135,8 +1135,8 @@ subroutine plastic_phenoplus_dotState(Tstar_v,ipc,ip,el)
|
||||||
real(pReal), dimension(plastic_phenoplus_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
real(pReal), dimension(plastic_phenoplus_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||||
gdot_twin,left_TwinSlip,left_TwinTwin,right_SlipTwin,right_TwinTwin
|
gdot_twin,left_TwinSlip,left_TwinTwin,right_SlipTwin,right_TwinTwin
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
|
|
||||||
nSlip = plastic_phenoplus_totalNslip(instance)
|
nSlip = plastic_phenoplus_totalNslip(instance)
|
||||||
|
@ -1269,7 +1269,7 @@ function plastic_phenoplus_postResults(Tstar_v,ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
|
@ -1299,8 +1299,8 @@ function plastic_phenoplus_postResults(Tstar_v,ipc,ip,el)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
tau_slip_pos,tau_slip_neg,tau
|
tau_slip_pos,tau_slip_neg,tau
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
|
|
||||||
nSlip = plastic_phenoplus_totalNslip(instance)
|
nSlip = plastic_phenoplus_totalNslip(instance)
|
||||||
|
|
|
@ -788,7 +788,7 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
lattice_NtwinSystem, &
|
lattice_NtwinSystem, &
|
||||||
lattice_NnonSchmid
|
lattice_NnonSchmid
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -820,8 +820,8 @@ subroutine plastic_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,ipc,ip,
|
||||||
real(pReal), dimension(3,3,2) :: &
|
real(pReal), dimension(3,3,2) :: &
|
||||||
nonSchmid_tensor
|
nonSchmid_tensor
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
|
|
||||||
Lp = 0.0_pReal
|
Lp = 0.0_pReal
|
||||||
|
@ -928,7 +928,7 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
lattice_NnonSchmid
|
lattice_NnonSchmid
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
|
|
||||||
|
@ -957,8 +957,8 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
real(pReal), dimension(plastic_phenopowerlaw_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
real(pReal), dimension(plastic_phenopowerlaw_totalNtwin(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||||
gdot_twin,left_TwinSlip,left_TwinTwin,right_SlipTwin,right_TwinTwin
|
gdot_twin,left_TwinSlip,left_TwinTwin,right_SlipTwin,right_TwinTwin
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
|
|
||||||
nSlip = plastic_phenopowerlaw_totalNslip(instance)
|
nSlip = plastic_phenopowerlaw_totalNslip(instance)
|
||||||
|
@ -1083,7 +1083,7 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_Sslip_v, &
|
lattice_Sslip_v, &
|
||||||
|
@ -1113,8 +1113,8 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
tau_slip_pos,tau_slip_neg,tau
|
tau_slip_pos,tau_slip_neg,tau
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
|
|
||||||
nSlip = plastic_phenopowerlaw_totalNslip(instance)
|
nSlip = plastic_phenopowerlaw_totalNslip(instance)
|
||||||
|
|
|
@ -1173,7 +1173,7 @@ function plastic_titanmod_homogenizedC(ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_C66
|
lattice_C66
|
||||||
|
|
||||||
|
@ -1198,8 +1198,8 @@ real(pReal), dimension(plastic_titanmod_totalNtwin(phase_plasticityInstance(mate
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! shortened notation
|
! shortened notation
|
||||||
! ph = material_phase(ipc,ip,el)
|
! ph = material_phase(ipc,ip,el)
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_titanmod_totalNslip(instance)
|
ns = plastic_titanmod_totalNslip(instance)
|
||||||
nt = plastic_titanmod_totalNtwin(instance)
|
nt = plastic_titanmod_totalNtwin(instance)
|
||||||
|
@ -1233,7 +1233,7 @@ subroutine plastic_titanmod_microstructure(temperature,ipc,ip,el)
|
||||||
material_phase,&
|
material_phase,&
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_mu
|
lattice_mu
|
||||||
|
|
||||||
|
@ -1260,8 +1260,8 @@ subroutine plastic_titanmod_microstructure(temperature,ipc,ip,el)
|
||||||
|
|
||||||
!Shortened notation
|
!Shortened notation
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_titanmod_totalNslip(instance)
|
ns = plastic_titanmod_totalNslip(instance)
|
||||||
nt = plastic_titanmod_totalNtwin(instance)
|
nt = plastic_titanmod_totalNtwin(instance)
|
||||||
|
@ -1345,7 +1345,7 @@ subroutine plastic_titanmod_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,temperature,
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(3,3), intent(out) :: &
|
real(pReal), dimension(3,3), intent(out) :: &
|
||||||
|
@ -1386,8 +1386,8 @@ subroutine plastic_titanmod_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,temperature,
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! shortened notation
|
! shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_titanmod_totalNslip(instance)
|
ns = plastic_titanmod_totalNslip(instance)
|
||||||
nt = plastic_titanmod_totalNtwin(instance)
|
nt = plastic_titanmod_totalNtwin(instance)
|
||||||
|
@ -1656,7 +1656,7 @@ subroutine plastic_titanmod_dotState(Tstar_v,temperature,ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(6), intent(in):: &
|
real(pReal), dimension(6), intent(in):: &
|
||||||
|
@ -1690,8 +1690,8 @@ implicit none
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! shortened notation
|
! shortened notation
|
||||||
|
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_titanmod_totalNslip(instance)
|
ns = plastic_titanmod_totalNslip(instance)
|
||||||
nt = plastic_titanmod_totalNtwin(instance)
|
nt = plastic_titanmod_totalNtwin(instance)
|
||||||
|
@ -1772,7 +1772,7 @@ function plastic_titanmod_postResults(ipc,ip,el)
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -1795,8 +1795,8 @@ function plastic_titanmod_postResults(ipc,ip,el)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! shortened notation
|
! shortened notation
|
||||||
of = mappingConstitutive(1,ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = mappingConstitutive(2,ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
instance = phase_plasticityInstance(ph)
|
instance = phase_plasticityInstance(ph)
|
||||||
ns = plastic_titanmod_totalNslip(instance)
|
ns = plastic_titanmod_totalNslip(instance)
|
||||||
nt = plastic_titanmod_totalNtwin(instance)
|
nt = plastic_titanmod_totalNtwin(instance)
|
||||||
|
|
|
@ -294,7 +294,7 @@ end subroutine source_damage_anisoBrittle_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_anisoBrittle_dotState(Tstar_v, ipc, ip, el)
|
subroutine source_damage_anisoBrittle_dotState(Tstar_v, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
damage, &
|
damage, &
|
||||||
|
@ -322,8 +322,8 @@ subroutine source_damage_anisoBrittle_dotState(Tstar_v, ipc, ip, el)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
traction_d, traction_t, traction_n, traction_crit
|
traction_d, traction_t, traction_n, traction_crit
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_anisoBrittle_instance(phase)
|
instance = source_damage_anisoBrittle_instance(phase)
|
||||||
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
|
@ -357,7 +357,7 @@ end subroutine source_damage_anisoBrittle_dotState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_anisobrittle_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
subroutine source_damage_anisobrittle_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -373,8 +373,8 @@ subroutine source_damage_anisobrittle_getRateAndItsTangent(localphiDot, dLocalph
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent, sourceOffset
|
phase, constituent, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
||||||
|
|
||||||
localphiDot = 1.0_pReal - &
|
localphiDot = 1.0_pReal - &
|
||||||
|
@ -389,7 +389,7 @@ end subroutine source_damage_anisobrittle_getRateAndItsTangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function source_damage_anisoBrittle_postResults(ipc,ip,el)
|
function source_damage_anisoBrittle_postResults(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -398,14 +398,14 @@ function source_damage_anisoBrittle_postResults(ipc,ip,el)
|
||||||
ip, & !< integration point
|
ip, & !< integration point
|
||||||
el !< element
|
el !< element
|
||||||
real(pReal), dimension(source_damage_anisoBrittle_sizePostResults( &
|
real(pReal), dimension(source_damage_anisoBrittle_sizePostResults( &
|
||||||
source_damage_anisoBrittle_instance(mappingConstitutive(2,ipc,ip,el)))) :: &
|
source_damage_anisoBrittle_instance(phaseAt(ipc,ip,el)))) :: &
|
||||||
source_damage_anisoBrittle_postResults
|
source_damage_anisoBrittle_postResults
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset, o, c
|
instance, phase, constituent, sourceOffset, o, c
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_anisoBrittle_instance(phase)
|
instance = source_damage_anisoBrittle_instance(phase)
|
||||||
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
sourceOffset = source_damage_anisoBrittle_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -296,7 +296,7 @@ end subroutine source_damage_anisoDuctile_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_anisoDuctile_dotState(ipc, ip, el)
|
subroutine source_damage_anisoDuctile_dotState(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
|
@ -318,8 +318,8 @@ subroutine source_damage_anisoDuctile_dotState(ipc, ip, el)
|
||||||
instance, &
|
instance, &
|
||||||
index, f, i
|
index, f, i
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_anisoDuctile_instance(phase)
|
instance = source_damage_anisoDuctile_instance(phase)
|
||||||
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
|
@ -346,7 +346,7 @@ end subroutine source_damage_anisoDuctile_dotState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_anisoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
subroutine source_damage_anisoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -362,8 +362,8 @@ subroutine source_damage_anisoDuctile_getRateAndItsTangent(localphiDot, dLocalph
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent, sourceOffset
|
phase, constituent, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
||||||
|
|
||||||
localphiDot = 1.0_pReal - &
|
localphiDot = 1.0_pReal - &
|
||||||
|
@ -379,7 +379,7 @@ end subroutine source_damage_anisoDuctile_getRateAndItsTangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function source_damage_anisoDuctile_postResults(ipc,ip,el)
|
function source_damage_anisoDuctile_postResults(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -388,14 +388,14 @@ function source_damage_anisoDuctile_postResults(ipc,ip,el)
|
||||||
ip, & !< integration point
|
ip, & !< integration point
|
||||||
el !< element
|
el !< element
|
||||||
real(pReal), dimension(source_damage_anisoDuctile_sizePostResults( &
|
real(pReal), dimension(source_damage_anisoDuctile_sizePostResults( &
|
||||||
source_damage_anisoDuctile_instance(mappingConstitutive(2,ipc,ip,el)))) :: &
|
source_damage_anisoDuctile_instance(phaseAt(ipc,ip,el)))) :: &
|
||||||
source_damage_anisoDuctile_postResults
|
source_damage_anisoDuctile_postResults
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset, o, c
|
instance, phase, constituent, sourceOffset, o, c
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_anisoDuctile_instance(phase)
|
instance = source_damage_anisoDuctile_instance(phase)
|
||||||
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
sourceOffset = source_damage_anisoDuctile_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ end subroutine source_damage_isoBrittle_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoBrittle_deltaState(C, Fe, ipc, ip, el)
|
subroutine source_damage_isoBrittle_deltaState(C, Fe, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
phase_NstiffnessDegradations, &
|
phase_NstiffnessDegradations, &
|
||||||
|
@ -279,8 +279,8 @@ subroutine source_damage_isoBrittle_deltaState(C, Fe, ipc, ip, el)
|
||||||
stiffness(6,6), &
|
stiffness(6,6), &
|
||||||
strainenergy
|
strainenergy
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el) !< phase ID at ipc,ip,el
|
phase = phaseAt(ipc,ip,el) !< phase ID at ipc,ip,el
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el) !< state array offset for phase ID at ipc,ip,el
|
constituent = phasememberAt(ipc,ip,el) !< state array offset for phase ID at ipc,ip,el
|
||||||
! ToDo: capability for multiple instances of SAME source within given phase. Needs Ninstance loop from here on!
|
! ToDo: capability for multiple instances of SAME source within given phase. Needs Ninstance loop from here on!
|
||||||
instance = source_damage_isoBrittle_instance(phase) !< instance of damage_isoBrittle source
|
instance = source_damage_isoBrittle_instance(phase) !< instance of damage_isoBrittle source
|
||||||
sourceOffset = source_damage_isoBrittle_offset(phase)
|
sourceOffset = source_damage_isoBrittle_offset(phase)
|
||||||
|
@ -314,7 +314,7 @@ end subroutine source_damage_isoBrittle_deltaState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoBrittle_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
subroutine source_damage_isoBrittle_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -330,8 +330,8 @@ subroutine source_damage_isoBrittle_getRateAndItsTangent(localphiDot, dLocalphiD
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent, instance, sourceOffset
|
phase, constituent, instance, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_isoBrittle_instance(phase)
|
instance = source_damage_isoBrittle_instance(phase)
|
||||||
sourceOffset = source_damage_isoBrittle_offset(phase)
|
sourceOffset = source_damage_isoBrittle_offset(phase)
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ end subroutine source_damage_isoBrittle_getRateAndItsTangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function source_damage_isoBrittle_postResults(ipc,ip,el)
|
function source_damage_isoBrittle_postResults(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -357,14 +357,14 @@ function source_damage_isoBrittle_postResults(ipc,ip,el)
|
||||||
ip, & !< integration point
|
ip, & !< integration point
|
||||||
el !< element
|
el !< element
|
||||||
real(pReal), dimension(source_damage_isoBrittle_sizePostResults( &
|
real(pReal), dimension(source_damage_isoBrittle_sizePostResults( &
|
||||||
source_damage_isoBrittle_instance(mappingConstitutive(2,ipc,ip,el)))) :: &
|
source_damage_isoBrittle_instance(phaseAt(ipc,ip,el)))) :: &
|
||||||
source_damage_isoBrittle_postResults
|
source_damage_isoBrittle_postResults
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset, o, c
|
instance, phase, constituent, sourceOffset, o, c
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_isoBrittle_instance(phase)
|
instance = source_damage_isoBrittle_instance(phase)
|
||||||
sourceOffset = source_damage_isoBrittle_offset(phase)
|
sourceOffset = source_damage_isoBrittle_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ end subroutine source_damage_isoDuctile_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoDuctile_dotState(ipc, ip, el)
|
subroutine source_damage_isoDuctile_dotState(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState, &
|
plasticState, &
|
||||||
sourceState, &
|
sourceState, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
|
@ -263,8 +263,8 @@ subroutine source_damage_isoDuctile_dotState(ipc, ip, el)
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent, instance, homog, sourceOffset, damageOffset
|
phase, constituent, instance, homog, sourceOffset, damageOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_isoDuctile_instance(phase)
|
instance = source_damage_isoDuctile_instance(phase)
|
||||||
sourceOffset = source_damage_isoDuctile_offset(phase)
|
sourceOffset = source_damage_isoDuctile_offset(phase)
|
||||||
homog = material_homog(ip,el)
|
homog = material_homog(ip,el)
|
||||||
|
@ -282,7 +282,7 @@ end subroutine source_damage_isoDuctile_dotState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
subroutine source_damage_isoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -298,8 +298,8 @@ subroutine source_damage_isoDuctile_getRateAndItsTangent(localphiDot, dLocalphiD
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent, sourceOffset
|
phase, constituent, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_damage_isoDuctile_offset(phase)
|
sourceOffset = source_damage_isoDuctile_offset(phase)
|
||||||
|
|
||||||
localphiDot = 1.0_pReal - &
|
localphiDot = 1.0_pReal - &
|
||||||
|
@ -315,7 +315,7 @@ end subroutine source_damage_isoDuctile_getRateAndItsTangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function source_damage_isoDuctile_postResults(ipc,ip,el)
|
function source_damage_isoDuctile_postResults(ipc,ip,el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -324,14 +324,14 @@ function source_damage_isoDuctile_postResults(ipc,ip,el)
|
||||||
ip, & !< integration point
|
ip, & !< integration point
|
||||||
el !< element
|
el !< element
|
||||||
real(pReal), dimension(source_damage_isoDuctile_sizePostResults( &
|
real(pReal), dimension(source_damage_isoDuctile_sizePostResults( &
|
||||||
source_damage_isoDuctile_instance(mappingConstitutive(2,ipc,ip,el)))) :: &
|
source_damage_isoDuctile_instance(phaseAt(ipc,ip,el)))) :: &
|
||||||
source_damage_isoDuctile_postResults
|
source_damage_isoDuctile_postResults
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset, o, c
|
instance, phase, constituent, sourceOffset, o, c
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_damage_isoDuctile_instance(phase)
|
instance = source_damage_isoDuctile_instance(phase)
|
||||||
sourceOffset = source_damage_isoDuctile_offset(phase)
|
sourceOffset = source_damage_isoDuctile_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ subroutine source_thermal_dissipation_getRateAndItsTangent(TDot, dTDOT_dT, Tstar
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_Mandel6to33
|
math_Mandel6to33
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive
|
phaseAt, phasememberAt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -208,8 +208,8 @@ subroutine source_thermal_dissipation_getRateAndItsTangent(TDot, dTDOT_dT, Tstar
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent
|
instance, phase, constituent
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_thermal_dissipation_instance(phase)
|
instance = source_thermal_dissipation_instance(phase)
|
||||||
|
|
||||||
TDot = source_thermal_dissipation_coldworkCoeff(instance)* &
|
TDot = source_thermal_dissipation_coldworkCoeff(instance)* &
|
||||||
|
|
|
@ -215,7 +215,7 @@ end subroutine source_thermal_externalheat_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_thermal_externalheat_dotState(ipc, ip, el)
|
subroutine source_thermal_externalheat_dotState(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -228,8 +228,8 @@ subroutine source_thermal_externalheat_dotState(ipc, ip, el)
|
||||||
constituent, &
|
constituent, &
|
||||||
sourceOffset
|
sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_thermal_externalheat_offset(phase)
|
sourceOffset = source_thermal_externalheat_offset(phase)
|
||||||
|
|
||||||
sourceState(phase)%p(sourceOffset)%dotState(1,constituent) = 1.0_pReal
|
sourceState(phase)%p(sourceOffset)%dotState(1,constituent) = 1.0_pReal
|
||||||
|
@ -241,7 +241,7 @@ end subroutine source_thermal_externalheat_dotState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_thermal_externalheat_getRateAndItsTangent(TDot, dTDot_dT, ipc, ip, el)
|
subroutine source_thermal_externalheat_getRateAndItsTangent(TDot, dTDot_dT, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -257,8 +257,8 @@ subroutine source_thermal_externalheat_getRateAndItsTangent(TDot, dTDot_dT, ipc,
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
norm_time
|
norm_time
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_thermal_externalheat_instance(phase)
|
instance = source_thermal_externalheat_instance(phase)
|
||||||
sourceOffset = source_thermal_externalheat_offset(phase)
|
sourceOffset = source_thermal_externalheat_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -195,7 +195,7 @@ end subroutine source_vacancy_irradiation_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_vacancy_irradiation_deltaState(ipc, ip, el)
|
subroutine source_vacancy_irradiation_deltaState(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -208,8 +208,8 @@ subroutine source_vacancy_irradiation_deltaState(ipc, ip, el)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
randNo
|
randNo
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_vacancy_irradiation_offset(phase)
|
sourceOffset = source_vacancy_irradiation_offset(phase)
|
||||||
|
|
||||||
call random_number(randNo)
|
call random_number(randNo)
|
||||||
|
@ -226,7 +226,7 @@ end subroutine source_vacancy_irradiation_deltaState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_vacancy_irradiation_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
subroutine source_vacancy_irradiation_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -239,8 +239,8 @@ subroutine source_vacancy_irradiation_getRateAndItsTangent(CvDot, dCvDot_dCv, ip
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset
|
instance, phase, constituent, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_vacancy_irradiation_instance(phase)
|
instance = source_vacancy_irradiation_instance(phase)
|
||||||
sourceOffset = source_vacancy_irradiation_offset(phase)
|
sourceOffset = source_vacancy_irradiation_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ end subroutine source_vacancy_phenoplasticity_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_vacancy_phenoplasticity_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
subroutine source_vacancy_phenoplasticity_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
plasticState
|
plasticState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -202,8 +202,8 @@ subroutine source_vacancy_phenoplasticity_getRateAndItsTangent(CvDot, dCvDot_dCv
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent
|
instance, phase, constituent
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_vacancy_phenoplasticity_instance(phase)
|
instance = source_vacancy_phenoplasticity_instance(phase)
|
||||||
|
|
||||||
CvDot = &
|
CvDot = &
|
||||||
|
|
|
@ -196,7 +196,7 @@ end subroutine source_vacancy_thermalfluc_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_vacancy_thermalfluc_deltaState(ipc, ip, el)
|
subroutine source_vacancy_thermalfluc_deltaState(ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
sourceState
|
sourceState
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -209,8 +209,8 @@ subroutine source_vacancy_thermalfluc_deltaState(ipc, ip, el)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
randNo
|
randNo
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
sourceOffset = source_vacancy_thermalfluc_offset(phase)
|
sourceOffset = source_vacancy_thermalfluc_offset(phase)
|
||||||
|
|
||||||
call random_number(randNo)
|
call random_number(randNo)
|
||||||
|
@ -224,7 +224,7 @@ end subroutine source_vacancy_thermalfluc_deltaState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_vacancy_thermalfluc_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
subroutine source_vacancy_thermalfluc_getRateAndItsTangent(CvDot, dCvDot_dCv, ipc, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
material_homog, &
|
material_homog, &
|
||||||
temperature, &
|
temperature, &
|
||||||
thermalMapping, &
|
thermalMapping, &
|
||||||
|
@ -240,8 +240,8 @@ subroutine source_vacancy_thermalfluc_getRateAndItsTangent(CvDot, dCvDot_dCv, ip
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
instance, phase, constituent, sourceOffset
|
instance, phase, constituent, sourceOffset
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = phaseAt(ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = phasememberAt(ipc,ip,el)
|
||||||
instance = source_vacancy_thermalfluc_instance(phase)
|
instance = source_vacancy_thermalfluc_instance(phase)
|
||||||
sourceOffset = source_vacancy_thermalfluc_offset(phase)
|
sourceOffset = source_vacancy_thermalfluc_offset(phase)
|
||||||
|
|
||||||
|
|
|
@ -239,7 +239,7 @@ subroutine thermal_adiabatic_getSourceAndItsTangent(Tdot, dTdot_dT, T, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
thermal_typeInstance, &
|
thermal_typeInstance, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
|
@ -278,7 +278,7 @@ subroutine thermal_adiabatic_getSourceAndItsTangent(Tdot, dTdot_dT, T, ip, el)
|
||||||
Tdot = 0.0_pReal
|
Tdot = 0.0_pReal
|
||||||
dTdot_dT = 0.0_pReal
|
dTdot_dT = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(homog)
|
do grain = 1, homogenization_Ngrains(homog)
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1, phase_Nsources(phase)
|
do source = 1, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_thermal_dissipation_ID)
|
case (SOURCE_thermal_dissipation_ID)
|
||||||
|
|
|
@ -193,7 +193,7 @@ subroutine thermal_conduction_getSourceAndItsTangent(Tdot, dTdot_dT, T, ip, el)
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
thermal_typeInstance, &
|
thermal_typeInstance, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
|
@ -232,7 +232,7 @@ subroutine thermal_conduction_getSourceAndItsTangent(Tdot, dTdot_dT, T, ip, el)
|
||||||
Tdot = 0.0_pReal
|
Tdot = 0.0_pReal
|
||||||
dTdot_dT = 0.0_pReal
|
dTdot_dT = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(homog)
|
do grain = 1, homogenization_Ngrains(homog)
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1, phase_Nsources(phase)
|
do source = 1, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_thermal_dissipation_ID)
|
case (SOURCE_thermal_dissipation_ID)
|
||||||
|
|
|
@ -222,7 +222,7 @@ subroutine vacancyflux_cahnhilliard_getSourceAndItsTangent(CvDot, dCvDot_dCv, Cv
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
SOURCE_vacancy_phenoplasticity_ID, &
|
SOURCE_vacancy_phenoplasticity_ID, &
|
||||||
|
@ -251,7 +251,7 @@ subroutine vacancyflux_cahnhilliard_getSourceAndItsTangent(CvDot, dCvDot_dCv, Cv
|
||||||
CvDot = 0.0_pReal
|
CvDot = 0.0_pReal
|
||||||
dCvDot_dCv = 0.0_pReal
|
dCvDot_dCv = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1_pInt, phase_Nsources(phase)
|
do source = 1_pInt, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_vacancy_phenoplasticity_ID)
|
case (SOURCE_vacancy_phenoplasticity_ID)
|
||||||
|
|
|
@ -238,7 +238,7 @@ subroutine vacancyflux_isochempot_getSourceAndItsTangent(CvDot, dCvDot_dCv, Cv,
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
mappingHomogenization, &
|
mappingHomogenization, &
|
||||||
mappingConstitutive, &
|
phaseAt, phasememberAt, &
|
||||||
phase_source, &
|
phase_source, &
|
||||||
phase_Nsources, &
|
phase_Nsources, &
|
||||||
SOURCE_vacancy_phenoplasticity_ID, &
|
SOURCE_vacancy_phenoplasticity_ID, &
|
||||||
|
@ -267,7 +267,7 @@ subroutine vacancyflux_isochempot_getSourceAndItsTangent(CvDot, dCvDot_dCv, Cv,
|
||||||
CvDot = 0.0_pReal
|
CvDot = 0.0_pReal
|
||||||
dCvDot_dCv = 0.0_pReal
|
dCvDot_dCv = 0.0_pReal
|
||||||
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
do grain = 1, homogenization_Ngrains(mappingHomogenization(2,ip,el))
|
||||||
phase = mappingConstitutive(2,grain,ip,el)
|
phase = phaseAt(grain,ip,el)
|
||||||
do source = 1_pInt, phase_Nsources(phase)
|
do source = 1_pInt, phase_Nsources(phase)
|
||||||
select case(phase_source(source,phase))
|
select case(phase_source(source,phase))
|
||||||
case (SOURCE_vacancy_phenoplasticity_ID)
|
case (SOURCE_vacancy_phenoplasticity_ID)
|
||||||
|
|
Loading…
Reference in New Issue