From 81729dab2a79a8cfdc56b2524ac004712de63190 Mon Sep 17 00:00:00 2001 From: Pratheek Shanthraj Date: Tue, 24 Jun 2014 22:53:25 +0000 Subject: [PATCH] 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....) --- code/constitutive_dislotwin.f90 | 67 ++++++++-- code/constitutive_j2.f90 | 18 +-- code/constitutive_nonlocal.f90 | 181 ++++++++++++++++++++++++++-- code/constitutive_phenopowerlaw.f90 | 42 +++++-- code/constitutive_titanmod.f90 | 99 +++++++++++++-- 5 files changed, 354 insertions(+), 53 deletions(-) diff --git a/code/constitutive_dislotwin.f90 b/code/constitutive_dislotwin.f90 index 8bbf2adba..87a9d1c90 100644 --- a/code/constitutive_dislotwin.f90 +++ b/code/constitutive_dislotwin.f90 @@ -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) diff --git a/code/constitutive_j2.f90 b/code/constitutive_j2.f90 index 79e1e95ca..9d8b72e5c 100644 --- a/code/constitutive_j2.f90 +++ b/code/constitutive_j2.f90 @@ -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 diff --git a/code/constitutive_nonlocal.f90 b/code/constitutive_nonlocal.f90 index ae9e0b08d..2b01c07fb 100644 --- a/code/constitutive_nonlocal.f90 +++ b/code/constitutive_nonlocal.f90 @@ -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) diff --git a/code/constitutive_phenopowerlaw.f90 b/code/constitutive_phenopowerlaw.f90 index d961c7498..a8637a3f0 100644 --- a/code/constitutive_phenopowerlaw.f90 +++ b/code/constitutive_phenopowerlaw.f90 @@ -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 diff --git a/code/constitutive_titanmod.f90 b/code/constitutive_titanmod.f90 index 1c75cbc48..3adc47820 100644 --- a/code/constitutive_titanmod.f90 +++ b/code/constitutive_titanmod.f90 @@ -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)