under mech dictionary
This commit is contained in:
parent
523a44a964
commit
7b761476e4
|
@ -108,19 +108,19 @@ material:
|
||||||
|
|
||||||
phase:
|
phase:
|
||||||
Aluminum:
|
Aluminum:
|
||||||
elasticity: {C_11: 106.75e9, C_12: 60.41e9, C_44: 28.34e9, type: hooke}
|
|
||||||
generic:
|
|
||||||
output: [F, P, F_e, F_p, L_p, O]
|
|
||||||
lattice: fcc
|
lattice: fcc
|
||||||
plasticity:
|
mech:
|
||||||
N_sl: [12]
|
output: [F, P, F_e, F_p, L_p, O]
|
||||||
a_sl: 2.25
|
elasticity: {C_11: 106.75e9, C_12: 60.41e9, C_44: 28.34e9, type: hooke}
|
||||||
atol_xi: 1.0
|
plasticity:
|
||||||
dot_gamma_0_sl: 0.001
|
N_sl: [12]
|
||||||
h_0_sl_sl: 75e6
|
a_sl: 2.25
|
||||||
h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4]
|
atol_xi: 1.0
|
||||||
n_sl: 20
|
dot_gamma_0_sl: 0.001
|
||||||
output: [xi_sl]
|
h_0_sl_sl: 75e6
|
||||||
type: phenopowerlaw
|
h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4]
|
||||||
xi_0_sl: [31e6]
|
n_sl: 20
|
||||||
xi_inf_sl: [63e6]
|
output: [xi_sl]
|
||||||
|
type: phenopowerlaw
|
||||||
|
xi_0_sl: [31e6]
|
||||||
|
xi_inf_sl: [63e6]
|
||||||
|
|
|
@ -201,6 +201,7 @@ module subroutine mech_init
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
elastic, &
|
elastic, &
|
||||||
stiffDegradation
|
stiffDegradation
|
||||||
|
|
||||||
|
@ -215,13 +216,14 @@ module subroutine mech_init
|
||||||
|
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
elastic => phase%get('elasticity')
|
mech => phase%get('mech')
|
||||||
|
elastic => mech%get('elasticity')
|
||||||
if(elastic%get_asString('type') == 'hooke') then
|
if(elastic%get_asString('type') == 'hooke') then
|
||||||
phase_elasticity(p) = ELASTICITY_HOOKE_ID
|
phase_elasticity(p) = ELASTICITY_HOOKE_ID
|
||||||
else
|
else
|
||||||
call IO_error(200,ext_msg=elastic%get_asString('type'))
|
call IO_error(200,ext_msg=elastic%get_asString('type'))
|
||||||
endif
|
endif
|
||||||
stiffDegradation => phase%get('stiffness_degradation',defaultVal=emptyList) ! check for stiffness degradation mechanisms
|
stiffDegradation => mech%get('stiffness_degradation',defaultVal=emptyList) ! check for stiffness degradation mechanisms
|
||||||
phase_NstiffnessDegradations(p) = stiffDegradation%length
|
phase_NstiffnessDegradations(p) = stiffDegradation%length
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -231,7 +233,8 @@ module subroutine mech_init
|
||||||
if(maxVal(phase_NstiffnessDegradations)/=0) then
|
if(maxVal(phase_NstiffnessDegradations)/=0) then
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
stiffDegradation => phase%get('stiffness_degradation',defaultVal=emptyList)
|
mech => phase%get('mech')
|
||||||
|
stiffDegradation => mech%get('stiffness_degradation',defaultVal=emptyList)
|
||||||
do stiffDegradationCtr = 1, stiffDegradation%length
|
do stiffDegradationCtr = 1, stiffDegradation%length
|
||||||
if(stiffDegradation%get_asString(stiffDegradationCtr) == 'damage') &
|
if(stiffDegradation%get_asString(stiffDegradationCtr) == 'damage') &
|
||||||
phase_stiffnessDegradation(stiffDegradationCtr,p) = STIFFNESS_DEGRADATION_damage_ID
|
phase_stiffnessDegradation(stiffDegradationCtr,p) = STIFFNESS_DEGRADATION_damage_ID
|
||||||
|
@ -239,10 +242,6 @@ module subroutine mech_init
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
do p = 1, phases%length
|
|
||||||
phase_elasticityInstance(p) = count(phase_elasticity(1:p) == phase_elasticity(p))
|
|
||||||
enddo
|
|
||||||
|
|
||||||
|
|
||||||
allocate(plasticState(phases%length))
|
allocate(plasticState(phases%length))
|
||||||
allocate(phase_plasticity(phases%length),source = PLASTICITY_undefined_ID)
|
allocate(phase_plasticity(phases%length),source = PLASTICITY_undefined_ID)
|
||||||
|
@ -258,6 +257,7 @@ module subroutine mech_init
|
||||||
where(plastic_nonlocal_init()) phase_plasticity = PLASTICITY_NONLOCAL_ID
|
where(plastic_nonlocal_init()) phase_plasticity = PLASTICITY_NONLOCAL_ID
|
||||||
|
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
|
phase_elasticityInstance(p) = count(phase_elasticity(1:p) == phase_elasticity(p))
|
||||||
phase_plasticityInstance(p) = count(phase_plasticity(1:p) == phase_plasticity(p))
|
phase_plasticityInstance(p) = count(phase_plasticity(1:p) == phase_plasticity(p))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -276,6 +276,7 @@ module function plastic_active(plastic_label) result(active_plastic)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
integer :: p
|
integer :: p
|
||||||
|
|
||||||
|
@ -283,7 +284,8 @@ module function plastic_active(plastic_label) result(active_plastic)
|
||||||
allocate(active_plastic(phases%length), source = .false. )
|
allocate(active_plastic(phases%length), source = .false. )
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
pl => phase%get('plasticity')
|
mech => phase%get('mech')
|
||||||
|
pl => mech%get('plasticity')
|
||||||
if(pl%get_asString('type') == plastic_label) active_plastic(p) = .true.
|
if(pl%get_asString('type') == plastic_label) active_plastic(p) = .true.
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,7 @@ module function plastic_disloTungsten_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_dislotungsten init -+>>>'
|
print'(/,a)', ' <<<+- plastic_dislotungsten init -+>>>'
|
||||||
|
@ -115,14 +116,14 @@ module function plastic_disloTungsten_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
dot => dotState(i), &
|
dot => dotState(i), &
|
||||||
stt => state(i), &
|
stt => state(i), &
|
||||||
dst => dependentState(i))
|
dst => dependentState(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
#if defined (__GFORTRAN__)
|
#if defined (__GFORTRAN__)
|
||||||
prm%output = output_asStrings(pl)
|
prm%output = output_asStrings(pl)
|
||||||
|
|
|
@ -141,6 +141,7 @@ module function plastic_dislotwin_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_dislotwin init -+>>>'
|
print'(/,a)', ' <<<+- plastic_dislotwin init -+>>>'
|
||||||
|
@ -168,14 +169,14 @@ module function plastic_dislotwin_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
dot => dotState(i), &
|
dot => dotState(i), &
|
||||||
stt => state(i), &
|
stt => state(i), &
|
||||||
dst => dependentState(i))
|
dst => dependentState(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
#if defined (__GFORTRAN__)
|
#if defined (__GFORTRAN__)
|
||||||
prm%output = output_asStrings(pl)
|
prm%output = output_asStrings(pl)
|
||||||
|
|
|
@ -65,6 +65,7 @@ module function plastic_isotropic_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_isotropic init -+>>>'
|
print'(/,a)', ' <<<+- plastic_isotropic init -+>>>'
|
||||||
|
@ -85,13 +86,13 @@ module function plastic_isotropic_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
dot => dotState(i), &
|
dot => dotState(i), &
|
||||||
stt => state(i))
|
stt => state(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
|
|
||||||
#if defined (__GFORTRAN__)
|
#if defined (__GFORTRAN__)
|
||||||
|
|
|
@ -77,6 +77,7 @@ module function plastic_kinehardening_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_kinehardening init -+>>>'
|
print'(/,a)', ' <<<+- plastic_kinehardening init -+>>>'
|
||||||
|
@ -95,14 +96,14 @@ module function plastic_kinehardening_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
dot => dotState(i), &
|
dot => dotState(i), &
|
||||||
dlt => deltaState(i), &
|
dlt => deltaState(i), &
|
||||||
stt => state(i))
|
stt => state(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
#if defined (__GFORTRAN__)
|
#if defined (__GFORTRAN__)
|
||||||
prm%output = output_asStrings(pl)
|
prm%output = output_asStrings(pl)
|
||||||
|
|
|
@ -22,6 +22,7 @@ module function plastic_none_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_none init -+>>>'
|
print'(/,a)', ' <<<+- plastic_none init -+>>>'
|
||||||
|
@ -30,7 +31,8 @@ module function plastic_none_init() result(myPlasticity)
|
||||||
allocate(myPlasticity(phases%length), source = .false.)
|
allocate(myPlasticity(phases%length), source = .false.)
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
pl => phase%get('plasticity')
|
mech => phase%get('mech')
|
||||||
|
pl => mech%get ('plasticity')
|
||||||
if(pl%get_asString('type') == 'none') myPlasticity(p) = .true.
|
if(pl%get_asString('type') == 'none') myPlasticity(p) = .true.
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -183,6 +183,7 @@ module function plastic_nonlocal_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_nonlocal init -+>>>'
|
print'(/,a)', ' <<<+- plastic_nonlocal init -+>>>'
|
||||||
|
@ -212,7 +213,7 @@ module function plastic_nonlocal_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
|
@ -221,7 +222,7 @@ module function plastic_nonlocal_init() result(myPlasticity)
|
||||||
st0 => state0(i), &
|
st0 => state0(i), &
|
||||||
del => deltaState(i), &
|
del => deltaState(i), &
|
||||||
dst => microstructure(i))
|
dst => microstructure(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
phase_localPlasticity(p) = .not. pl%contains('nonlocal')
|
phase_localPlasticity(p) = .not. pl%contains('nonlocal')
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity)
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
pl
|
pl
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- plastic_phenopowerlaw init -+>>>'
|
print'(/,a)', ' <<<+- plastic_phenopowerlaw init -+>>>'
|
||||||
|
@ -103,13 +104,13 @@ module function plastic_phenopowerlaw_init() result(myPlasticity)
|
||||||
i = 0
|
i = 0
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
|
mech => phase%get('mech')
|
||||||
if(.not. myPlasticity(p)) cycle
|
if(.not. myPlasticity(p)) cycle
|
||||||
i = i + 1
|
i = i + 1
|
||||||
associate(prm => param(i), &
|
associate(prm => param(i), &
|
||||||
dot => dotState(i), &
|
dot => dotState(i), &
|
||||||
stt => state(i))
|
stt => state(i))
|
||||||
pl => phase%get('plasticity')
|
pl => mech%get('plasticity')
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! slip related parameters
|
! slip related parameters
|
||||||
|
|
|
@ -150,7 +150,7 @@ subroutine crystallite_init
|
||||||
debug_crystallite, & ! pointer to debug options for crystallite
|
debug_crystallite, & ! pointer to debug options for crystallite
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
generic_param
|
mech
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- crystallite init -+>>>'
|
print'(/,a)', ' <<<+- crystallite init -+>>>'
|
||||||
|
|
||||||
|
@ -240,11 +240,11 @@ subroutine crystallite_init
|
||||||
allocate(output_constituent(phases%length))
|
allocate(output_constituent(phases%length))
|
||||||
do c = 1, phases%length
|
do c = 1, phases%length
|
||||||
phase => phases%get(c)
|
phase => phases%get(c)
|
||||||
generic_param => phase%get('generic',defaultVal = emptyDict)
|
mech => phase%get('mech',defaultVal = emptyDict)
|
||||||
#if defined(__GFORTRAN__)
|
#if defined(__GFORTRAN__)
|
||||||
output_constituent(c)%label = output_asStrings(generic_param)
|
output_constituent(c)%label = output_asStrings(mech)
|
||||||
#else
|
#else
|
||||||
output_constituent(c)%label = generic_param%get_asStrings('output',defaultVal=emptyStringArray)
|
output_constituent(c)%label = mech%get_asStrings('output',defaultVal=emptyStringArray)
|
||||||
#endif
|
#endif
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -455,6 +455,7 @@ subroutine lattice_init
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
phases, &
|
phases, &
|
||||||
phase, &
|
phase, &
|
||||||
|
mech, &
|
||||||
elasticity
|
elasticity
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- lattice init -+>>>'; flush(IO_STDOUT)
|
print'(/,a)', ' <<<+- lattice init -+>>>'; flush(IO_STDOUT)
|
||||||
|
@ -475,7 +476,8 @@ subroutine lattice_init
|
||||||
|
|
||||||
do p = 1, phases%length
|
do p = 1, phases%length
|
||||||
phase => phases%get(p)
|
phase => phases%get(p)
|
||||||
elasticity => phase%get('elasticity')
|
mech => phase%get('mech')
|
||||||
|
elasticity => mech%get('elasticity')
|
||||||
lattice_C66(1,1,p) = elasticity%get_asFloat('C_11')
|
lattice_C66(1,1,p) = elasticity%get_asFloat('C_11')
|
||||||
lattice_C66(1,2,p) = elasticity%get_asFloat('C_12')
|
lattice_C66(1,2,p) = elasticity%get_asFloat('C_12')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue