Skip to content

Commit

Permalink
FEM: ccx writer, splitted file writting, only write object headers if…
Browse files Browse the repository at this point in the history
… there are objects
  • Loading branch information
berndhahnebach committed Apr 22, 2020
1 parent 81be62c commit 89928ef
Showing 1 changed file with 40 additions and 40 deletions.
80 changes: 40 additions & 40 deletions src/Mod/Fem/femsolver/calculix/writer.py
Expand Up @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -271,35 +272,34 @@ 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)
inpfilePressure.close()

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)

Expand Down

0 comments on commit 89928ef

Please sign in to comment.