diff --git a/src/discretization.f90 b/src/discretization.f90 index 2b19cb20b..22abbd644 100644 --- a/src/discretization.f90 +++ b/src/discretization.f90 @@ -15,7 +15,7 @@ module discretization discretization_Nelems integer, public, protected, dimension(:), allocatable :: & - discretization_materialAt + discretization_materialAt !ToDo: discretization_materialID real(pReal), public, protected, dimension(:,:), allocatable :: & discretization_IPcoords0, & diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 991c39024..778cc855e 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -284,7 +284,7 @@ program DAMASK_grid if (loadCases(l)%f_restart < 1) errorID = 839 if (dEq(loadCases(l)%r,1.0_pReal,1.e-9_pReal)) then - print'(a)', ' r: 1 (constant step widths)' + print'(a)', ' r: 1 (constant step width)' else print'(a,f0.3)', ' r: ', loadCases(l)%r endif diff --git a/src/phase.f90 b/src/phase.f90 index 927ba6b2b..f0b5c4e22 100644 --- a/src/phase.f90 +++ b/src/phase.f90 @@ -220,12 +220,11 @@ module phase end function thermal_stress - module function integrateDamageState(dt,co,ip,el) result(broken) + module function integrateDamageState(dt,co,ce) result(broken) real(pReal), intent(in) :: dt integer, intent(in) :: & - el, & !< element index in element loop - ip, & !< integration point index in ip loop - co !< grain index in grain loop + ce, & + co logical :: broken end function integrateDamageState diff --git a/src/phase_damage.f90 b/src/phase_damage.f90 index 5a1d5970b..5b9d8fd5f 100644 --- a/src/phase_damage.f90 +++ b/src/phase_damage.f90 @@ -171,13 +171,12 @@ end function phase_f_phi !> @brief integrate stress, state with adaptive 1st order explicit Euler method !> using Fixed Point Iteration to adapt the stepsize !-------------------------------------------------------------------------------------------------- -module function integrateDamageState(dt,co,ip,el) result(broken) +module function integrateDamageState(dt,co,ce) result(broken) real(pReal), intent(in) :: dt integer, intent(in) :: & - el, & !< element index in element loop - ip, & !< integration point index in ip loop - co !< grain index in grain loop + ce, & + co logical :: broken integer :: & @@ -193,8 +192,8 @@ module function integrateDamageState(dt,co,ip,el) result(broken) logical :: & converged_ - ph = material_phaseAt(co,el) - me = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,ce) + me = material_phaseEntry(co,ce) if (damageState(ph)%sizeState == 0) then broken = .false. diff --git a/src/phase_mechanical.f90 b/src/phase_mechanical.f90 index e2ad8f968..5c547df53 100644 --- a/src/phase_mechanical.f90 +++ b/src/phase_mechanical.f90 @@ -192,8 +192,6 @@ module subroutine mechanical_init(materials,phases) phases integer :: & - el, & - ip, & co, & ce, & ph, & @@ -257,14 +255,14 @@ module subroutine mechanical_init(materials,phases) #endif enddo - do el = 1, size(material_phaseMemberAt,3); do ip = 1, size(material_phaseMemberAt,2) - do co = 1, homogenization_Nconstituents(material_homogenizationAt(el)) - material => materials%get(discretization_materialAt(el)) + do ce = 1, size(discretization_materialAt,1) + do co = 1, homogenization_Nconstituents(material_homogenizationID(ce)) + material => materials%get(discretization_materialAt(ce)) constituents => material%get('constituents') constituent => constituents%get(co) - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,ce) + en = material_phaseEntry(co,ce) call material_orientation0(co,ph,en)%fromQuaternion(constituent%get_as1dFloat('O',requiredSize=4)) @@ -281,7 +279,7 @@ module subroutine mechanical_init(materials,phases) phase_mechanical_F(ph)%data(1:3,1:3,en) = phase_mechanical_F0(ph)%data(1:3,1:3,en) enddo - enddo; enddo + enddo ! initialize elasticity @@ -427,8 +425,8 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken) broken = .true. - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) call plastic_dependentState(co,ip,el) @@ -603,8 +601,8 @@ function integrateStateFPI(F_0,F,subFp0,subFi0,subState0,Delta_t,co,ip,el) resul dotState - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) broken = plastic_dotState(Delta_t, co,ip,el,ph,en) if(broken) return @@ -688,8 +686,8 @@ function integrateStateEuler(F_0,F,subFp0,subFi0,subState0,Delta_t,co,ip,el) res sizeDotState - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) broken = plastic_dotState(Delta_t, co,ip,el,ph,en) if(broken) return @@ -728,8 +726,8 @@ function integrateStateAdaptiveEuler(F_0,F,subFp0,subFi0,subState0,Delta_t,co,ip real(pReal), dimension(phase_plasticity_maxSizeDotState) :: residuum_plastic - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) broken = plastic_dotState(Delta_t, co,ip,el,ph,en) if(broken) return @@ -846,8 +844,8 @@ function integrateStateRK(F_0,F,subFp0,subFi0,subState0,Delta_t,co,ip,el,A,B,C,D real(pReal), dimension(phase_plasticity_maxSizeDotState,size(B)) :: plastic_RKdotState - ph = material_phaseAt(co,el) - en = material_phaseMemberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) broken = plastic_dotState(Delta_t,co,ip,el,ph,en) if(broken) return @@ -1105,7 +1103,7 @@ module function crystallite_stress(dt,co,ip,el) result(converged_) subF = subF0 & + subStep * (phase_mechanical_F(ph)%data(1:3,1:3,en) - phase_mechanical_F0(ph)%data(1:3,1:3,en)) converged_ = .not. integrateState(subF0,subF,subFp0,subFi0,subState0(1:sizeDotState),subStep * dt,co,ip,el) - converged_ = converged_ .and. .not. integrateDamageState(subStep * dt,co,ip,el) + converged_ = converged_ .and. .not. integrateDamageState(subStep * dt,co,(el-1)*discretization_nIPs + ip) endif enddo cutbackLooping diff --git a/src/phase_mechanical_plastic.f90 b/src/phase_mechanical_plastic.f90 index 33dfd681f..6a053e12d 100644 --- a/src/phase_mechanical_plastic.f90 +++ b/src/phase_mechanical_plastic.f90 @@ -360,10 +360,10 @@ module subroutine plastic_dependentState(co, ip, el) en - ph = material_phaseAt(co,el) - en = material_phasememberAt(co,ip,el) + ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) + en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) - plasticType: select case (phase_plasticity(material_phaseAt(co,el))) + plasticType: select case (phase_plasticity(ph)) case (PLASTICITY_DISLOTWIN_ID) plasticType call dislotwin_dependentState(thermal_T(ph,en),ph,en)