From a151b9dc768c96d6021cdaef01ce78d277faabc2 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 15 Mar 2019 21:06:21 +0100 Subject: [PATCH] FEM: inout result reader, fill res obj stress and strain components with data --- src/Mod/Fem/feminout/importToolsFem.py | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/Mod/Fem/feminout/importToolsFem.py b/src/Mod/Fem/feminout/importToolsFem.py index 56269de301..fab9cc3f3a 100644 --- a/src/Mod/Fem/feminout/importToolsFem.py +++ b/src/Mod/Fem/feminout/importToolsFem.py @@ -242,6 +242,54 @@ def fill_femresult_mechanical(res_obj, result_set): res_obj.DisplacementVectors = list(map((lambda x: x * scale), disp.values())) res_obj.NodeNumbers = list(disp.keys()) + # fill res_obj.NodeStressXX etc if they exist in result_set + # list values are just added + # Should we gone check if the key in stress and strain dict is the same as the number in NodeNumbers? + if 'stress' in result_set: + stress = result_set['stress'] + Sxx = [] + Syy = [] + Szz = [] + Sxy = [] + Sxz = [] + Syz = [] + for i, values_S in enumerate(stress.values()): # values_S .. stresstuple .. (Sxx, Syy, Szz, Sxy, Sxz, Syz) + Sxx.append(values_S[0]) + Syy.append(values_S[1]) + Szz.append(values_S[2]) + Sxy.append(values_S[3]) + Sxz.append(values_S[4]) + Syz.append(values_S[5]) + res_obj.NodeStressXX = Sxx + res_obj.NodeStressYY = Syy + res_obj.NodeStressZZ = Szz + res_obj.NodeStressXY = Sxy + res_obj.NodeStressXZ = Sxz + res_obj.NodeStressYZ = Syz + + # fill res_obj.NodeStrainXX etc if they exist in result_set + if 'strain' in result_set: + strain = result_set['strain'] + Exx = [] + Eyy = [] + Ezz = [] + Exy = [] + Exz = [] + Eyz = [] + for i, values_E in enumerate(strain.values()): # values_E .. straintuple .. (Exx, Eyy, Ezz, Exy, Exz, Eyz) + Exx.append(values_E[0]) + Eyy.append(values_E[1]) + Ezz.append(values_E[2]) + Exy.append(values_E[3]) + Exz.append(values_E[4]) + Eyz.append(values_E[5]) + res_obj.NodeStrainXX = Exx + res_obj.NodeStrainYY = Eyy + res_obj.NodeStrainZZ = Ezz + res_obj.NodeStrainXY = Exy + res_obj.NodeStrainXZ = Exz + res_obj.NodeStrainYZ = Eyz + # fill res_obj.StressVectors if they exist if 'stress' in result_set: stress = result_set['stress']