diff --git a/python/damask/_configmaterial.py b/python/damask/_configmaterial.py index 0f8d4efa1..ed45f2662 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_) @@ -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) 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