changed output parsing slightly to not give an error for undefined (for plasticity) parameters or outputs. get Noutput for plasticity from constitutive_xxx_noutput and not from phase_Noutput which is the total number of outputs (plasticity+thermal....)

This commit is contained in:
Pratheek Shanthraj 2014-06-24 22:53:25 +00:00
parent 930cd0f3ac
commit 81729dab2a
5 changed files with 354 additions and 53 deletions

View File

@ -335,53 +335,98 @@ subroutine constitutive_dislotwin_init(fileUnit)
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
case ('plasticity','elasticity','lattice_structure', & ! already known
'covera_ratio','c/a_ratio','c/a', &
'c11','c12','c13','c22','c23','c33','c44','c55','c66')
cycle
case ('(output)')
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('edge_density')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = edge_density_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('dipole_density')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = dipole_density_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_slip_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulated_shear_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = accumulated_shear_slip_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('mfp_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = mfp_slip_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_slip_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('edge_dipole_distance')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = edge_dipole_distance_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stress_exponent')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = stress_exponent_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('twin_fraction')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = twin_fraction_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_twin_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulated_shear_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = accumulated_shear_twin_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('mfp_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = mfp_twin_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_twin_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('threshold_stress_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = threshold_stress_twin_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_shearband')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_shearband_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_shearband')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_shearband_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('sb_eigenvalues')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = sb_eigenvalues_ID
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('sb_eigenvectors')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = sb_eigenvectors_ID
case default
call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_DISLOTWIN_label//')')
constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
end select
!--------------------------------------------------------------------------------------------------
! parameters depending on number of slip system families
@ -519,8 +564,6 @@ subroutine constitutive_dislotwin_init(fileUnit)
constitutive_dislotwin_sbVelocity(instance) = IO_floatValue(line,positions,2_pInt)
case ('qedgepersbsystem')
constitutive_dislotwin_sbQedge(instance) = IO_floatValue(line,positions,2_pInt)
case default
call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_DISLOTWIN_label//')')
end select
endif; endif
enddo parsingFile
@ -1860,7 +1903,7 @@ function constitutive_dislotwin_postResults(Tstar_v,Temperature,state,ipc,ip,el)
!* Spectral decomposition of stress
call math_spectralDecompositionSym33(math_Mandel6to33(Tstar_v),eigValues,eigVectors, error)
do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
do o = 1_pInt,constitutive_dislotwin_Noutput(instance)
select case(constitutive_dislotwin_outputID(o,instance))
case (edge_density_ID)

View File

