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:
parent
930cd0f3ac
commit
81729dab2a
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue