FEM: calculix writer, move mesh data getter outside file writing
This commit is contained in:
@@ -130,6 +130,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
"writerbaseCcx --> self.file_name --> {}\n".format(self.file_name)
|
||||
)
|
||||
|
||||
self.get_mesh_data()
|
||||
self.write_file()
|
||||
|
||||
FreeCAD.Console.PrintMessage(
|
||||
@@ -144,10 +145,42 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
)
|
||||
return ""
|
||||
|
||||
def get_mesh_data(self):
|
||||
FreeCAD.Console.PrintMessage(
|
||||
"Get mesh data for "
|
||||
"node sets (groups), surface sets (groups) and element sets (groups)\n"
|
||||
)
|
||||
|
||||
# materials and element geometry element sets getter
|
||||
self.get_element_sets_material_and_femelement_geometry()
|
||||
|
||||
# constraints element sets getter
|
||||
self.get_constraints_centrif_elements()
|
||||
|
||||
# constraints node sets getter
|
||||
self.get_constraints_fixed_nodes()
|
||||
self.get_constraints_displacement_nodes()
|
||||
self.get_constraints_planerotation_nodes()
|
||||
|
||||
# constraints suface sets getter
|
||||
self.get_constraints_contact_faces()
|
||||
self.get_constraints_tie_faces()
|
||||
self.get_constraints_sectionprint_faces()
|
||||
self.get_constraints_transform_nodes()
|
||||
self.get_constraints_temperature_nodes()
|
||||
|
||||
# constraints sets with constraint data
|
||||
self.get_constraints_force_nodeloads()
|
||||
self.get_constraints_pressure_faces()
|
||||
self.get_constraints_heatflux_faces()
|
||||
|
||||
def write_file(self):
|
||||
FreeCAD.Console.PrintMessage("Start writing input file\n")
|
||||
if self.solver_obj.SplitInputWriter is True:
|
||||
FreeCAD.Console.PrintMessage("Splitted input file.\n")
|
||||
self.split_inpfile = True
|
||||
else:
|
||||
FreeCAD.Console.PrintMessage("One monster input file.\n")
|
||||
self.split_inpfile = False
|
||||
|
||||
# mesh
|
||||
@@ -286,7 +319,8 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
return
|
||||
|
||||
# get the sets
|
||||
sets_getter_method()
|
||||
if sets_getter_method is not None:
|
||||
sets_getter_method()
|
||||
|
||||
# write sets to file
|
||||
f.write("\n{}\n".format(59 * "*"))
|
||||
@@ -343,7 +377,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.fixed_objects,
|
||||
analysis_types=con_fixed.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_fixed_nodes,
|
||||
sets_getter_method=None,
|
||||
write_name=con_fixed.get_sets_name(),
|
||||
sets_writer_method=con_fixed.write_nodes,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -366,7 +400,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.displacement_objects,
|
||||
analysis_types=con_displacement.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_displacement_nodes,
|
||||
sets_getter_method=None,
|
||||
write_name=con_displacement.get_sets_name(),
|
||||
sets_writer_method=con_displacement.write_nodes,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -390,7 +424,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.planerotation_objects,
|
||||
analysis_types=con_planerotation.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_planerotation_nodes,
|
||||
sets_getter_method=None,
|
||||
write_name=con_planerotation.get_sets_name(),
|
||||
sets_writer_method=con_planerotation.write_nodes,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -413,7 +447,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.contact_objects,
|
||||
analysis_types=con_contact.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_contact_faces,
|
||||
sets_getter_method=None,
|
||||
write_name=con_contact.get_sets_name(),
|
||||
sets_writer_method=con_contact.write_surfacefaces,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -436,7 +470,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.tie_objects,
|
||||
analysis_types=con_tie.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_tie_faces,
|
||||
sets_getter_method=None,
|
||||
write_name=con_tie.get_sets_name(),
|
||||
sets_writer_method=con_tie.write_surfacefaces,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -459,7 +493,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.sectionprint_objects,
|
||||
analysis_types=con_sectionprint.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_sectionprint_faces,
|
||||
sets_getter_method=None,
|
||||
write_name=con_sectionprint.get_sets_name(),
|
||||
sets_writer_method=con_sectionprint.write_surfacefaces,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -482,7 +516,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.transform_objects,
|
||||
analysis_types=con_transform.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_transform_nodes,
|
||||
sets_getter_method=None,
|
||||
write_name=con_transform.get_sets_name(),
|
||||
sets_writer_method=con_transform.write_nodes,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -505,7 +539,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.temperature_objects,
|
||||
analysis_types=con_temperature.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_temperature_nodes,
|
||||
sets_getter_method=None,
|
||||
write_name=con_temperature.get_sets_name(),
|
||||
sets_writer_method=con_temperature.write_nodes,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -580,7 +614,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.centrif_objects,
|
||||
analysis_types=con_centrif.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_centrif_elements,
|
||||
sets_getter_method=None,
|
||||
write_name=con_centrif.get_sets_name(),
|
||||
sets_writer_method=con_centrif.write_elements,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -603,7 +637,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.force_objects,
|
||||
analysis_types=con_force.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_force_nodeloads,
|
||||
sets_getter_method=None,
|
||||
write_name=con_force.get_sets_name(),
|
||||
sets_writer_method=con_force.write_nodeloads,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -617,7 +651,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.pressure_objects,
|
||||
analysis_types=con_pressure.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_pressure_faces,
|
||||
sets_getter_method=None,
|
||||
write_name=con_pressure.get_sets_name(),
|
||||
sets_writer_method=con_pressure.write_pressure,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -630,7 +664,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f,
|
||||
femobjs=self.heatflux_objects,
|
||||
analysis_types=con_heatflux.get_analysis_types(),
|
||||
sets_getter_method=self.get_constraints_heatflux_faces,
|
||||
sets_getter_method=None,
|
||||
write_name=con_heatflux.get_sets_name(),
|
||||
sets_writer_method=con_heatflux.write_heatflux,
|
||||
caller_method_name=sys._getframe().f_code.co_name,
|
||||
@@ -1023,8 +1057,6 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
# def write_element_sets_material_and_femelement_geometry(self, f):
|
||||
def write_element_sets_material_and_femelement_type(self, f):
|
||||
|
||||
self.get_element_sets_material_and_femelement_geometry()
|
||||
|
||||
# write ccx_elsets to file
|
||||
f.write("\n***********************************************************\n")
|
||||
f.write("** Element sets for materials and FEM element type (solid, shell, beam, fluid)\n")
|
||||
|
||||
Reference in New Issue
Block a user