diff --git a/src/Mod/Fem/femsolver/calculix/writer.py b/src/Mod/Fem/femsolver/calculix/writer.py index d4eb11620af4..2333f3d79d82 100644 --- a/src/Mod/Fem/femsolver/calculix/writer.py +++ b/src/Mod/Fem/femsolver/calculix/writer.py @@ -177,9 +177,8 @@ def write_calculix_splitted_input_file(self): # mesh inpfileMain = open(self.file_name, "w", encoding="utf-8") - inpfileMain.write("\n\n") - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("**Nodes and Elements\n") + inpfileMain.write("***********************************************************\n") + inpfileMain.write("** Nodes and Elements\n") inpfileMain.write("** written by femmesh.writeABAQUS\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Elem_sets.inp \n") self.femmesh.writeABAQUS(name + "_Node_Elem_sets.inp", 1, False) @@ -195,55 +194,57 @@ def write_calculix_splitted_input_file(self): self.write_element_sets_material_and_femelement_type(inpfileMain) # node sets and surface sets - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("**Node sets for constraints\n") - inpfileMain.write("** written by write_node_sets_constraints_fixed\n") - inpfileMain.write("** written by write_node_sets_constraints_displacement\n") - inpfileMain.write("** written by write_node_sets_constraints_planerotation\n") if self.fixed_objects or self.displacement_objects or self.planerotation_objects: - inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_sets.inp \n") + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Node sets for constraints\n") inpfileNodes = open(name + "_Node_sets.inp", "w") - self.write_node_sets_constraints_fixed(inpfileNodes) - self.write_node_sets_constraints_displacement(inpfileNodes) - self.write_node_sets_constraints_planerotation(inpfileNodes) + if self.fixed_objects: + inpfileMain.write("** written by write_node_sets_constraints_fixed\n") + self.write_node_sets_constraints_fixed(inpfileNodes) + if self.displacement_objects: + inpfileMain.write("** written by write_node_sets_constraints_displacement\n") + self.write_node_sets_constraints_displacement(inpfileNodes) + if self.planerotation_objects: + inpfileMain.write("** written by write_node_sets_constraints_planerotation\n") + self.write_node_sets_constraints_planerotation(inpfileNodes) + inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_sets.inp \n") inpfileNodes.close() - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("** Surfaces for contact constraint\n") - inpfileMain.write("** written by write_surfaces_constraints_contact\n") if self.contact_objects: + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Surfaces for contact constraint\n") + inpfileMain.write("** written by write_surfaces_constraints_contact\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Surface_Contact.inp \n") inpfileContact = open(name + "_Surface_Contact.inp", "w") self.write_surfaces_constraints_contact(inpfileContact) inpfileContact.close() - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("** Surfaces for tie constraint\n") - inpfileMain.write("** written by write_surfaces_constraints_tie\n") if self.tie_objects: + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Surfaces for tie constraint\n") + inpfileMain.write("** written by write_surfaces_constraints_tie\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Surface_Tie.inp \n") inpfileTie = open(name + "_Surface_Tie.inp", "w") self.write_surfaces_constraints_tie(inpfileTie) inpfileTie.close() - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("** Node sets for transform constraint\n") - inpfileMain.write("** written by write_node_sets_constraints_transform\n") if self.transform_objects: + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Node sets for transform constraint\n") + inpfileMain.write("** written by write_node_sets_constraints_transform\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Transform.inp \n") inpfileTransform = open(name + "_Node_Transform.inp", "w") self.write_node_sets_constraints_transform(inpfileTransform) inpfileTransform.close() - if self.analysis_type == "thermomech": + if self.analysis_type == "thermomech" and self.temperature_objects: inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("**Node sets for temperature constraint\n") + inpfileMain.write("** Node sets for temperature constraint\n") inpfileMain.write("** written by write_node_sets_constraints_temperature\n") - if self.temperature_objects: - inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Temp.inp \n") - inpfileNodeTemp = open(name + "_Node_Temp.inp", "w") - self.write_node_sets_constraints_temperature(inpfileNodeTemp) - inpfileNodeTemp.close() + inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Temp.inp \n") + inpfileNodeTemp = open(name + "_Node_Temp.inp", "w") + self.write_node_sets_constraints_temperature(inpfileNodeTemp) + inpfileNodeTemp.close() # materials and fem element types self.write_materials(inpfileMain) @@ -271,19 +272,19 @@ def write_calculix_splitted_input_file(self): self.write_constraints_displacement(inpfileMain) self.write_constraints_selfweight(inpfileMain) - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("** Node loads\n") - inpfileMain.write("** written by write_constraints_force\n") if self.force_objects: + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Node loads\n") + inpfileMain.write("** written by write_constraints_force\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Force.inp \n") inpfileForce = open(name + "_Node_Force.inp", "w") self.write_constraints_force(inpfileForce) inpfileForce.close() - inpfileMain.write("\n***********************************************************\n") - inpfileMain.write("** Element + CalculiX face + load in [MPa]\n") - inpfileMain.write("** written by write_constraints_pressure\n") if self.pressure_objects: + inpfileMain.write("\n***********************************************************\n") + inpfileMain.write("** Element + CalculiX face + load in [MPa]\n") + inpfileMain.write("** written by write_constraints_pressure\n") inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Pressure.inp \n") inpfilePressure = open(name + "_Pressure.inp", "w") self.write_constraints_pressure(inpfilePressure) @@ -291,15 +292,14 @@ def write_calculix_splitted_input_file(self): self.write_constraints_temperature(inpfileMain) - if self.analysis_type == "thermomech": + if self.analysis_type == "thermomech" and self.heatflux_objects: inpfileMain.write("\n***********************************************************\n") inpfileMain.write("** Convective heat transfer (heat flux)\n") inpfileMain.write("** written by write_constraints_heatflux\n") - if self.heatflux_objects: - inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Heatlfux.inp \n") - inpfileHeatflux = open(name + "_Node_Heatlfux.inp", "w") - self.write_constraints_heatflux(inpfileHeatflux) - inpfileHeatflux.close() + inpfileMain.write("*INCLUDE,INPUT=" + include_name + "_Node_Heatlfux.inp \n") + inpfileHeatflux = open(name + "_Node_Heatlfux.inp", "w") + self.write_constraints_heatflux(inpfileHeatflux) + inpfileHeatflux.close() self.write_constraints_fluidsection(inpfileMain)