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:
|
||||
SX:
|
||||
N_constituents: 1
|
||||
mech: {type: none}
|
||||
|
||||
phase:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
homogenization:
|
||||
SX:
|
||||
N_constituents: 1
|
||||
mech: {type: none}
|
||||
|
||||
material:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue