From c29e3650f384a4944786562a077e855012a666bc Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 30 Oct 2020 22:24:27 +0100 Subject: [PATCH 1/3] don't squeeze into scalar --- python/damask/_configmaterial.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/damask/_configmaterial.py b/python/damask/_configmaterial.py index 0f8d4efa1..febeca64c 100644 --- a/python/damask/_configmaterial.py +++ b/python/damask/_configmaterial.py @@ -69,8 +69,8 @@ class ConfigMaterial(Config): _,idx = np.unique(np.hstack(list({**constituents_,**kwargs_}.values())),return_index=True,axis=0) idx = np.sort(idx) - constituents_ = {k:v[idx].squeeze() for k,v in constituents_.items()} - kwargs_ = {k:v[idx].squeeze() for k,v in kwargs_.items()} + constituents_ = {k:np.atleast_1d(v[idx].squeeze()) for k,v in constituents_.items()} + kwargs_ = {k:np.atleast_1d(v[idx].squeeze()) for k,v in kwargs_.items()} return ConfigMaterial().material_add(constituents_,**kwargs_) From aecf2f539e6c941c2c380b7eac3276102879059d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 30 Oct 2020 22:26:02 +0100 Subject: [PATCH 2/3] allow one homogenization quite useless ... --- python/damask/_configmaterial.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/damask/_configmaterial.py b/python/damask/_configmaterial.py index febeca64c..ed45f2662 100644 --- a/python/damask/_configmaterial.py +++ b/python/damask/_configmaterial.py @@ -268,6 +268,7 @@ class ConfigMaterial(Config): @staticmethod def _constituents(N=1,**kwargs): """Construct list of constituents.""" + N_material=1 for v in kwargs.values(): if hasattr(v,'__len__') and not isinstance(v,str): N_material = len(v) From cf740a279e811dab52b27e3e746d2e8aeb39af9b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 31 Oct 2020 09:56:43 +0100 Subject: [PATCH 3/3] combine constant with varying data --- python/tests/test_ConfigMaterial.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/python/tests/test_ConfigMaterial.py b/python/tests/test_ConfigMaterial.py index d0bcd2a56..0f2b6a90c 100644 --- a/python/tests/test_ConfigMaterial.py +++ b/python/tests/test_ConfigMaterial.py @@ -87,3 +87,7 @@ class TestConfigMaterial: c = m['constituents'][0] assert m['c'] == 1 and c['b'] == 0 and c['a'] == [i,1] + def test__constituents(self): + c = ConfigMaterial._constituents(c=1,v=[2,3]) + assert c[0][0]['c'] == c[1][0]['c'] == 1 + assert c[0][0]['v'] == c[1][0]['v'] -1 ==2