diff --git a/PRIVATE b/PRIVATE index 226ea5596..c92f6d3e2 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 226ea55968c756ae1abbdf51230756bb80696cb0 +Subproject commit c92f6d3e23a4c310898b502f00e395dbe670a63c diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config deleted file mode 100644 index 5af1eee11..000000000 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config +++ /dev/null @@ -1,21 +0,0 @@ -# Tasan et.al. 2015 Acta Materalia -# Tasan et.al. 2015 International Journal of Plasticity -# Diehl et.al. 2015 Meccanica -[BCC-Ferrite] - -elasticity hooke -plasticity phenopowerlaw - -lattice_structure bcc -Nslip 12 12 # per family -Ntwin 0 # per family -c11 233.3e9 -c12 135.5e9 -c44 118.0e9 -gdot0_slip 0.001 -n_slip 20 -tau0_slip 95.e6 97.e6 # per family, optimization long simplex 109 -tausat_slip 222.e6 412.7e6 # per family, optimization long simplex 109 -h0_slipslip 1000.0e6 -interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -a_slip 2.0 diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.yaml b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.yaml new file mode 100644 index 000000000..4940ca8bd --- /dev/null +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.yaml @@ -0,0 +1,16 @@ +# Tasan et.al. 2015 Acta Materalia +# Tasan et.al. 2015 International Journal of Plasticity +# Diehl et.al. 2015 Meccanica +Ferrite: + elasticity: {C_11: 233.3e9, C_12: 135.5e9, C_44: 118.0e9, type: hooke} + lattice: bcc + plasticity: + N_sl: [12, 12] + a_sl: 2.0 + dot_gamma_0_sl: 0.001 + h_0_sl_sl: 1000.0e6 + h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4] + n_sl: 20 + type: phenopowerlaw + xi_0_sl: [95.e6, 96.e6] + xi_inf_sl: [222.e6, 412.7e6] diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config deleted file mode 100644 index a04f27e7f..000000000 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config +++ /dev/null @@ -1,21 +0,0 @@ -# Tasan et.al. 2015 Acta Materalia -# Tasan et.al. 2015 International Journal of Plasticity -# Diehl et.al. 2015 Meccanica -[BCC-Martensite] - -elasticity hooke -plasticity phenopowerlaw - -lattice_structure bcc -Nslip 12 12 # per family -Ntwin 0 # per family -c11 417.4e9 -c12 242.4e9 -c44 211.1e9 -gdot0_slip 0.001 -n_slip 20 -tau0_slip 405.8e6 456.7e6 # per family -tausat_slip 872.9e6 971.2e6 # per family -h0_slipslip 563.0e9 -interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -a_slip 2.0 diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.yaml b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.yaml new file mode 100644 index 000000000..b207d7b34 --- /dev/null +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.yaml @@ -0,0 +1,16 @@ +# Tasan et.al. 2015 Acta Materalia +# Tasan et.al. 2015 International Journal of Plasticity +# Diehl et.al. 2015 Meccanica +Martensite: + elasticity: {C_11: 417.4e9, C_12: 242.4e9, C_44: 211.1e9, type: hooke} + lattice: bcc + plasticity: + N_sl: [12, 12] + a_sl: 2.0 + dot_gamma_0_sl: 0.001 + h_0_sl_sl: 563.0e9 + h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4] + n_sl: 20 + type: phenopowerlaw + xi_0_sl: [405.8e6, 456.7e6] + xi_inf_sl: [872.9e6, 971.2e6] diff --git a/examples/FEM/polyXtal/material.yaml b/examples/FEM/polyXtal/material.yaml index 3d4b0addf..5c00f17ad 100644 --- a/examples/FEM/polyXtal/material.yaml +++ b/examples/FEM/polyXtal/material.yaml @@ -1,5 +1,6 @@ homogenization: SX: + N_constituents: 1 mech: {type: none} phase: diff --git a/examples/SpectralMethod/Polycrystal/material.yaml b/examples/SpectralMethod/Polycrystal/material.yaml index a3822184c..671136d40 100644 --- a/examples/SpectralMethod/Polycrystal/material.yaml +++ b/examples/SpectralMethod/Polycrystal/material.yaml @@ -1,6 +1,7 @@ --- homogenization: SX: + N_constituents: 1 mech: {type: none} material: diff --git a/src/IO.f90 b/src/IO.f90 index 4a442cb06..a95938a7f 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -371,8 +371,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg) msg = 'write error for file:' case (102) msg = 'could not read file:' - case (103) - msg = 'could not assemble input files' case (106) msg = 'working directory does not exist:' @@ -411,7 +409,7 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg) msg = 'not enough interaction parameters given' !-------------------------------------------------------------------------------------------------- -! errors related to the parsing of material.config +! errors related to the parsing of material.yaml case (140) msg = 'key not found' case (141) diff --git a/src/homogenization_mech_RGC.f90 b/src/homogenization_mech_RGC.f90 index 7d85e3a9c..ea5bffd28 100644 --- a/src/homogenization_mech_RGC.f90 +++ b/src/homogenization_mech_RGC.f90 @@ -165,7 +165,7 @@ module subroutine mech_RGC_init(num_homogMech) prm%N_constituents = homogMech%get_asInts('cluster_size',requiredSize=3) if (homogenization_Ngrains(h) /= product(prm%N_constituents)) & - call IO_error(211,ext_msg='clustersize (mech_rgc)') + call IO_error(211,ext_msg='N_constituents (mech_RGC)') prm%xi_alpha = homogMech%get_asFloat('xi_alpha') prm%c_alpha = homogMech%get_asFloat('c_alpha') diff --git a/src/homogenization_mech_isostrain.f90 b/src/homogenization_mech_isostrain.f90 index 6883f1c37..f064578c8 100644 --- a/src/homogenization_mech_isostrain.f90 +++ b/src/homogenization_mech_isostrain.f90 @@ -51,7 +51,7 @@ module subroutine mech_isostrain_init homogMech => homog%get('mech') associate(prm => param(homogenization_typeInstance(h))) - prm%N_constituents = homogMech%get_asInt('N_constituents') + prm%N_constituents = homogenization_Ngrains(h) select case(homogMech%get_asString('mapping',defaultVal = 'sum')) case ('sum') prm%mapping = parallel_ID diff --git a/src/homogenization_mech_none.f90 b/src/homogenization_mech_none.f90 index 3cbec5911..a58147c45 100644 --- a/src/homogenization_mech_none.f90 +++ b/src/homogenization_mech_none.f90 @@ -24,8 +24,11 @@ module subroutine mech_none_init print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) do h = 1, size(homogenization_type) - if (homogenization_type(h) /= HOMOGENIZATION_NONE_ID) cycle + if(homogenization_type(h) /= HOMOGENIZATION_NONE_ID) cycle + if(homogenization_Ngrains(h) /= 1) & + call IO_error(211,ext_msg='N_constituents (mech_none)') + NofMyHomog = count(material_homogenizationAt == h) homogState(h)%sizeState = 0 allocate(homogState(h)%state0 (0,NofMyHomog)) diff --git a/src/material.f90 b/src/material.f90 index 742a29b9d..11dfeb42e 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -256,16 +256,14 @@ subroutine material_parseHomogenization do h=1, material_Nhomogenization homog => material_homogenization%get(h) homogMech => homog%get('mech') + homogenization_Ngrains(h) = homog%get_asInt('N_constituents') select case (homogMech%get_asString('type')) case('none') homogenization_type(h) = HOMOGENIZATION_NONE_ID - homogenization_Ngrains(h) = 1 case('isostrain') homogenization_type(h) = HOMOGENIZATION_ISOSTRAIN_ID - homogenization_Ngrains(h) = homogMech%get_asInt('N_constituents') case('RGC') homogenization_type(h) = HOMOGENIZATION_RGC_ID - homogenization_Ngrains(h) = homogMech%get_asInt('N_constituents') case default call IO_error(500,ext_msg=homogMech%get_asString('type')) end select diff --git a/src/rotations.f90 b/src/rotations.f90 index 0b72c1dd5..ea4a8a9d8 100644 --- a/src/rotations.f90 +++ b/src/rotations.f90 @@ -737,13 +737,13 @@ pure function eu2om(eu) result(om) s = sin(eu) om(1,1) = c(1)*c(3)-s(1)*s(3)*c(2) - om(1,2) = s(1)*c(3)+c(1)*s(3)*c(2) - om(1,3) = s(3)*s(2) om(2,1) = -c(1)*s(3)-s(1)*c(3)*c(2) - om(2,2) = -s(1)*s(3)+c(1)*c(3)*c(2) - om(2,3) = c(3)*s(2) om(3,1) = s(1)*s(2) + om(1,2) = s(1)*c(3)+c(1)*s(3)*c(2) + om(2,2) = -s(1)*s(3)+c(1)*c(3)*c(2) om(3,2) = -c(1)*s(2) + om(1,3) = s(3)*s(2) + om(2,3) = c(3)*s(2) om(3,3) = c(2) where(abs(om)<1.0e-12_pReal) om = 0.0_pReal