From a2b571c1fc8f0148087de6ed141801d069d542c0 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Thu, 14 Sep 2023 16:45:24 -0400 Subject: [PATCH] corrected sign definition of <111>{110} slip systems Breaking change: Sign of shear differs --- PRIVATE | 2 +- python/damask/_crystal.py | 196 +++++++++--------- .../tests/resources/Orientation/cI_slip.txt | 24 +-- python/tests/test_Orientation.py | 7 +- src/crystal.f90 | 17 +- 5 files changed, 123 insertions(+), 123 deletions(-) diff --git a/PRIVATE b/PRIVATE index 9623d3d50..b13ed2628 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 9623d3d50e11a086e456b7fddc25fae67266911d +Subproject commit b13ed2628e2ece45bcf433ce88483759b02c946e diff --git a/python/damask/_crystal.py b/python/damask/_crystal.py index adcaf610e..b2fb4edd7 100644 --- a/python/damask/_crystal.py +++ b/python/damask/_crystal.py @@ -785,25 +785,25 @@ class Crystal(): _kinematics: Dict[BravaisLattice, Dict[CrystalKinematics, List[np.ndarray]]] = { 'cF': { 'slip': [np.array([ - [+0,+1,-1, +1,+1,+1], - [-1,+0,+1, +1,+1,+1], - [+1,-1,+0, +1,+1,+1], - [+0,-1,-1, -1,-1,+1], - [+1,+0,+1, -1,-1,+1], - [-1,+1,+0, -1,-1,+1], - [+0,-1,+1, +1,-1,-1], - [-1,+0,-1, +1,-1,-1], - [+1,+1,+0, +1,-1,-1], - [+0,+1,+1, -1,+1,-1], - [+1,+0,-1, -1,+1,-1], - [-1,-1,+0, -1,+1,-1]]), + [ 0,+1,-1, +1,+1,+1], + [-1, 0,+1, +1,+1,+1], + [+1,-1, 0, +1,+1,+1], + [ 0,-1,-1, -1,-1,+1], + [+1, 0,+1, -1,-1,+1], + [-1,+1, 0, -1,-1,+1], + [ 0,-1,+1, +1,-1,-1], + [-1, 0,-1, +1,-1,-1], + [+1,+1, 0, +1,-1,-1], + [ 0,+1,+1, -1,+1,-1], + [+1, 0,-1, -1,+1,-1], + [-1,-1, 0, -1,+1,-1]]), np.array([ - [+1,+1,+0, +1,-1,+0], - [+1,-1,+0, +1,+1,+0], - [+1,+0,+1, +1,+0,-1], - [+1,+0,-1, +1,+0,+1], - [+0,+1,+1, +0,+1,-1], - [+0,+1,-1, +0,+1,+1]])], + [+1,+1, 0, +1,-1, 0], + [+1,-1, 0, +1,+1, 0], + [+1, 0,+1, +1, 0,-1], + [+1, 0,-1, +1, 0,+1], + [ 0,+1,+1, 0,+1,-1], + [ 0,+1,-1, 0,+1,+1]])], 'twin': [np.array([ [-2, 1, 1, 1, 1, 1], [ 1,-2, 1, 1, 1, 1], @@ -820,18 +820,18 @@ class Crystal(): }, 'cI': { 'slip': [np.array([ - [+1,-1,+1, +0,+1,+1], - [-1,-1,+1, +0,+1,+1], - [+1,+1,+1, +0,-1,+1], - [-1,+1,+1, +0,-1,+1], - [-1,+1,+1, +1,+0,+1], - [-1,-1,+1, +1,+0,+1], - [+1,+1,+1, -1,+0,+1], - [+1,-1,+1, -1,+0,+1], - [-1,+1,+1, +1,+1,+0], - [-1,+1,-1, +1,+1,+0], - [+1,+1,+1, -1,+1,+0], - [+1,+1,-1, -1,+1,+0]]), + [+1,-1,+1, 0,+1,+1], + [-1,-1,+1, 0,-1,-1], + [+1,+1,+1, 0,+1,-1], + [-1,+1,+1, 0,-1,+1], + [-1,+1,+1, -1, 0,-1], + [-1,-1,+1, +1, 0,+1], + [+1,+1,+1, -1, 0,+1], + [+1,-1,+1, +1, 0,-1], + [-1,+1,+1, +1,+1, 0], + [+1,-1,+1, -1,-1, 0], + [+1,+1,+1, +1,-1, 0], + [-1,-1,+1, -1,+1, 0]]), np.array([ [-1,+1,+1, +2,+1,+1], [+1,+1,+1, -2,+1,+1], @@ -886,33 +886,33 @@ class Crystal(): }, 'hP': { 'slip': [np.array([ - [+2,-1,-1,+0, +0,+0,+0,+1], - [-1,+2,-1,+0, +0,+0,+0,+1], - [-1,-1,+2,+0, +0,+0,+0,+1]]), + [+2,-1,-1, 0, 0, 0, 0,+1], + [-1,+2,-1, 0, 0, 0, 0,+1], + [-1,-1,+2, 0, 0, 0, 0,+1]]), np.array([ - [+2,-1,-1,+0, +0,+1,-1,+0], - [-1,+2,-1,+0, -1,+0,+1,+0], - [-1,-1,+2,+0, +1,-1,+0,+0]]), + [+2,-1,-1, 0, 0,+1,-1, 0], + [-1,+2,-1, 0, -1, 0,+1, 0], + [-1,-1,+2, 0, +1,-1, 0, 0]]), np.array([ - [-1,+2,-1,+0, +1,+0,-1,+1], - [-2,+1,+1,+0, +0,+1,-1,+1], - [-1,-1,+2,+0, -1,+1,+0,+1], - [+1,-2,+1,+0, -1,+0,+1,+1], - [+2,-1,-1,+0, +0,-1,+1,+1], - [+1,+1,-2,+0, +1,-1,+0,+1]]), + [-1,+2,-1, 0, +1, 0,-1,+1], + [-2,+1,+1, 0, 0,+1,-1,+1], + [-1,-1,+2, 0, -1,+1, 0,+1], + [+1,-2,+1, 0, -1, 0,+1,+1], + [+2,-1,-1, 0, 0,-1,+1,+1], + [+1,+1,-2, 0, +1,-1, 0,+1]]), np.array([ - [-2,+1,+1,+3, +1,+0,-1,+1], - [-1,-1,+2,+3, +1,+0,-1,+1], - [-1,-1,+2,+3, +0,+1,-1,+1], - [+1,-2,+1,+3, +0,+1,-1,+1], - [+1,-2,+1,+3, -1,+1,+0,+1], - [+2,-1,-1,+3, -1,+1,+0,+1], - [+2,-1,-1,+3, -1,+0,+1,+1], - [+1,+1,-2,+3, -1,+0,+1,+1], - [+1,+1,-2,+3, +0,-1,+1,+1], - [-1,+2,-1,+3, +0,-1,+1,+1], - [-1,+2,-1,+3, +1,-1,+0,+1], - [-2,+1,+1,+3, +1,-1,+0,+1]]), + [-2,+1,+1,+3, +1, 0,-1,+1], + [-1,-1,+2,+3, +1, 0,-1,+1], + [-1,-1,+2,+3, 0,+1,-1,+1], + [+1,-2,+1,+3, 0,+1,-1,+1], + [+1,-2,+1,+3, -1,+1, 0,+1], + [+2,-1,-1,+3, -1,+1, 0,+1], + [+2,-1,-1,+3, -1, 0,+1,+1], + [+1,+1,-2,+3, -1, 0,+1,+1], + [+1,+1,-2,+3, 0,-1,+1,+1], + [-1,+2,-1,+3, 0,-1,+1,+1], + [-1,+2,-1,+3, +1,-1, 0,+1], + [-2,+1,+1,+3, +1,-1, 0,+1]]), np.array([ [-1,-1,+2,+3, +1,+1,-2,+2], [+1,-2,+1,+3, -1,+2,-1,+2], @@ -951,61 +951,61 @@ class Crystal(): }, 'tI': { 'slip': [np.array([ - [+0,+0,+1, +1,+0,+0], - [+0,+0,+1, +0,+1,+0]]), + [ 0, 0,+1, +1, 0, 0], + [ 0, 0,+1, 0,+1, 0]]), np.array([ - [+0,+0,+1, +1,+1,+0], - [+0,+0,+1, -1,+1,+0]]), + [ 0, 0,+1, +1,+1, 0], + [ 0, 0,+1, -1,+1, 0]]), np.array([ - [+0,+1,+0, +1,+0,+0], - [+1,+0,+0, +0,+1,+0]]), + [ 0,+1, 0, +1, 0, 0], + [+1, 0, 0, 0,+1, 0]]), np.array([ - [+1,-1,+1, +1,+1,+0], - [+1,-1,-1, +1,+1,+0], - [-1,-1,-1, -1,+1,+0], - [-1,-1,+1, -1,+1,+0]]), + [+1,-1,+1, +1,+1, 0], + [+1,-1,-1, +1,+1, 0], + [-1,-1,-1, -1,+1, 0], + [-1,-1,+1, -1,+1, 0]]), np.array([ - [+1,-1,+0, +1,+1,+0], - [+1,+1,+0, +1,-1,+0]]), + [+1,-1, 0, +1,+1, 0], + [+1,+1, 0, +1,-1, 0]]), np.array([ - [+0,+1,+1, +1,+0,+0], - [+0,-1,+1, +1,+0,+0], - [-1,+0,+1, +0,+1,+0], - [+1,+0,+1, +0,+1,+0]]), + [ 0,+1,+1, +1, 0, 0], + [ 0,-1,+1, +1, 0, 0], + [-1, 0,+1, 0,+1, 0], + [+1, 0,+1, 0,+1, 0]]), np.array([ - [+0,+1,+0, +0,+0,+1], - [+1,+0,+0, +0,+0,+1]]), + [ 0,+1, 0, 0, 0,+1], + [+1, 0, 0, 0, 0,+1]]), np.array([ - [+1,+1,+0, +0,+0,+1], - [-1,+1,+0, +0,+0,+1]]), + [+1,+1, 0, 0, 0,+1], + [-1,+1, 0, 0, 0,+1]]), np.array([ - [+0,+1,-1, +0,+1,+1], - [+0,-1,-1, +0,-1,+1], - [-1,+0,-1, -1,+0,+1], - [+1,+0,-1, +1,+0,+1]]), + [ 0,+1,-1, 0,+1,+1], + [ 0,-1,-1, 0,-1,+1], + [-1, 0,-1, -1, 0,+1], + [+1, 0,-1, +1, 0,+1]]), np.array([ - [+1,-1,+1, +0,+1,+1], - [+1,+1,-1, +0,+1,+1], - [+1,+1,+1, +0,+1,-1], - [-1,+1,+1, +0,+1,-1], - [+1,-1,-1, +1,+0,+1], - [-1,-1,+1, +1,+0,+1], - [+1,+1,+1, +1,+0,-1], - [+1,-1,+1, +1,+0,-1]]), + [+1,-1,+1, 0,+1,+1], + [+1,+1,-1, 0,+1,+1], + [+1,+1,+1, 0,+1,-1], + [-1,+1,+1, 0,+1,-1], + [+1,-1,-1, +1, 0,+1], + [-1,-1,+1, +1, 0,+1], + [+1,+1,+1, +1, 0,-1], + [+1,-1,+1, +1, 0,-1]]), np.array([ - [+1,+0,+0, +0,+1,+1], - [+1,+0,+0, +0,+1,-1], - [+0,+1,+0, +1,+0,+1], - [+0,+1,+0, +1,+0,-1]]), + [+1, 0, 0, 0,+1,+1], + [+1, 0, 0, 0,+1,-1], + [ 0,+1, 0, +1, 0,+1], + [ 0,+1, 0, +1, 0,-1]]), np.array([ - [+0,+1,-1, +2,+1,+1], - [+0,-1,-1, +2,-1,+1], - [+1,+0,-1, +1,+2,+1], - [-1,+0,-1, -1,+2,+1], - [+0,+1,-1, -2,+1,+1], - [+0,-1,-1, -2,-1,+1], - [-1,+0,-1, -1,-2,+1], - [+1,+0,-1, +1,-2,+1]]), + [ 0,+1,-1, +2,+1,+1], + [ 0,-1,-1, +2,-1,+1], + [+1, 0,-1, +1,+2,+1], + [-1, 0,-1, -1,+2,+1], + [ 0,+1,-1, -2,+1,+1], + [ 0,-1,-1, -2,-1,+1], + [-1, 0,-1, -1,-2,+1], + [+1, 0,-1, +1,-2,+1]]), np.array([ [-1,+1,+1, +2,+1,+1], [-1,-1,+1, +2,-1,+1], diff --git a/python/tests/resources/Orientation/cI_slip.txt b/python/tests/resources/Orientation/cI_slip.txt index 0f8db6c21..c4430fcef 100644 --- a/python/tests/resources/Orientation/cI_slip.txt +++ b/python/tests/resources/Orientation/cI_slip.txt @@ -1,23 +1,23 @@ 3x3:1_Schmid 3x3:2_Schmid 3x3:3_Schmid 3x3:4_Schmid 3x3:5_Schmid 3x3:6_Schmid 3x3:7_Schmid 3x3:8_Schmid 3x3:9_Schmid 0.0 0.4082482904638631 0.408248290463863 0.0 -0.408248290463863 -0.40824829046386296 0.0 0.4082482904638631 0.408248290463863 -0.0 -0.408248290463863 -0.40824829046386296 0.0 -0.408248290463863 -0.40824829046386296 0.0 0.4082482904638631 0.408248290463863 -0.0 -0.408248290463863 0.408248290463863 0.0 -0.408248290463863 0.408248290463863 0.0 -0.408248290463863 0.408248290463863 +0.0 0.408248290463863 0.40824829046386296 0.0 0.408248290463863 0.40824829046386296 0.0 -0.4082482904638631 -0.408248290463863 +0.0 0.408248290463863 -0.408248290463863 0.0 0.408248290463863 -0.408248290463863 0.0 0.408248290463863 -0.408248290463863 0.0 0.40824829046386285 -0.40824829046386285 0.0 -0.408248290463863 0.408248290463863 0.0 -0.408248290463863 0.408248290463863 --0.40824829046386296 2.4997998108697434e-17 -0.40824829046386285 0.4082482904638631 -2.4997998108697446e-17 0.408248290463863 0.4082482904638631 -2.4997998108697446e-17 0.408248290463863 +0.40824829046386296 -2.4997998108697434e-17 0.40824829046386285 -0.4082482904638631 2.4997998108697446e-17 -0.408248290463863 -0.4082482904638631 2.4997998108697446e-17 -0.408248290463863 -0.408248290463863 2.499799810869744e-17 -0.40824829046386296 -0.408248290463863 2.499799810869744e-17 -0.40824829046386296 0.4082482904638631 -2.4997998108697446e-17 0.408248290463863 -0.408248290463863 2.499799810869744e-17 0.408248290463863 -0.408248290463863 2.499799810869744e-17 0.408248290463863 -0.408248290463863 2.499799810869744e-17 0.408248290463863 --0.408248290463863 2.499799810869744e-17 0.408248290463863 0.40824829046386296 -2.4997998108697437e-17 -0.40824829046386296 -0.408248290463863 2.499799810869744e-17 0.408248290463863 +0.408248290463863 -2.499799810869744e-17 -0.408248290463863 -0.40824829046386296 2.4997998108697437e-17 0.40824829046386296 0.408248290463863 -2.499799810869744e-17 -0.408248290463863 -0.40824829046386296 -0.40824829046386285 4.999599621739487e-17 0.4082482904638631 0.408248290463863 -4.999599621739489e-17 0.4082482904638631 0.408248290463863 -4.999599621739489e-17 -0.4082482904638631 -0.408248290463863 4.999599621739489e-17 0.408248290463863 0.40824829046386296 -4.999599621739488e-17 -0.4082482904638631 -0.408248290463863 4.999599621739489e-17 --0.408248290463863 0.408248290463863 0.0 -0.408248290463863 0.408248290463863 0.0 -0.408248290463863 0.408248290463863 0.0 --0.40824829046386296 0.40824829046386296 0.0 -0.40824829046386296 0.40824829046386296 0.0 0.408248290463863 -0.408248290463863 0.0 +0.408248290463863 -0.408248290463863 0.0 0.408248290463863 -0.408248290463863 0.0 0.408248290463863 -0.408248290463863 0.0 +0.40824829046386296 -0.40824829046386296 0.0 0.40824829046386296 -0.40824829046386296 0.0 -0.408248290463863 0.408248290463863 0.0 -0.4714045207910316 -0.23570226039551578 -0.23570226039551576 0.4714045207910318 0.23570226039551587 0.23570226039551584 0.4714045207910318 0.23570226039551587 0.23570226039551584 --0.4714045207910318 0.23570226039551595 0.2357022603955159 -0.4714045207910318 0.23570226039551595 0.2357022603955159 -0.4714045207910318 0.23570226039551595 0.2357022603955159 -0.47140452079103173 -0.2357022603955159 0.23570226039551584 0.47140452079103173 -0.2357022603955159 0.23570226039551584 -0.4714045207910318 0.23570226039551595 -0.23570226039551587 +-0.4714045207910318 0.23570226039551595 0.23570226039551595 -0.4714045207910318 0.23570226039551595 0.23570226039551595 -0.4714045207910318 0.23570226039551595 0.23570226039551595 +0.47140452079103173 -0.2357022603955159 0.23570226039551587 0.47140452079103173 -0.2357022603955159 0.23570226039551587 -0.4714045207910318 0.23570226039551595 -0.2357022603955159 0.4714045207910318 0.23570226039551587 -0.23570226039551595 -0.47140452079103173 -0.23570226039551584 0.2357022603955159 0.4714045207910318 0.23570226039551587 -0.23570226039551595 0.2357022603955159 0.4714045207910318 0.23570226039551584 -0.23570226039551587 -0.47140452079103173 -0.23570226039551578 0.2357022603955159 0.4714045207910318 0.23570226039551584 --0.23570226039551587 0.47140452079103173 0.23570226039551587 -0.23570226039551587 0.47140452079103173 0.23570226039551587 0.2357022603955159 -0.4714045207910318 -0.2357022603955159 -0.2357022603955159 -0.4714045207910318 0.23570226039551595 0.2357022603955159 -0.4714045207910318 0.23570226039551595 0.2357022603955159 -0.4714045207910318 0.23570226039551595 +-0.23570226039551587 0.47140452079103173 0.23570226039551584 -0.23570226039551587 0.47140452079103173 0.23570226039551584 0.2357022603955159 -0.4714045207910318 -0.23570226039551587 +0.2357022603955159 -0.4714045207910318 0.2357022603955159 0.2357022603955159 -0.4714045207910318 0.2357022603955159 0.2357022603955159 -0.4714045207910318 0.2357022603955159 -0.2357022603955158 -0.4714045207910316 0.23570226039551584 0.2357022603955159 0.4714045207910318 -0.23570226039551595 0.2357022603955159 0.4714045207910318 -0.23570226039551595 0.23570226039551587 0.23570226039551584 0.47140452079103173 0.23570226039551587 0.23570226039551584 0.47140452079103173 -0.2357022603955159 -0.23570226039551587 -0.4714045207910318 -0.2357022603955159 0.2357022603955159 0.4714045207910318 0.23570226039551587 -0.23570226039551587 -0.47140452079103173 -0.2357022603955159 0.2357022603955159 0.4714045207910318 @@ -36,7 +36,7 @@ -0.30860669992418377 0.1543033499620919 -0.46291004988627565 0.3086066999241839 -0.15430334996209197 0.4629100498862758 0.3086066999241839 -0.15430334996209197 0.4629100498862758 0.3086066999241839 0.1543033499620919 -0.4629100498862758 0.3086066999241839 0.1543033499620919 -0.4629100498862758 0.3086066999241839 0.1543033499620919 -0.4629100498862758 0.3086066999241839 0.4629100498862758 0.15430334996209188 -0.3086066999241838 -0.4629100498862757 -0.15430334996209186 0.3086066999241839 0.4629100498862758 0.15430334996209188 --0.3086066999241838 0.4629100498862757 0.15430334996209188 -0.3086066999241838 0.4629100498862757 0.15430334996209188 0.3086066999241839 -0.4629100498862758 -0.1543033499620919 +-0.3086066999241838 0.4629100498862757 0.1543033499620919 -0.3086066999241838 0.4629100498862757 0.1543033499620919 0.3086066999241839 -0.4629100498862758 -0.15430334996209194 0.3086066999241839 -0.4629100498862758 0.15430334996209194 0.3086066999241839 -0.4629100498862758 0.15430334996209194 0.3086066999241839 -0.4629100498862758 0.15430334996209194 -0.30860669992418377 -0.46291004988627565 0.15430334996209194 0.3086066999241839 0.4629100498862758 -0.154303349962092 0.3086066999241839 0.4629100498862758 -0.154303349962092 -0.46291004988627565 -0.15430334996209186 -0.3086066999241837 0.4629100498862758 0.1543033499620919 0.3086066999241838 0.4629100498862758 0.1543033499620919 0.3086066999241838 @@ -45,5 +45,5 @@ 0.4629100498862758 0.1543033499620919 -0.3086066999241839 -0.4629100498862757 -0.15430334996209188 0.3086066999241838 0.4629100498862758 0.1543033499620919 -0.3086066999241839 -0.46291004988627565 -0.3086066999241837 -0.1543033499620918 0.4629100498862758 0.3086066999241838 0.15430334996209188 0.4629100498862758 0.3086066999241838 0.15430334996209188 -0.4629100498862758 0.3086066999241839 0.15430334996209194 -0.4629100498862758 0.3086066999241839 0.15430334996209194 -0.4629100498862758 0.3086066999241839 0.15430334996209194 -0.4629100498862757 -0.3086066999241838 0.1543033499620919 0.4629100498862757 -0.3086066999241838 0.1543033499620919 -0.4629100498862758 0.3086066999241839 -0.15430334996209194 +0.4629100498862757 -0.3086066999241838 0.15430334996209188 0.4629100498862757 -0.3086066999241838 0.15430334996209188 -0.4629100498862758 0.3086066999241839 -0.1543033499620919 0.4629100498862758 0.3086066999241838 -0.154303349962092 -0.4629100498862757 -0.30860669992418377 0.15430334996209197 0.4629100498862758 0.3086066999241838 -0.154303349962092 diff --git a/python/tests/test_Orientation.py b/python/tests/test_Orientation.py index a45444908..8346397cc 100644 --- a/python/tests/test_Orientation.py +++ b/python/tests/test_Orientation.py @@ -319,9 +319,7 @@ class TestOrientation: eu = o.related(model).as_Euler_angles(degrees=True) if update: coords = np.array([(1,i+1) for i,x in enumerate(eu)]) - Table(eu,{'Eulers':(3,)})\ - .add('pos',coords)\ - .save(reference) + Table({'Eulers':(3,)},eu).set('pos',coords).save(reference) assert np.allclose(eu,Table.load(reference).get('Eulers')) def test_basis_real(self): @@ -369,8 +367,7 @@ class TestOrientation: reference = res_path/f'{lattice}_{mode}.txt' P = O.Schmid(N_slip='*') if mode == 'slip' else O.Schmid(N_twin='*') if update: - table = Table(P.reshape(-1,9),{'Schmid':(3,3,)}) - table.save(reference) + Table({'Schmid':(3,3,)},P.reshape(-1,9)).save(reference) assert np.allclose(P,Table.load(reference).get('Schmid')) def test_Schmid_invalid(self): diff --git a/src/crystal.f90 b/src/crystal.f90 index 437e45227..9fa19f04a 100644 --- a/src/crystal.f90 +++ b/src/crystal.f90 @@ -123,18 +123,21 @@ module crystal real(pREAL), dimension(3+3,CI_NSLIP), parameter :: & CI_SYSTEMSLIP = reshape(real([& ! <111>{110} systems + ! Sign convention follows Table 1 of 10.1016/j.ijplas.2020.102733 + ! to allow for universal calculation of non-glide plane normal n1 = Rot(-m,60°) @ n + ! The choice matters since Rot(-m,60°) @ n ≠ Rot(m,60°) @ -n ..! 1,-1, 1, 0, 1, 1, & - -1,-1, 1, 0, 1, 1, & - 1, 1, 1, 0,-1, 1, & + -1,-1, 1, 0,-1,-1, & + 1, 1, 1, 0, 1,-1, & -1, 1, 1, 0,-1, 1, & - -1, 1, 1, 1, 0, 1, & + -1, 1, 1, -1, 0,-1, & -1,-1, 1, 1, 0, 1, & 1, 1, 1, -1, 0, 1, & - 1,-1, 1, -1, 0, 1, & + 1,-1, 1, 1, 0,-1, & -1, 1, 1, 1, 1, 0, & - -1, 1,-1, 1, 1, 0, & - 1, 1, 1, -1, 1, 0, & - 1, 1,-1, -1, 1, 0, & + 1,-1, 1, -1,-1, 0, & + 1, 1, 1, 1,-1, 0, & + -1,-1, 1, -1, 1, 0, & ! <111>{112} systems -1, 1, 1, 2, 1, 1, & 1, 1, 1, -2, 1, 1, &