From 3b323eb24b9fcb08a187a06b7e3516d1a300a418 Mon Sep 17 00:00:00 2001 From: UR-0 Date: Wed, 9 Jun 2021 12:06:07 +0200 Subject: [PATCH] FEM: calculix writer, add method is density needed --- src/Mod/Fem/femsolver/calculix/writer.py | 30 ++++++++++-------------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Mod/Fem/femsolver/calculix/writer.py b/src/Mod/Fem/femsolver/calculix/writer.py index 6cda101184..4cf3a3d3c9 100644 --- a/src/Mod/Fem/femsolver/calculix/writer.py +++ b/src/Mod/Fem/femsolver/calculix/writer.py @@ -1662,17 +1662,21 @@ class FemInputWriterCcx(writerbase.FemInputWriter): ccx_elset["ccx_mat_name"] = mat_obj.Material["Name"] self.ccx_elsets.append(ccx_elset) + def is_DENSITY_card_needed(self): + if self.analysis_type == "frequency": + return True + if self.selfweight_objects: + return True + if self.analysis_type == "thermomech" and not self.solver_obj.ThermoMechSteadyState: + return True + return False + def write_materials(self, f): f.write("\n***********************************************************\n") f.write("** Materials\n") f.write("** written by {} function\n".format(sys._getframe().f_code.co_name)) f.write("** Young\'s modulus unit is MPa = N/mm2\n") - if self.analysis_type == "frequency" \ - or self.selfweight_objects \ - or ( - self.analysis_type == "thermomech" - and not self.solver_obj.ThermoMechSteadyState - ): + if self.is_DENSITY_card_needed() is True: f.write("** Density\'s unit is t/mm^3\n") if self.analysis_type == "thermomech": f.write("** Thermal conductivity unit is kW/mm/K = t*mm/K*s^3\n") @@ -1688,12 +1692,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter): YM = FreeCAD.Units.Quantity(mat_obj.Material["YoungsModulus"]) YM_in_MPa = float(YM.getValueAs("MPa")) PR = float(mat_obj.Material["PoissonRatio"]) - if self.analysis_type == "frequency" \ - or self.selfweight_objects \ - or ( - self.analysis_type == "thermomech" - and not self.solver_obj.ThermoMechSteadyState - ): + if self.is_DENSITY_card_needed() is True: density = FreeCAD.Units.Quantity(mat_obj.Material["Density"]) density_in_tonne_per_mm3 = float(density.getValueAs("t/mm^3")) if self.analysis_type == "thermomech": @@ -1718,12 +1717,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter): f.write("*ELASTIC\n") f.write("{0:.0f}, {1:.3f}\n".format(YM_in_MPa, PR)) - if self.analysis_type == "frequency" \ - or self.selfweight_objects \ - or ( - self.analysis_type == "thermomech" - and not self.solver_obj.ThermoMechSteadyState - ): + if self.is_DENSITY_card_needed() is True: f.write("*DENSITY\n") f.write("{0:.3e}\n".format(density_in_tonne_per_mm3)) if self.analysis_type == "thermomech":