Merge branch 'development' into 19-NewStylePhenopowerlaw
This commit is contained in:
commit
fb80c41215
|
@ -3,10 +3,10 @@
|
||||||
#-------------------#
|
#-------------------#
|
||||||
|
|
||||||
[dummy]
|
[dummy]
|
||||||
type none
|
mech none
|
||||||
|
|
||||||
[poly]
|
[poly]
|
||||||
type isostrain
|
mech isostrain
|
||||||
Ngrains 10
|
Ngrains 10
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ gdot0_slip 0.001
|
||||||
n_slip 20
|
n_slip 20
|
||||||
tau0_slip 31e6 # per family
|
tau0_slip 31e6 # per family
|
||||||
tausat_slip 63e6 # per family
|
tausat_slip 63e6 # per family
|
||||||
w0_slip 2.25
|
a_slip 2.25
|
||||||
gdot0_twin 0.001
|
gdot0_twin 0.001
|
||||||
n_twin 20
|
n_twin 20
|
||||||
tau0_twin 31e6 # per family
|
tau0_twin 31e6 # per family
|
||||||
|
|
|
@ -141,7 +141,7 @@ subroutine constitutive_init()
|
||||||
integer(pInt), parameter :: FILEUNIT = 200_pInt
|
integer(pInt), parameter :: FILEUNIT = 200_pInt
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
o, & !< counter in output loop
|
o, & !< counter in output loop
|
||||||
p, & !< counter in phase loop
|
ph, & !< counter in phase loop
|
||||||
s, & !< counter in source loop
|
s, & !< counter in source loop
|
||||||
ins !< instance of plasticity/source
|
ins !< instance of plasticity/source
|
||||||
|
|
||||||
|
@ -202,11 +202,11 @@ subroutine constitutive_init()
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! write description file for constitutive output
|
! write description file for constitutive output
|
||||||
call IO_write_jobFile(FILEUNIT,'outputConstitutive')
|
call IO_write_jobFile(FILEUNIT,'outputConstitutive')
|
||||||
PhaseLoop: do p = 1_pInt,material_Nphase
|
PhaseLoop: do ph = 1_pInt,material_Nphase
|
||||||
activePhase: if (any(material_phase == p)) then
|
activePhase: if (any(material_phase == ph)) then
|
||||||
ins = phase_plasticityInstance(p)
|
ins = phase_plasticityInstance(ph)
|
||||||
knownPlasticity = .true. ! assume valid
|
knownPlasticity = .true. ! assume valid
|
||||||
plasticityType: select case(phase_plasticity(p))
|
plasticityType: select case(phase_plasticity(ph))
|
||||||
case (PLASTICITY_NONE_ID) plasticityType
|
case (PLASTICITY_NONE_ID) plasticityType
|
||||||
outputName = PLASTICITY_NONE_label
|
outputName = PLASTICITY_NONE_label
|
||||||
thisOutput => null()
|
thisOutput => null()
|
||||||
|
@ -238,62 +238,62 @@ subroutine constitutive_init()
|
||||||
case default plasticityType
|
case default plasticityType
|
||||||
knownPlasticity = .false.
|
knownPlasticity = .false.
|
||||||
end select plasticityType
|
end select plasticityType
|
||||||
write(FILEUNIT,'(/,a,/)') '['//trim(phase_name(p))//']'
|
write(FILEUNIT,'(/,a,/)') '['//trim(phase_name(ph))//']'
|
||||||
if (knownPlasticity) then
|
if (knownPlasticity) then
|
||||||
|
|
||||||
write(FILEUNIT,'(a)') '(plasticity)'//char(9)//trim(outputName)
|
write(FILEUNIT,'(a)') '(plasticity)'//char(9)//trim(outputName)
|
||||||
if (phase_plasticity(p) /= PLASTICITY_NONE_ID) then
|
if (phase_plasticity(ph) /= PLASTICITY_NONE_ID) then
|
||||||
OutputPlasticityLoop: do o = 1_pInt,size(thisOutput(:,ins))
|
OutputPlasticityLoop: do o = 1_pInt,size(thisOutput(:,ins))
|
||||||
if(len(trim(thisOutput(o,ins))) > 0_pInt) &
|
if(len(trim(thisOutput(o,ins))) > 0_pInt) &
|
||||||
write(FILEUNIT,'(a,i4)') trim(thisOutput(o,ins))//char(9),thisSize(o,ins)
|
write(FILEUNIT,'(a,i4)') trim(thisOutput(o,ins))//char(9),thisSize(o,ins)
|
||||||
enddo OutputPlasticityLoop
|
enddo OutputPlasticityLoop
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
SourceLoop: do s = 1_pInt, phase_Nsources(p)
|
|
||||||
|
SourceLoop: do s = 1_pInt, phase_Nsources(ph)
|
||||||
knownSource = .true. ! assume valid
|
knownSource = .true. ! assume valid
|
||||||
sourceType: select case (phase_source(s,p))
|
sourceType: select case (phase_source(s,ph))
|
||||||
case (SOURCE_thermal_dissipation_ID) sourceType
|
case (SOURCE_thermal_dissipation_ID) sourceType
|
||||||
ins = source_thermal_dissipation_instance(p)
|
ins = source_thermal_dissipation_instance(ph)
|
||||||
outputName = SOURCE_thermal_dissipation_label
|
outputName = SOURCE_thermal_dissipation_label
|
||||||
thisOutput => source_thermal_dissipation_output
|
thisOutput => source_thermal_dissipation_output
|
||||||
thisSize => source_thermal_dissipation_sizePostResult
|
thisSize => source_thermal_dissipation_sizePostResult
|
||||||
case (SOURCE_thermal_externalheat_ID) sourceType
|
case (SOURCE_thermal_externalheat_ID) sourceType
|
||||||
ins = source_thermal_externalheat_instance(p)
|
ins = source_thermal_externalheat_instance(ph)
|
||||||
outputName = SOURCE_thermal_externalheat_label
|
outputName = SOURCE_thermal_externalheat_label
|
||||||
thisOutput => source_thermal_externalheat_output
|
thisOutput => source_thermal_externalheat_output
|
||||||
thisSize => source_thermal_externalheat_sizePostResult
|
thisSize => source_thermal_externalheat_sizePostResult
|
||||||
case (SOURCE_damage_isoBrittle_ID) sourceType
|
case (SOURCE_damage_isoBrittle_ID) sourceType
|
||||||
ins = source_damage_isoBrittle_instance(p)
|
ins = source_damage_isoBrittle_instance(ph)
|
||||||
outputName = SOURCE_damage_isoBrittle_label
|
outputName = SOURCE_damage_isoBrittle_label
|
||||||
thisOutput => source_damage_isoBrittle_output
|
thisOutput => source_damage_isoBrittle_output
|
||||||
thisSize => source_damage_isoBrittle_sizePostResult
|
thisSize => source_damage_isoBrittle_sizePostResult
|
||||||
case (SOURCE_damage_isoDuctile_ID) sourceType
|
case (SOURCE_damage_isoDuctile_ID) sourceType
|
||||||
ins = source_damage_isoDuctile_instance(p)
|
ins = source_damage_isoDuctile_instance(ph)
|
||||||
outputName = SOURCE_damage_isoDuctile_label
|
outputName = SOURCE_damage_isoDuctile_label
|
||||||
thisOutput => source_damage_isoDuctile_output
|
thisOutput => source_damage_isoDuctile_output
|
||||||
thisSize => source_damage_isoDuctile_sizePostResult
|
thisSize => source_damage_isoDuctile_sizePostResult
|
||||||
case (SOURCE_damage_anisoBrittle_ID) sourceType
|
case (SOURCE_damage_anisoBrittle_ID) sourceType
|
||||||
ins = source_damage_anisoBrittle_instance(p)
|
ins = source_damage_anisoBrittle_instance(ph)
|
||||||
outputName = SOURCE_damage_anisoBrittle_label
|
outputName = SOURCE_damage_anisoBrittle_label
|
||||||
thisOutput => source_damage_anisoBrittle_output
|
thisOutput => source_damage_anisoBrittle_output
|
||||||
thisSize => source_damage_anisoBrittle_sizePostResult
|
thisSize => source_damage_anisoBrittle_sizePostResult
|
||||||
case (SOURCE_damage_anisoDuctile_ID) sourceType
|
case (SOURCE_damage_anisoDuctile_ID) sourceType
|
||||||
ins = source_damage_anisoDuctile_instance(p)
|
ins = source_damage_anisoDuctile_instance(ph)
|
||||||
outputName = SOURCE_damage_anisoDuctile_label
|
outputName = SOURCE_damage_anisoDuctile_label
|
||||||
thisOutput => source_damage_anisoDuctile_output
|
thisOutput => source_damage_anisoDuctile_output
|
||||||
thisSize => source_damage_anisoDuctile_sizePostResult
|
thisSize => source_damage_anisoDuctile_sizePostResult
|
||||||
case (SOURCE_vacancy_phenoplasticity_ID) sourceType
|
case (SOURCE_vacancy_phenoplasticity_ID) sourceType
|
||||||
ins = source_vacancy_phenoplasticity_instance(p)
|
ins = source_vacancy_phenoplasticity_instance(ph)
|
||||||
outputName = SOURCE_vacancy_phenoplasticity_label
|
outputName = SOURCE_vacancy_phenoplasticity_label
|
||||||
thisOutput => source_vacancy_phenoplasticity_output
|
thisOutput => source_vacancy_phenoplasticity_output
|
||||||
thisSize => source_vacancy_phenoplasticity_sizePostResult
|
thisSize => source_vacancy_phenoplasticity_sizePostResult
|
||||||
case (SOURCE_vacancy_irradiation_ID) sourceType
|
case (SOURCE_vacancy_irradiation_ID) sourceType
|
||||||
ins = source_vacancy_irradiation_instance(p)
|
ins = source_vacancy_irradiation_instance(ph)
|
||||||
outputName = SOURCE_vacancy_irradiation_label
|
outputName = SOURCE_vacancy_irradiation_label
|
||||||
thisOutput => source_vacancy_irradiation_output
|
thisOutput => source_vacancy_irradiation_output
|
||||||
thisSize => source_vacancy_irradiation_sizePostResult
|
thisSize => source_vacancy_irradiation_sizePostResult
|
||||||
case (SOURCE_vacancy_thermalfluc_ID) sourceType
|
case (SOURCE_vacancy_thermalfluc_ID) sourceType
|
||||||
ins = source_vacancy_thermalfluc_instance(p)
|
ins = source_vacancy_thermalfluc_instance(ph)
|
||||||
outputName = SOURCE_vacancy_thermalfluc_label
|
outputName = SOURCE_vacancy_thermalfluc_label
|
||||||
thisOutput => source_vacancy_thermalfluc_output
|
thisOutput => source_vacancy_thermalfluc_output
|
||||||
thisSize => source_vacancy_thermalfluc_sizePostResult
|
thisSize => source_vacancy_thermalfluc_sizePostResult
|
||||||
|
@ -318,29 +318,28 @@ subroutine constitutive_init()
|
||||||
constitutive_source_maxSizeDotState = 0_pInt
|
constitutive_source_maxSizeDotState = 0_pInt
|
||||||
constitutive_source_maxSizePostResults = 0_pInt
|
constitutive_source_maxSizePostResults = 0_pInt
|
||||||
|
|
||||||
PhaseLoop2:do p = 1_pInt,material_Nphase
|
PhaseLoop2:do ph = 1_pInt,material_Nphase
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! partition and inititalize state
|
! partition and inititalize state
|
||||||
plasticState(p)%partionedState0 = plasticState(p)%State0
|
plasticState(ph)%partionedState0 = plasticState(ph)%state0
|
||||||
plasticState(p)%State = plasticState(p)%State0
|
plasticState(ph)%state = plasticState(ph)%partionedState0
|
||||||
forall(s = 1_pInt:phase_Nsources(p))
|
forall(s = 1_pInt:phase_Nsources(ph))
|
||||||
sourceState(p)%p(s)%partionedState0 = sourceState(p)%p(s)%State0
|
sourceState(ph)%p(s)%partionedState0 = sourceState(ph)%p(s)%state0
|
||||||
sourceState(p)%p(s)%State = sourceState(p)%p(s)%State0
|
sourceState(ph)%p(s)%state = sourceState(ph)%p(s)%partionedState0
|
||||||
end forall
|
end forall
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! determine max size of state and output
|
! determine max size of state and output
|
||||||
constitutive_plasticity_maxSizeDotState = max(constitutive_plasticity_maxSizeDotState, &
|
constitutive_plasticity_maxSizeDotState = max(constitutive_plasticity_maxSizeDotState, &
|
||||||
plasticState(p)%sizeDotState)
|
plasticState(ph)%sizeDotState)
|
||||||
constitutive_plasticity_maxSizePostResults = max(constitutive_plasticity_maxSizePostResults, &
|
constitutive_plasticity_maxSizePostResults = max(constitutive_plasticity_maxSizePostResults, &
|
||||||
plasticState(p)%sizePostResults)
|
plasticState(ph)%sizePostResults)
|
||||||
constitutive_source_maxSizeDotState = max(constitutive_source_maxSizeDotState, &
|
constitutive_source_maxSizeDotState = max(constitutive_source_maxSizeDotState, &
|
||||||
maxval(sourceState(p)%p(:)%sizeDotState))
|
maxval(sourceState(ph)%p(:)%sizeDotState))
|
||||||
constitutive_source_maxSizePostResults = max(constitutive_source_maxSizePostResults, &
|
constitutive_source_maxSizePostResults = max(constitutive_source_maxSizePostResults, &
|
||||||
maxval(sourceState(p)%p(:)%sizePostResults))
|
maxval(sourceState(ph)%p(:)%sizePostResults))
|
||||||
enddo PhaseLoop2
|
enddo PhaseLoop2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end subroutine constitutive_init
|
end subroutine constitutive_init
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue