diff --git a/src/Mod/Fem/femsolver/calculix/con_centrif.py b/src/Mod/Fem/femsolver/calculix/con_centrif.py index 9e9eff93f2..b02e5f5862 100644 --- a/src/Mod/Fem/femsolver/calculix/con_centrif.py +++ b/src/Mod/Fem/femsolver/calculix/con_centrif.py @@ -32,7 +32,19 @@ import six import FreeCAD -def write_element_sets_elements_constraints_centrif(f, femobj, centrif_obj, ccxwriter): +def get_analysis_types(): + return ["buckling", "static", "thermomech"] + + +def get_sets_name(): + return "constraints_centrif_element_sets" + + +def get_constraint_title(): + return "Centrif Constraints" + + +def write_elements(f, femobj, centrif_obj, ccxwriter): f.write("*ELSET,ELSET={}\n".format(centrif_obj.Name)) # use six to be sure to be Python 2.7 and 3.x compatible if isinstance(femobj["FEMElements"], six.string_types): @@ -42,7 +54,7 @@ def write_element_sets_elements_constraints_centrif(f, femobj, centrif_obj, ccxw f.write("{},\n".format(e)) -def constraint_centrif_writer(f, femobj, centrif_obj, ccxwriter): +def write_constraint(f, femobj, centrif_obj, ccxwriter): # get some data from the centrif_obj refobj = centrif_obj.RotationAxis[0][0] diff --git a/src/Mod/Fem/femsolver/calculix/con_contact.py b/src/Mod/Fem/femsolver/calculix/con_contact.py index 45d5030295..344bb7069a 100644 --- a/src/Mod/Fem/femsolver/calculix/con_contact.py +++ b/src/Mod/Fem/femsolver/calculix/con_contact.py @@ -26,7 +26,19 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_surfacefaces_constraints_contact(f, femobj, contact_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_contact_surface_sets" + + +def get_constraint_title(): + return "Contact Constraints" + + +def write_surfacefaces(f, femobj, contact_obj, ccxwriter): # slave DEP f.write("*SURFACE, NAME=DEP{}\n".format(contact_obj.Name)) for i in femobj["ContactSlaveFaces"]: @@ -37,7 +49,7 @@ def write_surfacefaces_constraints_contact(f, femobj, contact_obj, ccxwriter): f.write("{},S{}\n".format(i[0], i[1])) -def constraint_contact_writer(f, femobj, contact_obj, ccxwriter): +def write_constraint(f, femobj, contact_obj, ccxwriter): f.write( "*CONTACT PAIR, INTERACTION=INT{},TYPE=SURFACE TO SURFACE\n" .format(contact_obj.Name) diff --git a/src/Mod/Fem/femsolver/calculix/con_displacement.py b/src/Mod/Fem/femsolver/calculix/con_displacement.py index f5f07972c6..3469f1ef91 100644 --- a/src/Mod/Fem/femsolver/calculix/con_displacement.py +++ b/src/Mod/Fem/femsolver/calculix/con_displacement.py @@ -26,13 +26,25 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_node_sets_nodes_constraints_displacement(f, femobj, disp_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_displacement_node_sets" + + +def get_constraint_title(): + return "Displacement constraint applied" + + +def write_nodes(f, femobj, disp_obj, ccxwriter): f.write("*NSET,NSET={}\n".format(disp_obj.Name)) for n in femobj["Nodes"]: f.write("{},\n".format(n)) -def constraint_displacement_writer(f, femobj, disp_obj, ccxwriter): +def write_constraint(f, femobj, disp_obj, ccxwriter): f.write("*BOUNDARY\n") if disp_obj.xFix: f.write("{},1\n".format(disp_obj.Name)) diff --git a/src/Mod/Fem/femsolver/calculix/con_fixed.py b/src/Mod/Fem/femsolver/calculix/con_fixed.py index 609eddaae2..f5d173f4ae 100644 --- a/src/Mod/Fem/femsolver/calculix/con_fixed.py +++ b/src/Mod/Fem/femsolver/calculix/con_fixed.py @@ -26,7 +26,19 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_node_sets_nodes_constraints_fixed(f, femobj, fix_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_fixed_node_sets" + + +def get_constraint_title(): + return "Fixed Constraints" + + +def write_nodes(f, femobj, fix_obj, ccxwriter): if ( ccxwriter.femmesh.Volumes and (len(ccxwriter.shellthickness_objects) > 0 or len(ccxwriter.beamsection_objects) > 0) @@ -45,7 +57,7 @@ def write_node_sets_nodes_constraints_fixed(f, femobj, fix_obj, ccxwriter): f.write("{},\n".format(n)) -def constraint_fixed_writer(f, femobj, fix_obj, ccxwriter): +def write_constraint(f, femobj, fix_obj, ccxwriter): if ( ccxwriter.femmesh.Volumes and (len(ccxwriter.shellthickness_objects) > 0 or len(ccxwriter.beamsection_objects) > 0) diff --git a/src/Mod/Fem/femsolver/calculix/con_force.py b/src/Mod/Fem/femsolver/calculix/con_force.py index 23a7cabc57..01d7945ca9 100644 --- a/src/Mod/Fem/femsolver/calculix/con_force.py +++ b/src/Mod/Fem/femsolver/calculix/con_force.py @@ -26,7 +26,15 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_nodeloads_constraints_force(f, femobj, force_obj, ccxwriter): +def get_analysis_types(): + return ["buckling", "static", "thermomech"] + + +def get_sets_name(): + return "constraints_force_node_loads" + + +def write_nodeloads(f, femobj, force_obj, ccxwriter): direction_vec = femobj["Object"].DirectionVector for ref_shape in femobj["NodeLoadTable"]: f.write("** " + ref_shape[0] + "\n") diff --git a/src/Mod/Fem/femsolver/calculix/con_heatflux.py b/src/Mod/Fem/femsolver/calculix/con_heatflux.py index 20699ba4d4..3ed841c315 100644 --- a/src/Mod/Fem/femsolver/calculix/con_heatflux.py +++ b/src/Mod/Fem/femsolver/calculix/con_heatflux.py @@ -26,7 +26,15 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_faceheatflux_constraints_heatflux(f, femobj, heatflux_obj, ccxwriter): +def get_analysis_types(): + return ["thermomech"] + + +def get_sets_name(): + return "constraints_heatflux_element_face_heatflux" + + +def write_heatflux(f, femobj, heatflux_obj, ccxwriter): if heatflux_obj.ConstraintType == "Convection": heatflux_key_word = "FILM" heatflux_facetype = "F" diff --git a/src/Mod/Fem/femsolver/calculix/con_planerotation.py b/src/Mod/Fem/femsolver/calculix/con_planerotation.py index f55b33b9dc..cd75d3cb22 100644 --- a/src/Mod/Fem/femsolver/calculix/con_planerotation.py +++ b/src/Mod/Fem/femsolver/calculix/con_planerotation.py @@ -29,7 +29,19 @@ __url__ = "https://www.freecadweb.org" from femmesh import meshtools -def write_node_sets_nodes_constraints_planerotation(f, femobj, fric_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_planerotation_node_sets" + + +def get_constraint_title(): + return "PlaneRotation Constraints" + + +def write_nodes(f, femobj, fric_obj, ccxwriter): # write nodes to file if not ccxwriter.femnodes_mesh: ccxwriter.femnodes_mesh = ccxwriter.femmesh.Nodes @@ -68,6 +80,6 @@ def write_node_sets_nodes_constraints_planerotation(f, femobj, fric_obj, ccxwrit f.write("{},\n".format(MPC_nodes[i])) -def constraint_planerotation_writer(f, femobj, fric_obj, ccxwriter): +def write_constraint(f, femobj, fric_obj, ccxwriter): f.write("*MPC\n") f.write("PLANE,{}\n".format(fric_obj.Name)) diff --git a/src/Mod/Fem/femsolver/calculix/con_pressure.py b/src/Mod/Fem/femsolver/calculix/con_pressure.py index 7ceafce246..4814c997f4 100644 --- a/src/Mod/Fem/femsolver/calculix/con_pressure.py +++ b/src/Mod/Fem/femsolver/calculix/con_pressure.py @@ -26,7 +26,15 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_faceloads_constraints_pressure(f, femobj, prs_obj, ccxwriter): +def get_analysis_types(): + return ["buckling", "static", "thermomech"] + + +def get_sets_name(): + return "constraints_pressure_element_face_loads" + + +def write_pressure(f, femobj, prs_obj, ccxwriter): rev = -1 if prs_obj.Reversed else 1 f.write("*DLOAD\n") for ref_shape in femobj["PressureFaces"]: diff --git a/src/Mod/Fem/femsolver/calculix/con_sectionprint.py b/src/Mod/Fem/femsolver/calculix/con_sectionprint.py index 2a67a8bcb2..e9bb2208cf 100644 --- a/src/Mod/Fem/femsolver/calculix/con_sectionprint.py +++ b/src/Mod/Fem/femsolver/calculix/con_sectionprint.py @@ -26,13 +26,25 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_surfacefaces_constraints_sectionprint(f, femobj, sectionprint_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_sectionprint_surface_sets" + + +def get_constraint_title(): + return "SectionPrint Constraints" + + +def write_surfacefaces(f, femobj, sectionprint_obj, ccxwriter): f.write("*SURFACE, NAME=SECTIONFACE{}\n".format(sectionprint_obj.Name)) for i in femobj["SectionPrintFaces"]: f.write("{},S{}\n".format(i[0], i[1])) -def constraint_sectionprint_writer(f, femobj, sectionprint_obj, ccxwriter): +def write_constraint(f, femobj, sectionprint_obj, ccxwriter): f.write( "*SECTION PRINT, SURFACE=SECTIONFACE{}, NAME=SECTIONPRINT{}\n" .format(sectionprint_obj.Name, sectionprint_obj.Name) diff --git a/src/Mod/Fem/femsolver/calculix/con_temperature.py b/src/Mod/Fem/femsolver/calculix/con_temperature.py index c985deeccd..4904040055 100644 --- a/src/Mod/Fem/femsolver/calculix/con_temperature.py +++ b/src/Mod/Fem/femsolver/calculix/con_temperature.py @@ -26,13 +26,25 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_node_sets_nodes_constraints_temperature(f, femobj, temp_obj, ccxwriter): +def get_analysis_types(): + return ["thermomech"] + + +def get_sets_name(): + return "constraints temperature node sets" + + +def get_constraint_title(): + return "Fixed temperature constraint applied" + + +def write_nodes(f, femobj, temp_obj, ccxwriter): f.write("*NSET,NSET={}\n".format(temp_obj.Name)) for n in femobj["Nodes"]: f.write("{},\n".format(n)) -def constraint_temperature_writer(f, femobj, temp_obj, ccxwriter): +def write_constraint(f, femobj, temp_obj, ccxwriter): NumberOfNodes = len(femobj["Nodes"]) if temp_obj.ConstraintType == "Temperature": f.write("*BOUNDARY\n") diff --git a/src/Mod/Fem/femsolver/calculix/con_tie.py b/src/Mod/Fem/femsolver/calculix/con_tie.py index 07c4ffe97b..927bcf2de1 100644 --- a/src/Mod/Fem/femsolver/calculix/con_tie.py +++ b/src/Mod/Fem/femsolver/calculix/con_tie.py @@ -26,7 +26,19 @@ __author__ = "Bernd Hahnebach" __url__ = "https://www.freecadweb.org" -def write_surfacefaces_constraints_tie(f, femobj, tie_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_tie_surface_sets" + + +def get_constraint_title(): + return "Tie Constraints" + + +def write_surfacefaces(f, femobj, tie_obj, ccxwriter): # slave DEP f.write("*SURFACE, NAME=TIE_DEP{}\n".format(tie_obj.Name)) for i in femobj["TieSlaveFaces"]: @@ -37,7 +49,7 @@ def write_surfacefaces_constraints_tie(f, femobj, tie_obj, ccxwriter): f.write("{},S{}\n".format(i[0], i[1])) -def constraint_tie_writer(f, femobj, tie_obj, ccxwriter): +def write_constraint(f, femobj, tie_obj, ccxwriter): tolerance = str(tie_obj.Tolerance.getValueAs("mm")).rstrip() f.write( "*TIE, POSITION TOLERANCE={}, ADJUST=NO, NAME=TIE{}\n" diff --git a/src/Mod/Fem/femsolver/calculix/con_transform.py b/src/Mod/Fem/femsolver/calculix/con_transform.py index 8fb348fffb..b8f23823c2 100644 --- a/src/Mod/Fem/femsolver/calculix/con_transform.py +++ b/src/Mod/Fem/femsolver/calculix/con_transform.py @@ -29,7 +29,19 @@ __url__ = "https://www.freecadweb.org" from femtools import geomtools -def write_node_sets_nodes_constraints_transform(f, femobj, trans_obj, ccxwriter): +def get_analysis_types(): + return "all" # write for all analysis types + + +def get_sets_name(): + return "constraints_transform_node_sets" + + +def get_constraint_title(): + return "Transform Constraints" + + +def write_nodes(f, femobj, trans_obj, ccxwriter): if trans_obj.TransformType == "Rectangular": f.write("*NSET,NSET=Rect{}\n".format(trans_obj.Name)) elif trans_obj.TransformType == "Cylindrical": @@ -38,7 +50,7 @@ def write_node_sets_nodes_constraints_transform(f, femobj, trans_obj, ccxwriter) f.write("{},\n".format(n)) -def constraint_transform_writer(f, femobj, trans_obj, ccxwriter): +def write_constraint(f, femobj, trans_obj, ccxwriter): trans_name = "" trans_type = "" if trans_obj.TransformType == "Rectangular": diff --git a/src/Mod/Fem/femsolver/calculix/writer.py b/src/Mod/Fem/femsolver/calculix/writer.py index 9e00868761..ae9958f454 100644 --- a/src/Mod/Fem/femsolver/calculix/writer.py +++ b/src/Mod/Fem/femsolver/calculix/writer.py @@ -40,6 +40,18 @@ from os.path import join import FreeCAD from FreeCAD import Units +from . import con_centrif +from . import con_contact +from . import con_displacement +from . import con_fixed +from . import con_force +from . import con_heatflux +from . import con_planerotation +from . import con_pressure +from . import con_sectionprint +from . import con_temperature +from . import con_tie +from . import con_transform from .. import writerbase from femmesh import meshtools from femtools import constants @@ -327,50 +339,46 @@ class FemInputWriterCcx(writerbase.FemInputWriter): # ******************************************************************************************** # constraints fixed def write_node_sets_constraints_fixed(self, f): - from .con_fixed import write_node_sets_nodes_constraints_fixed self.write_constraints_sets( f, femobjs=self.fixed_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_fixed.get_analysis_types(), sets_getter_method=self.get_constraints_fixed_nodes, - write_name="constraints_fixed_node_sets", - sets_writer_method=write_node_sets_nodes_constraints_fixed, + write_name=con_fixed.get_sets_name(), + sets_writer_method=con_fixed.write_nodes, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_fixed(self, f): - from .con_fixed import constraint_fixed_writer self.write_constraints_data( f, femobjs=self.fixed_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Fixed Constraints", - constraint_writer_method=constraint_fixed_writer, + analysis_types=con_fixed.get_analysis_types(), + constraint_title_name=con_fixed.get_constraint_title(), + constraint_writer_method=con_fixed.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints displacement def write_node_sets_constraints_displacement(self, f): - from .con_displacement import write_node_sets_nodes_constraints_displacement self.write_constraints_sets( f, femobjs=self.displacement_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_displacement.get_analysis_types(), sets_getter_method=self.get_constraints_displacement_nodes, - write_name="constraints_displacement_node_sets", - sets_writer_method=write_node_sets_nodes_constraints_displacement, + write_name=con_displacement.get_sets_name(), + sets_writer_method=con_displacement.write_nodes, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_displacement(self, f): - from .con_displacement import constraint_displacement_writer self.write_constraints_data( f, femobjs=self.displacement_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Displacement constraint applied", - constraint_writer_method=constraint_displacement_writer, + analysis_types=con_displacement.get_analysis_types(), + constraint_title_name=con_displacement.get_constraint_title(), + constraint_writer_method=con_displacement.write_constraint, caller_method_name=sys._getframe().f_code.co_name, write_after="\n", ) @@ -378,150 +386,138 @@ class FemInputWriterCcx(writerbase.FemInputWriter): # ******************************************************************************************** # constraints planerotation def write_node_sets_constraints_planerotation(self, f): - from .con_planerotation import write_node_sets_nodes_constraints_planerotation self.write_constraints_sets( f, femobjs=self.planerotation_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_planerotation.get_analysis_types(), sets_getter_method=self.get_constraints_planerotation_nodes, - write_name="constraints_planerotation_node_sets", - sets_writer_method=write_node_sets_nodes_constraints_planerotation, + write_name=con_planerotation.get_sets_name(), + sets_writer_method=con_planerotation.write_nodes, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_planerotation(self, f): - from .con_planerotation import constraint_planerotation_writer self.write_constraints_data( f, femobjs=self.planerotation_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="PlaneRotation Constraints", - constraint_writer_method=constraint_planerotation_writer, + analysis_types=con_planerotation.get_analysis_types(), + constraint_title_name=con_planerotation.get_constraint_title(), + constraint_writer_method=con_planerotation.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints contact def write_surfaces_constraints_contact(self, f): - from .con_contact import write_surfacefaces_constraints_contact self.write_constraints_sets( f, femobjs=self.contact_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_contact.get_analysis_types(), sets_getter_method=self.get_constraints_contact_faces, - write_name="constraints_contact_surface_sets", - sets_writer_method=write_surfacefaces_constraints_contact, + write_name=con_contact.get_sets_name(), + sets_writer_method=con_contact.write_surfacefaces, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_contact(self, f): - from .con_contact import constraint_contact_writer self.write_constraints_data( f, femobjs=self.contact_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Contact Constraints", - constraint_writer_method=constraint_contact_writer, + analysis_types=con_contact.get_analysis_types(), + constraint_title_name=con_contact.get_constraint_title(), + constraint_writer_method=con_contact.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints tie def write_surfaces_constraints_tie(self, f): - from .con_tie import write_surfacefaces_constraints_tie self.write_constraints_sets( f, femobjs=self.tie_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_tie.get_analysis_types(), sets_getter_method=self.get_constraints_tie_faces, - write_name="constraints_tie_surface_sets", - sets_writer_method=write_surfacefaces_constraints_tie, + write_name=con_tie.get_sets_name(), + sets_writer_method=con_tie.write_surfacefaces, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_tie(self, f): - from .con_tie import constraint_tie_writer self.write_constraints_data( f, femobjs=self.tie_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Tie Constraints", - constraint_writer_method=constraint_tie_writer, + analysis_types=con_tie.get_analysis_types(), + constraint_title_name=con_tie.get_constraint_title(), + constraint_writer_method=con_tie.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints sectionprint def write_surfaces_constraints_sectionprint(self, f): - from .con_sectionprint import write_surfacefaces_constraints_sectionprint self.write_constraints_sets( f, femobjs=self.sectionprint_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_sectionprint.get_analysis_types(), sets_getter_method=self.get_constraints_sectionprint_faces, - write_name="constraints_sectionprint_surface_sets", - sets_writer_method=write_surfacefaces_constraints_sectionprint, + write_name=con_sectionprint.get_sets_name(), + sets_writer_method=con_sectionprint.write_surfacefaces, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_sectionprint(self, f): - from .con_sectionprint import constraint_sectionprint_writer self.write_constraints_data( f, femobjs=self.sectionprint_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="SectionPrint Constraints", - constraint_writer_method=constraint_sectionprint_writer, + analysis_types=con_sectionprint.get_analysis_types(), + constraint_title_name=con_sectionprint.get_constraint_title(), + constraint_writer_method=con_sectionprint.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints transform def write_node_sets_constraints_transform(self, f): - from .con_transform import write_node_sets_nodes_constraints_transform self.write_constraints_sets( f, femobjs=self.transform_objects, - analysis_types="all", # write for all analysis types + analysis_types=con_transform.get_analysis_types(), sets_getter_method=self.get_constraints_transform_nodes, - write_name="constraints_transform_node_sets", - sets_writer_method=write_node_sets_nodes_constraints_transform, + write_name=con_transform.get_sets_name(), + sets_writer_method=con_transform.write_nodes, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_transform(self, f): - from .con_transform import constraint_transform_writer self.write_constraints_data( f, femobjs=self.transform_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Transform Constraints", - constraint_writer_method=constraint_transform_writer, + analysis_types=con_transform.get_analysis_types(), + constraint_title_name=con_transform.get_constraint_title(), + constraint_writer_method=con_transform.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints temperature def write_node_sets_constraints_temperature(self, f): - from .con_temperature import write_node_sets_nodes_constraints_temperature self.write_constraints_sets( f, femobjs=self.temperature_objects, - analysis_types=["thermomech"], + analysis_types=con_temperature.get_analysis_types(), sets_getter_method=self.get_constraints_temperature_nodes, - write_name="constraints_temperature_node_sets", - sets_writer_method=write_node_sets_nodes_constraints_temperature, + write_name=con_temperature.get_sets_name(), + sets_writer_method=con_temperature.write_nodes, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_temperature(self, f): - from .con_temperature import constraint_temperature_writer self.write_constraints_data( f, femobjs=self.temperature_objects, - analysis_types=["thermomech"], - constraint_title_name="Fixed temperature constraint applied", - constraint_writer_method=constraint_temperature_writer, + analysis_types=con_temperature.get_analysis_types(), + constraint_title_name=con_temperature.get_constraint_title(), + constraint_writer_method=con_temperature.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) @@ -580,39 +576,36 @@ class FemInputWriterCcx(writerbase.FemInputWriter): # ******************************************************************************************** # constraints centrif def write_element_sets_constraints_centrif(self, f): - from .con_centrif import write_element_sets_elements_constraints_centrif self.write_constraints_sets( f, femobjs=self.centrif_objects, - analysis_types=["buckling", "static", "thermomech"], + analysis_types=con_centrif.get_analysis_types(), sets_getter_method=self.get_constraints_centrif_elements, - write_name="constraints_centrif_element_sets", - sets_writer_method=write_element_sets_elements_constraints_centrif, + write_name=con_centrif.get_sets_name(), + sets_writer_method=con_centrif.write_elements, caller_method_name=sys._getframe().f_code.co_name, ) def write_constraints_centrif(self, f): - from .con_centrif import constraint_centrif_writer self.write_constraints_data( f, femobjs=self.centrif_objects, - analysis_types="all", # write for all analysis types - constraint_title_name="Centrif Constraints", - constraint_writer_method=constraint_centrif_writer, + analysis_types=con_centrif.get_analysis_types(), + constraint_title_name=con_centrif.get_constraint_title(), + constraint_writer_method=con_centrif.write_constraint, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints force def write_constraints_force(self, f): - from .con_force import write_nodeloads_constraints_force self.write_constraints_sets( f, femobjs=self.force_objects, - analysis_types=["buckling", "static", "thermomech"], + analysis_types=con_force.get_analysis_types(), sets_getter_method=self.get_constraints_force_nodeloads, - write_name="constraints_force_node_loads", - sets_writer_method=write_nodeloads_constraints_force, + write_name=con_force.get_sets_name(), + sets_writer_method=con_force.write_nodeloads, caller_method_name=sys._getframe().f_code.co_name, write_before="*CLOAD\n" ) @@ -620,28 +613,26 @@ class FemInputWriterCcx(writerbase.FemInputWriter): # ******************************************************************************************** # constraints pressure def write_constraints_pressure(self, f): - from .con_pressure import write_faceloads_constraints_pressure self.write_constraints_sets( f, femobjs=self.pressure_objects, - analysis_types=["buckling", "static", "thermomech"], + analysis_types=con_pressure.get_analysis_types(), sets_getter_method=self.get_constraints_pressure_faces, - write_name="constraints_pressure_element_face_loads", - sets_writer_method=write_faceloads_constraints_pressure, + write_name=con_pressure.get_sets_name(), + sets_writer_method=con_pressure.write_pressure, caller_method_name=sys._getframe().f_code.co_name, ) # ******************************************************************************************** # constraints heatflux def write_constraints_heatflux(self, f): - from .con_heatflux import write_faceheatflux_constraints_heatflux self.write_constraints_sets( f, femobjs=self.heatflux_objects, - analysis_types=["thermomech"], + analysis_types=con_heatflux.get_analysis_types(), sets_getter_method=self.get_constraints_heatflux_faces, - write_name="constraints_heatflux_element_face_heatflux", - sets_writer_method=write_faceheatflux_constraints_heatflux, + write_name=con_heatflux.get_sets_name(), + sets_writer_method=con_heatflux.write_heatflux, caller_method_name=sys._getframe().f_code.co_name, )