diff --git a/src/Mod/Fem/importToolsFem.py b/src/Mod/Fem/importToolsFem.py index ae7b3028955f..a85d0312be77 100644 --- a/src/Mod/Fem/importToolsFem.py +++ b/src/Mod/Fem/importToolsFem.py @@ -145,13 +145,8 @@ def fill_femresult_mechanical(results, result_set, span): scale = 1.0 results.DisplacementVectors = list(map((lambda x: x * scale), disp.values())) - results.NodeNumbers = disp.keys() - - disp_abs = [] - for d in displacement: - disp_abs.append(sqrt(pow(d[0], 2) + pow(d[1], 2) + pow(d[2], 2))) - results.DisplacementLengths = disp_abs + results.DisplacementLengths = calculate_disp_abs(displacement) if 'stressv' in result_set: stressv = result_set['stressv'] @@ -248,9 +243,9 @@ def fill_femresult_mechanical(results, result_set, span): x_min, y_min, z_min = map(min, zip(*displacement)) sum_list = map(sum, zip(*displacement)) x_avg, y_avg, z_avg = [i / no_of_values for i in sum_list] - a_max = max(disp_abs) - a_min = min(disp_abs) - a_avg = sum(disp_abs) / no_of_values + a_max = max(results.DisplacementLengths) + a_min = min(results.DisplacementLengths) + a_avg = sum(results.DisplacementLengths) / no_of_values if results.StressValues: s_max = max(results.StressValues) s_min = min(results.StressValues) @@ -317,3 +312,10 @@ def calculate_principal_stress(i): eigvals.reverse() maxshear = (eigvals[0] - eigvals[2]) / 2.0 return (eigvals[0], eigvals[1], eigvals[2], maxshear) + + +def calculate_disp_abs(displacements): + disp_abs = [] + for d in displacements: + disp_abs.append(sqrt(pow(d[0], 2) + pow(d[1], 2) + pow(d[2], 2))) + return disp_abs diff --git a/src/Mod/Fem/importVTKResults.py b/src/Mod/Fem/importVTKResults.py index 4952403145cc..c3e45ca25e80 100644 --- a/src/Mod/Fem/importVTKResults.py +++ b/src/Mod/Fem/importVTKResults.py @@ -92,7 +92,8 @@ def importVTK(filename, analysis=None, result_name_prefix=None): # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: - result_obj.DisplacementLengths = calculate_disp_abs(result_obj.DisplacementVectors) + import importToolsFem + result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) analysis_object.Member = analysis_object.Member + [result_obj] # FIXME move the ResultMesh in the analysis @@ -106,12 +107,3 @@ def importVTK(filename, analysis=None, result_name_prefix=None): time_step = 0.0 # Stats has been setup in C++ function FemVTKTools importCfdResult() ''' - - -# helper -def calculate_disp_abs(displacements): - from math import sqrt - disp_abs = [] - for d in displacements: - disp_abs.append(sqrt(pow(d[0], 2) + pow(d[1], 2) + pow(d[2], 2))) - return disp_abs