@ -222,16 +222,13 @@ subroutine constitutive_j2_init(fileUnit)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
case ('plasticity','elasticity','lattice_structure', &
'covera_ratio','c/a_ratio','c/a', &
'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('flowstress')
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = flowstress_ID
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'flowstress','MPa')
allocate(constitutive_j2_Output2(instance)%flowstress(myConstituents))
@ -239,13 +236,16 @@ subroutine constitutive_j2_init(fileUnit)
#endif
case ('strainrate')
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = strainrate_ID
constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'strainrate','1/s')
allocate(constitutive_j2_Output2(instance)%strainrate(myConstituents))
constitutive_j2_Output2(instance)%strainrateActive = .true.
#endif
case default
call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_J2_label//')')
end select
case ('tau0')
constitutive_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt)
@ -288,7 +288,7 @@ subroutine constitutive_j2_init(fileUnit)
if (constitutive_j2_aTolResistance(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case default
call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
end select
endif
enddo parsingFile
@ -613,7 +613,7 @@ pure function constitutive_j2_postResults(Tstar_v,state,ipc,ip,el)
c = 0_pInt
constitutive_j2_postResults = 0.0_pReal
outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance)
select case(constitutive_j2_outputID(o,instance))
case (flowstress_ID)
constitutive_j2_postResults(c+1_pInt) = tempState

View File

@ -434,185 +434,344 @@ allocate(nonSchmidCoeff(lattice_maxNnonSchmid,maxNinstances), s
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
case ('plasticity','elasticity','lattice_structure', &
'covera_ratio','c/a_ratio','c/a', &
'c11','c12','c13','c22','c23','c33','c44','c55','c66',&
'/nonlocal/')
cycle
case ('(output)')
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case('rho')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_sgl_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_immobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_dip_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_forest')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_forest_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('shearrate')
constitutive_nonlocal_outputID(Noutput(instance),instance) = shearrate_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress_external')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_external_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress_back')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_back_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resistance')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resistance_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_dip_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_ath')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_ath_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_edgejogs')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_edgejogs_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_mobile_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_edge_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_edge_pos_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_edge_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_edge_neg_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_screw_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_screw_pos_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_screw_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_screw_neg_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectionx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectiony_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectionz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormalx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormaly_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormalz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posy_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negy_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posy_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negx_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negy_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negz_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('maximumdipoleheight_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = maximumdipoleheight_edge_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('maximumdipoleheight_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = maximumdipoleheight_screw_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('accumulatedshear')
constitutive_nonlocal_outputID(Noutput(instance),instance) = accumulatedshear_ID
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('dislocationstress')
constitutive_nonlocal_outputID(Noutput(instance),instance) = dislocationstress_ID
case default
call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_NONLOCAL_label//')')
Noutput(instance) = Noutput(instance) + 1_pInt
constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
end select
case ('nslip')
if (positions(1) < 1_pInt + Nchunks_SlipFamilies) &
@ -735,8 +894,6 @@ allocate(nonSchmidCoeff(lattice_maxNnonSchmid,maxNinstances), s
enddo
case('probabilisticmultiplication','randomsources','randommultiplication','discretesources')
probabilisticMultiplication(instance) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
case default
call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_NONLOCAL_label//')')
end select
endif; endif
enddo parsingFile
@ -5898,7 +6055,7 @@ forall (s = 1_pInt:ns) &
lattice_sn(1:3,slipSystemLattice(s,instance),phase))
outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
outputsLoop: do o = 1_pInt,Noutput(instance)
select case(constitutive_nonlocal_outputID(o,instance))
case (rho_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(abs(rhoSgl),2) + sum(rhoDip,2)

View File

@ -261,36 +261,60 @@ allocate(constitutive_phenopowerlaw_sizePostResults(maxNinstance),
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
case ('plasticity','elasticity','lattice_structure', &
'covera_ratio','c/a_ratio','c/a', &
'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('resistance_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resistance_slip_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulatedshear_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = accumulatedshear_slip_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shearrate_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = shearrate_slip_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolvedstress_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resolvedstress_slip_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('totalshear')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = totalshear_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resistance_twin_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulatedshear_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = accumulatedshear_twin_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shearrate_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = shearrate_twin_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolvedstress_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resolvedstress_twin_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('totalvolfrac')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = totalvolfrac_ID
constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case default
call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_PHENOPOWERLAW_label//')')
end select
!--------------------------------------------------------------------------------------------------
! parameters depending on number of slip families
@ -398,7 +422,7 @@ allocate(constitutive_phenopowerlaw_sizePostResults(maxNinstance),
constitutive_phenopowerlaw_interaction_SlipSlip(j,instance) = IO_floatValue(line,positions,1_pInt+j)
enddo
case default
call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_PHENOPOWERLAW_label//')')
end select
endif; endif
enddo parsingFile
@ -1203,7 +1227,7 @@ pure function constitutive_phenopowerlaw_postResults(Tstar_v,state,ipc,ip,el)
constitutive_phenopowerlaw_postResults = 0.0_pReal
c = 0_pInt
outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
outputsLoop: do o = 1_pInt,constitutive_phenopowerlaw_Noutput(instance)
select case(constitutive_phenopowerlaw_outputID(o,instance))
case (resistance_slip_ID)
#ifdef NEWSTATE

View File

@ -360,74 +360,153 @@ subroutine constitutive_titanmod_init(fileUnit)
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
case ('plasticity','elasticity','lattice_structure', &
'covera_ratio','c/a_ratio','c/a', &
'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('rhoedge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('segment_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = segment_edge_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('segment_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = segment_screw_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = resistance_edge_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = resistance_screw_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('velocity_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = velocity_edge_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('velocity_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = velocity_screw_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('tau_slip')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = tau_slip_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_edge_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_screw_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stressratio_edge_p')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = stressratio_edge_p_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stressratio_screw_p')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = stressratio_screw_p_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_system')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_system_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('twin_fraction')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = twin_fraction_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_basal_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_prism_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_pyra_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_pyrca_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_basal_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_prism_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_pyra_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_pyrca_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_basal_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_prism_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_pyra_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_pyrca_ID
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_total')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_total_ID
case default
call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_TITANMOD_label//')')
constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
IO_lc(IO_stringValue(line,positions,2_pInt))
end select
case ('debyefrequency')
constitutive_titanmod_debyefrequency(instance) = IO_floatValue(line,positions,2_pInt)
@ -595,8 +674,6 @@ subroutine constitutive_titanmod_init(fileUnit)
do j = 1_pInt, Nchunks_TwinTwin
constitutive_titanmod_interactionTwinTwin(j,instance) = IO_floatValue(line,positions,1_pInt+j)
enddo
case default
call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_TITANMOD_label//')')
end select
endif; endif
enddo parsingFile
@ -1967,7 +2044,7 @@ pure function constitutive_titanmod_postResults(state,ipc,ip,el)
c = 0_pInt
constitutive_titanmod_postResults = 0.0_pReal
do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
do o = 1_pInt,constitutive_titanmod_Noutput(instance)
select case(constitutive_titanmod_outputID(o,instance))
case (rhoedge_ID)
constitutive_titanmod_postResults(c+1_pInt:c+ns) = tempState(1_pInt:ns)