Merge branch 'general-N_constituents' into 'development'
Mandatory N_constituents See merge request damask/DAMASK!250
This commit is contained in:
commit
4a16aa2237
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
||||||
Subproject commit 226ea55968c756ae1abbdf51230756bb80696cb0
|
Subproject commit c92f6d3e23a4c310898b502f00e395dbe670a63c
|
|
@ -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
|
|
|
@ -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]
|
|
@ -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
|
|
|
@ -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]
|
|
@ -1,5 +1,6 @@
|
||||||
homogenization:
|
homogenization:
|
||||||
SX:
|
SX:
|
||||||
|
N_constituents: 1
|
||||||
mech: {type: none}
|
mech: {type: none}
|
||||||
|
|
||||||
phase:
|
phase:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
---
|
---
|
||||||
homogenization:
|
homogenization:
|
||||||
SX:
|
SX:
|
||||||
|
N_constituents: 1
|
||||||
mech: {type: none}
|
mech: {type: none}
|
||||||
|
|
||||||
material:
|
material:
|
||||||
|
|
|
@ -371,8 +371,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
msg = 'write error for file:'
|
msg = 'write error for file:'
|
||||||
case (102)
|
case (102)
|
||||||
msg = 'could not read file:'
|
msg = 'could not read file:'
|
||||||
case (103)
|
|
||||||
msg = 'could not assemble input files'
|
|
||||||
case (106)
|
case (106)
|
||||||
msg = 'working directory does not exist:'
|
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'
|
msg = 'not enough interaction parameters given'
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! errors related to the parsing of material.config
|
! errors related to the parsing of material.yaml
|
||||||
case (140)
|
case (140)
|
||||||
msg = 'key not found'
|
msg = 'key not found'
|
||||||
case (141)
|
case (141)
|
||||||
|
|
|
@ -165,7 +165,7 @@ module subroutine mech_RGC_init(num_homogMech)
|
||||||
|
|
||||||
prm%N_constituents = homogMech%get_asInts('cluster_size',requiredSize=3)
|
prm%N_constituents = homogMech%get_asInts('cluster_size',requiredSize=3)
|
||||||
if (homogenization_Ngrains(h) /= product(prm%N_constituents)) &
|
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%xi_alpha = homogMech%get_asFloat('xi_alpha')
|
||||||
prm%c_alpha = homogMech%get_asFloat('c_alpha')
|
prm%c_alpha = homogMech%get_asFloat('c_alpha')
|
||||||
|
|
|
@ -51,7 +51,7 @@ module subroutine mech_isostrain_init
|
||||||
homogMech => homog%get('mech')
|
homogMech => homog%get('mech')
|
||||||
associate(prm => param(homogenization_typeInstance(h)))
|
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'))
|
select case(homogMech%get_asString('mapping',defaultVal = 'sum'))
|
||||||
case ('sum')
|
case ('sum')
|
||||||
prm%mapping = parallel_ID
|
prm%mapping = parallel_ID
|
||||||
|
|
|
@ -24,8 +24,11 @@ module subroutine mech_none_init
|
||||||
print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT)
|
print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT)
|
||||||
|
|
||||||
do h = 1, size(homogenization_type)
|
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)
|
NofMyHomog = count(material_homogenizationAt == h)
|
||||||
homogState(h)%sizeState = 0
|
homogState(h)%sizeState = 0
|
||||||
allocate(homogState(h)%state0 (0,NofMyHomog))
|
allocate(homogState(h)%state0 (0,NofMyHomog))
|
||||||
|
|
|
@ -256,16 +256,14 @@ subroutine material_parseHomogenization
|
||||||
do h=1, material_Nhomogenization
|
do h=1, material_Nhomogenization
|
||||||
homog => material_homogenization%get(h)
|
homog => material_homogenization%get(h)
|
||||||
homogMech => homog%get('mech')
|
homogMech => homog%get('mech')
|
||||||
|
homogenization_Ngrains(h) = homog%get_asInt('N_constituents')
|
||||||
select case (homogMech%get_asString('type'))
|
select case (homogMech%get_asString('type'))
|
||||||
case('none')
|
case('none')
|
||||||
homogenization_type(h) = HOMOGENIZATION_NONE_ID
|
homogenization_type(h) = HOMOGENIZATION_NONE_ID
|
||||||
homogenization_Ngrains(h) = 1
|
|
||||||
case('isostrain')
|
case('isostrain')
|
||||||
homogenization_type(h) = HOMOGENIZATION_ISOSTRAIN_ID
|
homogenization_type(h) = HOMOGENIZATION_ISOSTRAIN_ID
|
||||||
homogenization_Ngrains(h) = homogMech%get_asInt('N_constituents')
|
|
||||||
case('RGC')
|
case('RGC')
|
||||||
homogenization_type(h) = HOMOGENIZATION_RGC_ID
|
homogenization_type(h) = HOMOGENIZATION_RGC_ID
|
||||||
homogenization_Ngrains(h) = homogMech%get_asInt('N_constituents')
|
|
||||||
case default
|
case default
|
||||||
call IO_error(500,ext_msg=homogMech%get_asString('type'))
|
call IO_error(500,ext_msg=homogMech%get_asString('type'))
|
||||||
end select
|
end select
|
||||||
|
|
|
@ -737,13 +737,13 @@ pure function eu2om(eu) result(om)
|
||||||
s = sin(eu)
|
s = sin(eu)
|
||||||
|
|
||||||
om(1,1) = c(1)*c(3)-s(1)*s(3)*c(2)
|
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,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(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(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)
|
om(3,3) = c(2)
|
||||||
|
|
||||||
where(abs(om)<1.0e-12_pReal) om = 0.0_pReal
|
where(abs(om)<1.0e-12_pReal) om = 0.0_pReal
|
||||||
|
|
Loading…
Reference in New Issue