Beispiel #1
0
    def run(self):
        self.pushStatus("Preparing solver input...\n")

        # get mesh set data
        # TODO see calculix tasks get mesh set data
        mesh_obj = membertools.get_mesh_to_solve(
            self.analysis)[0]  # pre check done already
        meshdatagetter = meshsetsgetter.MeshSetsGetter(
            self.analysis,
            self.solver,
            mesh_obj,
            membertools.AnalysisMember(self.analysis),
        )
        meshdatagetter.get_mesh_sets()

        # write solver input
        w = writer.FemInputWriterZ88(self.analysis, self.solver, mesh_obj,
                                     meshdatagetter.member, self.directory)
        path = w.write_solver_input()
        # report to user if task succeeded
        if path is not None:
            self.pushStatus("Writing solver input completed.")
        else:
            self.pushStatus("Writing solver input failed.")
            self.fail()
Beispiel #2
0
    def run(self):
        global _inputFileName
        self.pushStatus("Preparing input...\n")

        # get mesh set data
        # TODO evaluate if it makes sense to add new task
        # between check and prepare to the solver frame work
        mesh_obj = membertools.get_mesh_to_solve(self.analysis)[0]  # pre check done already
        meshdatagetter = meshsetsgetter.MeshSetsGetter(
            self.analysis,
            self.solver,
            mesh_obj,
            membertools.AnalysisMember(self.analysis),
        )
        meshdatagetter.get_mesh_sets()

        # write solver input
        w = writer.FemInputWriterCcx(
            self.analysis,
            self.solver,
            mesh_obj,
            meshdatagetter.member,
            self.directory,
            meshdatagetter.mat_geo_sets
        )
        path = w.write_solver_input()
        # report to user if task succeeded
        if path != "" and os.path.isfile(path):
            self.pushStatus("Writing solver input completed.")
        else:
            self.pushStatus("Writing solver input failed.")
            self.fail()
        _inputFileName = os.path.splitext(os.path.basename(path))[0]
Beispiel #3
0
 def run(self):
     self.pushStatus("Preparing input files...\n")
     w = writer.FemInputWriterZ88(
         self.analysis,
         self.solver,
         membertools.get_mesh_to_solve(self.analysis)[0],  # pre check has been done already
         membertools.AnalysisMember(self.analysis),
         self.directory
     )
     path = w.write_z88_input()
     # report to user if task succeeded
     if path is not None:
         self.pushStatus("Write completed!")
     else:
         self.pushStatus("Writing Z88 input files failed!")
Beispiel #4
0
    def update_objects(self):
        ## @var mesh
        #  mesh of the analysis. Used to generate .inp file and to show results
        self.mesh = None
        mesh, message = membertools.get_mesh_to_solve(self.analysis)
        if mesh is not None:
            self.mesh = mesh
        else:
            if FreeCAD.GuiUp:
                QtGui.QMessageBox.critical(None, "Missing prerequisite", message)
            raise Exception(message + "\n")

        ## @var members
        # members of the analysis. All except solvers and the mesh
        self.member = membertools.AnalysisMember(self.analysis)
Beispiel #5
0
    def run(self):
        self.pushStatus("Checking analysis member...\n")
        self.check_mesh_exists()

        # workaround use Calculix ccxtools pre checks
        from femtools.checksanalysis import check_member_for_solver_calculix
        message = check_member_for_solver_calculix(
            self.analysis, self.solver,
            membertools.get_mesh_to_solve(self.analysis)[0],
            membertools.AnalysisMember(self.analysis))
        if message:
            text = "CalculiX can not be started...\n"
            self.report.error("{}{}".format(text, message))
            self.fail()
            return
Beispiel #6
0
    def update_objects(self):
        ## @var mesh
        #  mesh for the analysis
        self.mesh = None
        mesh, message = membertools.get_mesh_to_solve(self.analysis)
        if mesh is not None:
            self.mesh = mesh
        else:
            # the prerequisites will run anyway and they will print a message box anyway
            # thus do not print one here, but print a console warning
            FreeCAD.Console.PrintWarning(
                "{} The prerequisite check will fail.\n".format(message))

        ## @var members
        # members of the analysis. All except the solver and the mesh
        self.member = membertools.AnalysisMember(self.analysis)
Beispiel #7
0
 def run(self):
     global _inputFileName
     self.pushStatus("Preparing input files...\n")
     w = writer.FemInputWriterCcx(
         self.analysis,
         self.solver,
         membertools.get_mesh_to_solve(
             self.analysis)[0],  # pre check has been done already
         membertools.AnalysisMember(self.analysis),
         self.directory)
     path = w.write_calculix_input_file()
     # report to user if task succeeded
     if path != "":
         self.pushStatus("Write completed!")
     else:
         self.pushStatus("Writing CalculiX input file failed!")
     _inputFileName = os.path.splitext(os.path.basename(path))[0]