From aa215ff81e9d4631e8e7e1515f553706a55114b5 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 24 Jul 2021 18:56:25 +0200 Subject: [PATCH] generalization, now used for F_i --- python/damask/_configmaterial.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/damask/_configmaterial.py b/python/damask/_configmaterial.py index 375d3e2ce..be5d4c3eb 100644 --- a/python/damask/_configmaterial.py +++ b/python/damask/_configmaterial.py @@ -440,9 +440,10 @@ class ConfigMaterial(Config): """ N,n,shaped = 1,1,{} + dim_map = {'O':-1,'F_i':-2} for k,v in kwargs.items(): shaped[k] = np.array(v) - s = shaped[k].shape[:-1] if k=='O' else shaped[k].shape + s = shaped[k].shape[:dim_map.get(k,None)] N = max(N,s[0]) if len(s)>0 else N n = max(n,s[1]) if len(s)>1 else n @@ -451,8 +452,9 @@ class ConfigMaterial(Config): if 'v' not in kwargs: shaped['v'] = np.broadcast_to(1/n,(N,n)) + shape_map = {'O':(N,n,4),'F_i':(N,n,3,3)} for k,v in shaped.items(): - target = (N,n,4) if k=='O' else (N,n) + target = shape_map.get(k,(N,n)) obj = np.broadcast_to(v.reshape(util.shapeshifter(v.shape,target,mode='right')),target) for i in range(N): if k in ['phase','O','v']: