diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b17fe1d27..31580458f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -87,7 +87,6 @@ checkout: - git checkout $CI_COMMIT_SHA - git submodule update --init - source env/DAMASK.sh - - ./installation/symlink_Processing.py except: - master - release diff --git a/PRIVATE b/PRIVATE index 6363147d0..023f86ff9 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 6363147d0a8bb45e681c5dc39041828a6b34664e +Subproject commit 023f86ff9e603dcc8c7adc16545783653083ea83 diff --git a/examples/Marc/material.yaml b/examples/Marc/material.yaml index b82fcc75c..a02a9e739 100644 --- a/examples/Marc/material.yaml +++ b/examples/Marc/material.yaml @@ -16,8 +16,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] xi_0_sl: [31e6] diff --git a/examples/config/Phase_Dislotwin_TWIP-Steel-FeMnC.yaml b/examples/config/Phase_Dislotwin_TWIP-Steel-FeMnC.yaml index f5353b3b6..31b58b0b9 100644 --- a/examples/config/Phase_Dislotwin_TWIP-Steel-FeMnC.yaml +++ b/examples/config/Phase_Dislotwin_TWIP-Steel-FeMnC.yaml @@ -19,7 +19,7 @@ TWIP_Steel_FeMnC: D_0: 4.0e-5 # Vacancy diffusion prefactor / m^2/s D_a: 1.0 # minimum dipole distance / b Q_cl: 4.5e-19 # Activation energy for climb / J - h_sl_sl: [0.122, 0.122, 0.625, 0.07, 0.137, 0.137, 0.122] # Interaction coefficients (Kubin et al. 2008) + h_sl-sl: [0.122, 0.122, 0.625, 0.07, 0.137, 0.137, 0.122] # Interaction coefficients (Kubin et al. 2008) # shear band parameters xi_sb: 180.0e6 Q_sb: 3.7e-19 @@ -35,7 +35,7 @@ TWIP_Steel_FeMnC: V_cs: 1.67e-29 # cross slip volume / m^3 p_tw: [10.0] # r-exponent in twin formation probability i_tw: 1.0 # Adj. parameter controlling twin mean free path - h_sl_tw: [0.0, 1.0, 1.0] # dislocation-twin interaction coefficients - h_tw_tw: [0.0, 1.0] # twin-twin interaction coefficients + h_sl-tw: [0.0, 1.0, 1.0] # dislocation-twin interaction coefficients + h_tw-tw: [0.0, 1.0] # twin-twin interaction coefficients Gamma_sf_0K: -0.0396 # stacking fault energy / J/m^2 at zero K; TWIP steel: -0.0526; Cu: -0.0396 dGamma_sf_dT: 0.0002 # temperature dependence / J/(m^2 K) of stacking fault energy diff --git a/examples/config/Phase_Dislotwin_Tungsten.yaml b/examples/config/Phase_Dislotwin_Tungsten.yaml index 397cfb662..44d8d2260 100644 --- a/examples/config/Phase_Dislotwin_Tungsten.yaml +++ b/examples/config/Phase_Dislotwin_Tungsten.yaml @@ -18,4 +18,4 @@ Tungsten: D_0: 4.0e-5 # Vacancy diffusion prefactor / m^2/s D_a: 1.0 # minimum dipole distance / b Q_cl: 4.5e-19 # Activation energy for climb / J - h_sl_sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] + h_sl-sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] diff --git a/examples/config/Phase_Phenopowerlaw_Aluminum.yaml b/examples/config/Phase_Phenopowerlaw_Aluminum.yaml index f05c18272..2a4afb219 100644 --- a/examples/config/Phase_Phenopowerlaw_Aluminum.yaml +++ b/examples/config/Phase_Phenopowerlaw_Aluminum.yaml @@ -7,8 +7,8 @@ Aluminum: N_sl: [12] a_sl: 2.25 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl, gamma_sl] type: phenopowerlaw diff --git a/examples/config/Phase_Phenopowerlaw_BCC-Ferrite.yaml b/examples/config/Phase_Phenopowerlaw_BCC-Ferrite.yaml index 609414dad..5b714af7c 100644 --- a/examples/config/Phase_Phenopowerlaw_BCC-Ferrite.yaml +++ b/examples/config/Phase_Phenopowerlaw_BCC-Ferrite.yaml @@ -9,8 +9,8 @@ Ferrite: 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.4, 1, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 1000.0e6 + h_sl-sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 type: phenopowerlaw xi_0_sl: [95.e6, 96.e6] diff --git a/examples/config/Phase_Phenopowerlaw_BCC-Martensite.yaml b/examples/config/Phase_Phenopowerlaw_BCC-Martensite.yaml index a14a9a182..1b1753870 100644 --- a/examples/config/Phase_Phenopowerlaw_BCC-Martensite.yaml +++ b/examples/config/Phase_Phenopowerlaw_BCC-Martensite.yaml @@ -9,8 +9,8 @@ Martensite: 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.4, 1, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 563.0e9 + h_sl-sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 type: phenopowerlaw xi_0_sl: [405.8e6, 456.7e6] diff --git a/examples/config/Phase_Phenopowerlaw_Magnesium.yaml b/examples/config/Phase_Phenopowerlaw_Magnesium.yaml index 050ad0790..eb73e9867 100644 --- a/examples/config/Phase_Phenopowerlaw_Magnesium.yaml +++ b/examples/config/Phase_Phenopowerlaw_Magnesium.yaml @@ -8,13 +8,13 @@ Magnesium: plastic: N_sl: [3, 3, 0, 6, 0, 6] N_tw: [6, 0, 0, 6] - h_0_tw_tw: 50.0e6 - h_0_sl_sl: 500.0e6 - h_0_tw_sl: 150.0e6 - h_sl_sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - h_tw_tw: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - h_sl_tw: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - h_tw_sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + h_0_tw-tw: 50.0e6 + h_0_sl-sl: 500.0e6 + h_0_tw-sl: 150.0e6 + h_sl-sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + h_tw-tw: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + h_sl-tw: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + h_tw-sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] output: [xi_sl, xi_tw] type: phenopowerlaw xi_0_sl: [10.0e6, 55.0e6, 0, 60.0e6, 0.0, 60.0e6] @@ -25,4 +25,4 @@ Magnesium: dot_gamma_0_tw: 0.001 n_sl: 20 n_tw: 20 - f_sat_sl_tw: 10.0 + f_sat_sl-tw: 10.0 diff --git a/examples/config/Phase_Phenopowerlaw_cpTi.yaml b/examples/config/Phase_Phenopowerlaw_cpTi.yaml index 6300a74e1..a63f011e6 100644 --- a/examples/config/Phase_Phenopowerlaw_cpTi.yaml +++ b/examples/config/Phase_Phenopowerlaw_cpTi.yaml @@ -11,8 +11,8 @@ cpTi: N_sl: [3, 3, 0, 6, 12] a_sl: 2.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 200e6 - h_sl_sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + h_0_sl-sl: 200e6 + h_sl-sl: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] n_sl: 20 output: [gamma_sl] type: phenopowerlaw diff --git a/examples/config/phase/mechanical/plastic/dislotwin_IF-steel.yaml b/examples/config/phase/mechanical/plastic/dislotwin_IF-steel.yaml index 3da7038a2..80c63882d 100644 --- a/examples/config/phase/mechanical/plastic/dislotwin_IF-steel.yaml +++ b/examples/config/phase/mechanical/plastic/dislotwin_IF-steel.yaml @@ -18,7 +18,7 @@ q_sl: [1.55, 1.55] i_sl: [23.3, 23.3] D_a: 7.4 # C_anni B: [0.001, 0.001] -h_sl_sl: [0.1, 0.72, 0.1, 0.053, 0.053, 0.073, 0.137, 0.72, 0.72, 0.053, 0.053, 0.053, 0.053, 0.073, 0.073, 0.073, 0.073, 0.073, 0.073, 0.137, 0.073, 0.073, 0.137, 0.073] +h_sl-sl: [0.1, 0.72, 0.1, 0.053, 0.053, 0.073, 0.137, 0.72, 0.72, 0.053, 0.053, 0.053, 0.053, 0.073, 0.073, 0.073, 0.073, 0.073, 0.073, 0.137, 0.073, 0.073, 0.137, 0.073] D_0: 4.000E-05 Q_cl: 5.400E-19 # no recovery! D: 40e-6 # estimated diff --git a/examples/config/phase/mechanical/plastic/phenopowerlaw_Au.yaml b/examples/config/phase/mechanical/plastic/phenopowerlaw_Au.yaml index baf7c7c14..c5e63e8a1 100644 --- a/examples/config/phase/mechanical/plastic/phenopowerlaw_Au.yaml +++ b/examples/config/phase/mechanical/plastic/phenopowerlaw_Au.yaml @@ -10,8 +10,8 @@ output: [xi_sl, gamma_sl] N_sl: [12] n_sl: 83.3 dot_gamma_0_sl: 0.001 -h_0_sl_sl: 75.0e6 -h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] +h_0_sl-sl: 75.0e6 +h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] a_sl: 1.0 xi_0_sl: [26.25e6] xi_inf_sl: [53.0e6] diff --git a/examples/grid/material.yaml b/examples/grid/material.yaml index 47ab66d8b..31cd812fc 100644 --- a/examples/grid/material.yaml +++ b/examples/grid/material.yaml @@ -16,8 +16,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] xi_0_sl: [31e6] diff --git a/examples/mesh/material.yaml b/examples/mesh/material.yaml index 4c3026c21..a8b5b22ac 100644 --- a/examples/mesh/material.yaml +++ b/examples/mesh/material.yaml @@ -15,8 +15,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] xi_0_sl: [31e6] diff --git a/installation/mods_MarcMentat/2020/Marc_tools/comp_damask_hmp b/installation/MarcMentat/2020/Marc_tools/comp_damask_hmp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/comp_damask_hmp rename to installation/MarcMentat/2020/Marc_tools/comp_damask_hmp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/comp_damask_lmp b/installation/MarcMentat/2020/Marc_tools/comp_damask_lmp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/comp_damask_lmp rename to installation/MarcMentat/2020/Marc_tools/comp_damask_lmp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/comp_damask_mp b/installation/MarcMentat/2020/Marc_tools/comp_damask_mp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/comp_damask_mp rename to installation/MarcMentat/2020/Marc_tools/comp_damask_mp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/comp_user.original b/installation/MarcMentat/2020/Marc_tools/comp_user.original similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/comp_user.original rename to installation/MarcMentat/2020/Marc_tools/comp_user.original diff --git a/installation/mods_MarcMentat/2020/Marc_tools/include_linux64 b/installation/MarcMentat/2020/Marc_tools/include_linux64 similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/include_linux64 rename to installation/MarcMentat/2020/Marc_tools/include_linux64 diff --git a/installation/mods_MarcMentat/2020/Marc_tools/include_linux64.original b/installation/MarcMentat/2020/Marc_tools/include_linux64.original similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/include_linux64.original rename to installation/MarcMentat/2020/Marc_tools/include_linux64.original diff --git a/installation/mods_MarcMentat/2020/Marc_tools/run_damask_hmp b/installation/MarcMentat/2020/Marc_tools/run_damask_hmp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/run_damask_hmp rename to installation/MarcMentat/2020/Marc_tools/run_damask_hmp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/run_damask_lmp b/installation/MarcMentat/2020/Marc_tools/run_damask_lmp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/run_damask_lmp rename to installation/MarcMentat/2020/Marc_tools/run_damask_lmp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/run_damask_mp b/installation/MarcMentat/2020/Marc_tools/run_damask_mp similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/run_damask_mp rename to installation/MarcMentat/2020/Marc_tools/run_damask_mp diff --git a/installation/mods_MarcMentat/2020/Marc_tools/run_marc.original b/installation/MarcMentat/2020/Marc_tools/run_marc.original similarity index 100% rename from installation/mods_MarcMentat/2020/Marc_tools/run_marc.original rename to installation/MarcMentat/2020/Marc_tools/run_marc.original diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/edit_window b/installation/MarcMentat/2020/Mentat_bin/edit_window similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/edit_window rename to installation/MarcMentat/2020/Mentat_bin/edit_window diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/edit_window.original b/installation/MarcMentat/2020/Mentat_bin/edit_window.original similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/edit_window.original rename to installation/MarcMentat/2020/Mentat_bin/edit_window.original diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/kill1.original b/installation/MarcMentat/2020/Mentat_bin/kill1.original similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/kill1.original rename to installation/MarcMentat/2020/Mentat_bin/kill1.original diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/kill4 b/installation/MarcMentat/2020/Mentat_bin/kill4 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/kill4 rename to installation/MarcMentat/2020/Mentat_bin/kill4 diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/kill5 b/installation/MarcMentat/2020/Mentat_bin/kill5 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/kill5 rename to installation/MarcMentat/2020/Mentat_bin/kill5 diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/kill6 b/installation/MarcMentat/2020/Mentat_bin/kill6 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/kill6 rename to installation/MarcMentat/2020/Mentat_bin/kill6 diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/submit1.original b/installation/MarcMentat/2020/Mentat_bin/submit1.original similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/submit1.original rename to installation/MarcMentat/2020/Mentat_bin/submit1.original diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/submit4 b/installation/MarcMentat/2020/Mentat_bin/submit4 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/submit4 rename to installation/MarcMentat/2020/Mentat_bin/submit4 diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/submit5 b/installation/MarcMentat/2020/Mentat_bin/submit5 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/submit5 rename to installation/MarcMentat/2020/Mentat_bin/submit5 diff --git a/installation/mods_MarcMentat/2020/Mentat_bin/submit6 b/installation/MarcMentat/2020/Mentat_bin/submit6 similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_bin/submit6 rename to installation/MarcMentat/2020/Mentat_bin/submit6 diff --git a/installation/mods_MarcMentat/2020/Mentat_menus/job_run.ms b/installation/MarcMentat/2020/Mentat_menus/job_run.ms similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_menus/job_run.ms rename to installation/MarcMentat/2020/Mentat_menus/job_run.ms diff --git a/installation/mods_MarcMentat/2020/Mentat_menus/job_run.ms.original b/installation/MarcMentat/2020/Mentat_menus/job_run.ms.original similarity index 100% rename from installation/mods_MarcMentat/2020/Mentat_menus/job_run.ms.original rename to installation/MarcMentat/2020/Mentat_menus/job_run.ms.original diff --git a/installation/mods_MarcMentat/apply_DAMASK_modifications.py b/installation/MarcMentat/apply_DAMASK_modifications.py similarity index 100% rename from installation/mods_MarcMentat/apply_DAMASK_modifications.py rename to installation/MarcMentat/apply_DAMASK_modifications.py diff --git a/installation/mods_MarcMentat/installation.txt b/installation/MarcMentat/installation.txt similarity index 100% rename from installation/mods_MarcMentat/installation.txt rename to installation/MarcMentat/installation.txt diff --git a/installation/symlink_Processing.py b/installation/symlink_Processing.py deleted file mode 100755 index ef2274028..000000000 --- a/installation/symlink_Processing.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -# Makes postprocessing routines accessible from everywhere. -import sys -from pathlib import Path -import os - -bin_dir = Path(os.environ['DAMASK_ROOT'])/'bin' - -if not bin_dir.exists(): - bin_dir.mkdir() - - -sys.stdout.write('\nsymbolic linking...\n') -for sub_dir in ['pre','post']: - the_dir = Path(os.environ['DAMASK_ROOT'])/'processing'/sub_dir - - for the_file in the_dir.glob('*.py'): - src = the_dir/the_file - dst = bin_dir/Path(the_file.with_suffix('').name) - if dst.is_file(): dst.unlink() # dst.unlink(True) for Python >3.8 - dst.symlink_to(src) - - -sys.stdout.write('\npruning broken links...\n') -for filename in bin_dir.glob('*'): - if not filename.is_file(): - filename.unlink() diff --git a/python/damask/_configmaterial.py b/python/damask/_configmaterial.py index b5b38a417..375d3e2ce 100644 --- a/python/damask/_configmaterial.py +++ b/python/damask/_configmaterial.py @@ -108,6 +108,10 @@ class ConfigMaterial(Config): and grain- or cell-wise data. Defaults to None, in which case it is set as the path that contains _SIMPL_GEOMETRY/SPACING. + Notes + ----- + Homogenization and phase entries are emtpy and need to be defined separately. + Returns ------- loaded : damask.ConfigMaterial diff --git a/python/damask/_grid.py b/python/damask/_grid.py index fbb40d0ae..c8ce2517a 100644 --- a/python/damask/_grid.py +++ b/python/damask/_grid.py @@ -31,14 +31,15 @@ class Grid: Parameters ---------- - material : numpy.ndarray - Material index array (3D). - size : list or numpy.ndarray - Physical size of the grid in meter. - origin : list or numpy.ndarray, optional - Physical origin of the grid in meter. + material : numpy.ndarray of shape (:,:,:) + Material indices. The shape of the material array defines + the number of cells. + size : list or numpy.ndarray of shape (3) + Physical size of grid in meter. + origin : list or numpy.ndarray of shape (3), optional + Coordinates of grid origin in meter. comments : list of str, optional - Comment lines. + Comments, e.g. history of operations. """ self.material = material diff --git a/python/damask/_result.py b/python/damask/_result.py index 9bd16be0e..7d1700028 100644 --- a/python/damask/_result.py +++ b/python/damask/_result.py @@ -78,7 +78,7 @@ class Result: >>> r = damask.Result('my_file.hdf5') >>> r.add_Cauchy() >>> r.add_equivalent_Mises('sigma') - >>> r.save_VTK() + >>> r.export_VTK() >>> r_last = r.view('increments',-1) >>> sigma_vM_last = r_last.get('sigma_vM') @@ -1377,13 +1377,13 @@ class Result: pool.join() - def save_XDMF(self,output='*'): + def export_XDMF(self,output='*'): """ Write XDMF file to directly visualize data in DADF5 file. The XDMF format is only supported for structured grids with single phase and single constituent. - For other cases use `save_VTK`. + For other cases use `export_VTK`. Parameters ---------- @@ -1511,7 +1511,7 @@ class Result: return at_cell_ph,in_data_ph,at_cell_ho,in_data_ho - def save_VTK(self,output='*',mode='cell',constituents=None,fill_float=np.nan,fill_int=0,parallel=True): + def export_VTK(self,output='*',mode='cell',constituents=None,fill_float=np.nan,fill_int=0,parallel=True): """ Export to VTK cell/point data. @@ -1549,7 +1549,7 @@ class Result: else: raise ValueError(f'invalid mode {mode}') - v.set_comments(util.execution_stamp('Result','save_VTK')) + v.set_comments(util.execution_stamp('Result','export_VTK')) N_digits = int(np.floor(np.log10(max(1,int(self.increments[-1][10:])))))+1 @@ -1732,3 +1732,6 @@ class Result: if flatten: r = util.dict_flatten(r) return None if (type(r) == dict and r == {}) else r + + save_VTK = export_VTK + save_XDMF = export_XDMF diff --git a/python/damask/util.py b/python/damask/util.py index 529b63d20..8cf0d279f 100644 --- a/python/damask/util.py +++ b/python/damask/util.py @@ -588,9 +588,11 @@ class _ProgressBar: fraction = (iteration+1) / self.total filled_length = int(self.bar_length * fraction) - if filled_length > int(self.bar_length * self.last_fraction): + delta_time = datetime.datetime.now() - self.start_time + + if filled_length > int(self.bar_length * self.last_fraction) or \ + delta_time > datetime.timedelta(minutes=1): bar = '█' * filled_length + '░' * (self.bar_length - filled_length) - delta_time = datetime.datetime.now() - self.start_time remaining_time = (self.total - (iteration+1)) * delta_time / (iteration+1) remaining_time -= datetime.timedelta(microseconds=remaining_time.microseconds) # remove μs sys.stderr.write(f'\r{self.prefix} {bar} {fraction:>4.0%} ETA {remaining_time}') diff --git a/python/tests/reference/Result/12grains6x7x8.material.yaml b/python/tests/reference/Result/12grains6x7x8.material.yaml index 741f6457e..a74e266c3 100644 --- a/python/tests/reference/Result/12grains6x7x8.material.yaml +++ b/python/tests/reference/Result/12grains6x7x8.material.yaml @@ -15,8 +15,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] type: phenopowerlaw @@ -32,8 +32,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] type: phenopowerlaw diff --git a/python/tests/reference/Result/4grains2x4x3.material.yaml b/python/tests/reference/Result/4grains2x4x3.material.yaml index 6b7c83809..160db3ace 100644 --- a/python/tests/reference/Result/4grains2x4x3.material.yaml +++ b/python/tests/reference/Result/4grains2x4x3.material.yaml @@ -647,8 +647,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] type: phenopowerlaw @@ -664,8 +664,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1.4, 1, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] type: phenopowerlaw diff --git a/python/tests/reference/Result/6grains6x7x8_single_phase.material.yaml b/python/tests/reference/Result/6grains6x7x8_single_phase.material.yaml index 1894d4b2b..0f7bf5450 100644 --- a/python/tests/reference/Result/6grains6x7x8_single_phase.material.yaml +++ b/python/tests/reference/Result/6grains6x7x8_single_phase.material.yaml @@ -15,8 +15,8 @@ phase: a_sl: 2.25 atol_xi: 1.0 dot_gamma_0_sl: 0.001 - h_0_sl_sl: 75e6 - h_sl_sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] + h_0_sl-sl: 75e6 + h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4] n_sl: 20 output: [xi_sl] type: phenopowerlaw diff --git a/python/tests/reference/Result/export_VTK/test_vtk[0-0-0].md5 b/python/tests/reference/Result/export_VTK/test_vtk[0-0-0].md5 new file mode 100644 index 000000000..6999a9d31 --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[0-0-0].md5 @@ -0,0 +1 @@ +d5db0be324a959f00245e42704ea2d6f \ No newline at end of file diff --git a/python/tests/reference/Result/export_VTK/test_vtk[0-0-1].md5 b/python/tests/reference/Result/export_VTK/test_vtk[0-0-1].md5 new file mode 100644 index 000000000..5a716bce5 --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[0-0-1].md5 @@ -0,0 +1 @@ +fe9ddaf54ac1fb785094251d29fcdc9c \ No newline at end of file diff --git a/python/tests/reference/Result/export_VTK/test_vtk[0-0-2].md5 b/python/tests/reference/Result/export_VTK/test_vtk[0-0-2].md5 new file mode 100644 index 000000000..74d0f4fdb --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[0-0-2].md5 @@ -0,0 +1 @@ +9c8ac0bb1eb4a7b9ebc3e5fd5840b0a4 \ No newline at end of file diff --git a/python/tests/reference/Result/export_VTK/test_vtk[1-0-0].md5 b/python/tests/reference/Result/export_VTK/test_vtk[1-0-0].md5 new file mode 100644 index 000000000..71aef9af6 --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[1-0-0].md5 @@ -0,0 +1 @@ +1b9ebd17c5257e2edba48d006f25d4e6 \ No newline at end of file diff --git a/python/tests/reference/Result/export_VTK/test_vtk[1-0-1].md5 b/python/tests/reference/Result/export_VTK/test_vtk[1-0-1].md5 new file mode 100644 index 000000000..030d7a406 --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[1-0-1].md5 @@ -0,0 +1 @@ +8967bb1a6c329a072baaa83da534ae56 \ No newline at end of file diff --git a/python/tests/reference/Result/export_VTK/test_vtk[1-0-2].md5 b/python/tests/reference/Result/export_VTK/test_vtk[1-0-2].md5 new file mode 100644 index 000000000..78426bbca --- /dev/null +++ b/python/tests/reference/Result/export_VTK/test_vtk[1-0-2].md5 @@ -0,0 +1 @@ +752e8b6186ad2b6b1b5c781940669cb1 \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[0-0-0].md5 b/python/tests/reference/Result/save_VTK/test_vtk[0-0-0].md5 deleted file mode 100644 index 82a898878..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[0-0-0].md5 +++ /dev/null @@ -1 +0,0 @@ -6d4da1188f1de0a80142692e9e135aed \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[0-0-1].md5 b/python/tests/reference/Result/save_VTK/test_vtk[0-0-1].md5 deleted file mode 100644 index ac9fedf57..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[0-0-1].md5 +++ /dev/null @@ -1 +0,0 @@ -5926c1f393871ee942750069545798a7 \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[0-0-2].md5 b/python/tests/reference/Result/save_VTK/test_vtk[0-0-2].md5 deleted file mode 100644 index 729d60a8d..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[0-0-2].md5 +++ /dev/null @@ -1 +0,0 @@ -743c9a868d54b78ee0648613249a0bdc \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[1-0-0].md5 b/python/tests/reference/Result/save_VTK/test_vtk[1-0-0].md5 deleted file mode 100644 index f6323d47a..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[1-0-0].md5 +++ /dev/null @@ -1 +0,0 @@ -09f5a7a6dd7a8e7d30e47aec07f7f616 \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[1-0-1].md5 b/python/tests/reference/Result/save_VTK/test_vtk[1-0-1].md5 deleted file mode 100644 index 2caab25b9..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[1-0-1].md5 +++ /dev/null @@ -1 +0,0 @@ -5715cfc5fc21c6d04590354f0941cf7b \ No newline at end of file diff --git a/python/tests/reference/Result/save_VTK/test_vtk[1-0-2].md5 b/python/tests/reference/Result/save_VTK/test_vtk[1-0-2].md5 deleted file mode 100644 index 63eb41211..000000000 --- a/python/tests/reference/Result/save_VTK/test_vtk[1-0-2].md5 +++ /dev/null @@ -1 +0,0 @@ -2f7b43ea8fe65173f47acb8281f0a919 \ No newline at end of file diff --git a/python/tests/test_Result.py b/python/tests/test_Result.py index dbc3caf44..5f543861d 100644 --- a/python/tests/test_Result.py +++ b/python/tests/test_Result.py @@ -369,7 +369,7 @@ class TestResult: def test_vtk(self,request,tmp_path,ref_path,update,patch_execution_stamp,patch_datetime_now,output,fname,inc): result = Result(ref_path/fname).view('increments',inc) os.chdir(tmp_path) - result.save_VTK(output) + result.export_VTK(output) fname = fname.split('.')[0]+f'_inc{(inc if type(inc) == int else inc[0]):0>2}.vti' last = '' for i in range(10): @@ -382,9 +382,9 @@ class TestResult: last = cur time.sleep(.5) if update: - with open((ref_path/'save_VTK'/request.node.name).with_suffix('.md5'),'w') as f: + with open((ref_path/'export_VTK'/request.node.name).with_suffix('.md5'),'w') as f: f.write(cur) - with open((ref_path/'save_VTK'/request.node.name).with_suffix('.md5')) as f: + with open((ref_path/'export_VTK'/request.node.name).with_suffix('.md5')) as f: assert cur == f.read() @pytest.mark.parametrize('mode',['point','cell']) @@ -392,7 +392,7 @@ class TestResult: def test_vtk_marc(self,tmp_path,ref_path,mode,output): os.chdir(tmp_path) result = Result(ref_path/'check_compile_job1.hdf5') - result.save_VTK(output,mode) + result.export_VTK(output,mode) def test_marc_coordinates(self,ref_path): result = Result(ref_path/'check_compile_job1.hdf5').view('increments',-1) @@ -403,7 +403,7 @@ class TestResult: @pytest.mark.parametrize('mode',['point','cell']) def test_vtk_mode(self,tmp_path,single_phase,mode): os.chdir(tmp_path) - single_phase.save_VTK(mode=mode) + single_phase.export_VTK(mode=mode) def test_XDMF_datatypes(self,tmp_path,single_phase,update,ref_path): for shape in [('scalar',()),('vector',(3,)),('tensor',(3,3)),('matrix',(12,))]: @@ -411,9 +411,7 @@ class TestResult: single_phase.add_calculation(f"np.ones(np.shape(#F#)[0:1]+{shape[1]},'{dtype}')",f'{shape[0]}_{dtype}') fname = os.path.splitext(os.path.basename(single_phase.fname))[0]+'.xdmf' os.chdir(tmp_path) - - single_phase.save_XDMF() - + single_phase.export_XDMF() if update: shutil.copy(tmp_path/fname,ref_path/fname) @@ -423,7 +421,7 @@ class TestResult: def test_XDMF_shape(self,tmp_path,single_phase): os.chdir(tmp_path) - single_phase.save_XDMF() + single_phase.export_XDMF() fname = os.path.splitext(os.path.basename(single_phase.fname))[0]+'.xdmf' reader_xdmf = vtk.vtkXdmfReader() reader_xdmf.SetFileName(fname) @@ -431,7 +429,7 @@ class TestResult: dim_xdmf = reader_xdmf.GetOutput().GetDimensions() bounds_xdmf = reader_xdmf.GetOutput().GetBounds() - single_phase.view('increments',0).save_VTK() + single_phase.view('increments',0).export_VTK() fname = os.path.splitext(os.path.basename(single_phase.fname))[0]+'_inc00.vti' for i in range(10): # waiting for parallel IO reader_vti = vtk.vtkXMLImageDataReader() @@ -447,7 +445,7 @@ class TestResult: def test_XDMF_invalid(self,default): with pytest.raises(TypeError): - default.save_XDMF() + default.export_XDMF() @pytest.mark.parametrize('view,output,flatten,prune', [({},['F','P','F','L_p','F_e','F_p'],True,True), diff --git a/src/phase_mechanical_plastic_dislotungsten.f90 b/src/phase_mechanical_plastic_dislotungsten.f90 index fb041d9f5..7c9accc8d 100644 --- a/src/phase_mechanical_plastic_dislotungsten.f90 +++ b/src/phase_mechanical_plastic_dislotungsten.f90 @@ -149,7 +149,7 @@ module function plastic_dislotungsten_init() result(myPlasticity) prm%nonSchmid_neg = prm%P_sl endif - prm%h_sl_sl = lattice_interaction_SlipBySlip(N_sl,pl%get_as1dFloat('h_sl_sl'), & + prm%h_sl_sl = lattice_interaction_SlipBySlip(N_sl,pl%get_as1dFloat('h_sl-sl'), & phase%get_asString('lattice')) prm%forestProjection = lattice_forestProjection_edge(N_sl,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) diff --git a/src/phase_mechanical_plastic_dislotwin.f90 b/src/phase_mechanical_plastic_dislotwin.f90 index 20b4387f3..f1f39c71f 100644 --- a/src/phase_mechanical_plastic_dislotwin.f90 +++ b/src/phase_mechanical_plastic_dislotwin.f90 @@ -194,7 +194,7 @@ module function plastic_dislotwin_init() result(myPlasticity) slipActive: if (prm%sum_N_sl > 0) then prm%P_sl = lattice_SchmidMatrix_slip(N_sl,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) - prm%h_sl_sl = lattice_interaction_SlipBySlip(N_sl,pl%get_as1dFloat('h_sl_sl'), & + prm%h_sl_sl = lattice_interaction_SlipBySlip(N_sl,pl%get_as1dFloat('h_sl-sl'), & phase%get_asString('lattice')) prm%forestProjection = lattice_forestProjection_edge(N_sl,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) @@ -271,7 +271,7 @@ module function plastic_dislotwin_init() result(myPlasticity) prm%P_tw = lattice_SchmidMatrix_twin(N_tw,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) prm%h_tw_tw = lattice_interaction_TwinByTwin(N_tw,& - pl%get_as1dFloat('h_tw_tw'), & + pl%get_as1dFloat('h_tw-tw'), & phase%get_asString('lattice')) prm%b_tw = pl%get_as1dFloat('b_tw', requiredSize=size(N_tw)) @@ -327,7 +327,7 @@ module function plastic_dislotwin_init() result(myPlasticity) prm%x_c_tr = pl%get_asFloat('x_c_tr', defaultVal=0.0_pReal) ! ToDo: How to handle that??? prm%L_tr = pl%get_asFloat('L_tr') - prm%h_tr_tr = lattice_interaction_TransByTrans(N_tr,pl%get_as1dFloat('h_tr_tr'), & + prm%h_tr_tr = lattice_interaction_TransByTrans(N_tr,pl%get_as1dFloat('h_tr-tr'), & phase%get_asString('lattice')) prm%C66_tr = lattice_C66_trans(N_tr,prm%C66,pl%get_asString('lattice_tr'), & @@ -392,14 +392,14 @@ module function plastic_dislotwin_init() result(myPlasticity) slipAndTwinActive: if (prm%sum_N_sl * prm%sum_N_tw > 0) then prm%h_sl_tw = lattice_interaction_SlipByTwin(N_sl,N_tw,& - pl%get_as1dFloat('h_sl_tw'), & + pl%get_as1dFloat('h_sl-tw'), & phase%get_asString('lattice')) if (prm%fccTwinTransNucleation .and. size(N_tw) /= 1) extmsg = trim(extmsg)//' interaction_sliptwin' endif slipAndTwinActive slipAndTransActive: if (prm%sum_N_sl * prm%sum_N_tr > 0) then prm%h_sl_tr = lattice_interaction_SlipByTrans(N_sl,N_tr,& - pl%get_as1dFloat('h_sl_tr'), & + pl%get_as1dFloat('h_sl-tr'), & phase%get_asString('lattice')) if (prm%fccTwinTransNucleation .and. size(N_tr) /= 1) extmsg = trim(extmsg)//' interaction_sliptrans' endif slipAndTransActive diff --git a/src/phase_mechanical_plastic_kinehardening.f90 b/src/phase_mechanical_plastic_kinehardening.f90 index 04e4bee72..461196d3f 100644 --- a/src/phase_mechanical_plastic_kinehardening.f90 +++ b/src/phase_mechanical_plastic_kinehardening.f90 @@ -125,7 +125,7 @@ module function plastic_kinehardening_init() result(myPlasticity) prm%nonSchmid_neg = prm%P endif prm%interaction_SlipSlip = lattice_interaction_SlipBySlip(N_sl, & - pl%get_as1dFloat('h_sl_sl'), & + pl%get_as1dFloat('h_sl-sl'), & phase%get_asString('lattice')) xi_0 = pl%get_as1dFloat('xi_0', requiredSize=size(N_sl)) diff --git a/src/phase_mechanical_plastic_nonlocal.f90 b/src/phase_mechanical_plastic_nonlocal.f90 index 7dd4c57de..efd45e97b 100644 --- a/src/phase_mechanical_plastic_nonlocal.f90 +++ b/src/phase_mechanical_plastic_nonlocal.f90 @@ -261,7 +261,7 @@ module function plastic_nonlocal_init() result(myPlasticity) endif prm%h_sl_sl = lattice_interaction_SlipBySlip(ini%N_sl, & - pl%get_as1dFloat('h_sl_sl'), & + pl%get_as1dFloat('h_sl-sl'), & phase%get_asString('lattice')) prm%forestProjection_edge = lattice_forestProjection_edge (ini%N_sl,phase%get_asString('lattice'),& diff --git a/src/phase_mechanical_plastic_phenopowerlaw.f90 b/src/phase_mechanical_plastic_phenopowerlaw.f90 index 17f2cc306..978a2cf1d 100644 --- a/src/phase_mechanical_plastic_phenopowerlaw.f90 +++ b/src/phase_mechanical_plastic_phenopowerlaw.f90 @@ -128,7 +128,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) prm%nonSchmid_neg = prm%P_sl endif prm%h_sl_sl = lattice_interaction_SlipBySlip(N_sl, & - pl%get_as1dFloat('h_sl_sl'), & + pl%get_as1dFloat('h_sl-sl'), & phase%get_asString('lattice')) xi_0_sl = pl%get_as1dFloat('xi_0_sl', requiredSize=size(N_sl)) @@ -139,7 +139,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) prm%dot_gamma_0_sl = pl%get_asFloat('dot_gamma_0_sl') prm%n_sl = pl%get_asFloat('n_sl') prm%a_sl = pl%get_asFloat('a_sl') - prm%h_0_sl_sl = pl%get_asFloat('h_0_sl_sl') + prm%h_0_sl_sl = pl%get_asFloat('h_0_sl-sl') ! expand: family => system xi_0_sl = math_expand(xi_0_sl, N_sl) @@ -167,7 +167,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) prm%P_tw = lattice_SchmidMatrix_twin(N_tw,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) prm%h_tw_tw = lattice_interaction_TwinByTwin(N_tw,& - pl%get_as1dFloat('h_tw_tw'), & + pl%get_as1dFloat('h_tw-tw'), & phase%get_asString('lattice')) prm%gamma_char = lattice_characteristicShear_twin(N_tw,phase%get_asString('lattice'),& phase%get_asFloat('c/a',defaultVal=0.0_pReal)) @@ -180,8 +180,8 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) prm%c_4 = pl%get_asFloat('c_4',defaultVal=0.0_pReal) prm%dot_gamma_0_tw = pl%get_asFloat('dot_gamma_0_tw') prm%n_tw = pl%get_asFloat('n_tw') - prm%f_sat_sl_tw = pl%get_asFloat('f_sat_sl_tw') - prm%h_0_tw_tw = pl%get_asFloat('h_0_tw_tw') + prm%f_sat_sl_tw = pl%get_asFloat('f_sat_sl-tw') + prm%h_0_tw_tw = pl%get_asFloat('h_0_tw-tw') ! expand: family => system xi_0_tw = math_expand(xi_0_tw,N_tw) @@ -199,12 +199,12 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) !-------------------------------------------------------------------------------------------------- ! slip-twin related parameters slipAndTwinActive: if (prm%sum_N_sl > 0 .and. prm%sum_N_tw > 0) then - prm%h_0_tw_sl = pl%get_asFloat('h_0_tw_sl') + prm%h_0_tw_sl = pl%get_asFloat('h_0_tw-sl') prm%h_sl_tw = lattice_interaction_SlipByTwin(N_sl,N_tw,& - pl%get_as1dFloat('h_sl_tw'), & + pl%get_as1dFloat('h_sl-tw'), & phase%get_asString('lattice')) prm%h_tw_sl = lattice_interaction_TwinBySlip(N_tw,N_sl,& - pl%get_as1dFloat('h_tw_sl'), & + pl%get_as1dFloat('h_tw-sl'), & phase%get_asString('lattice')) else slipAndTwinActive allocate(prm%h_sl_tw(prm%sum_N_sl,prm%sum_N_tw)) ! at least one dimension is 0