diff --git a/src/Mod/Fem/femsolver/calculix/tasks.py b/src/Mod/Fem/femsolver/calculix/tasks.py index ea99c1a347..40050b7d47 100644 --- a/src/Mod/Fem/femsolver/calculix/tasks.py +++ b/src/Mod/Fem/femsolver/calculix/tasks.py @@ -106,7 +106,8 @@ class Solve(run.Solve): [binary, "-i", _inputFileName], cwd=self.directory, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE + ) self.signalAbort.add(self._process.terminate) # output = self._observeSolver(self._process) self._process.communicate() @@ -127,16 +128,23 @@ class Results(run.Results): "User parameter:BaseApp/Preferences/Mod/Fem/General") if not prefs.GetBool("KeepResultsOnReRun", False): self.purge_results() - self.load_results_ccxfrd() - self.load_results_ccxdat() + self.load_results() def purge_results(self): + + # dat file will not be removed + # results from other solvers will be removed too + # the user should decide if purge should only delete the solver results or all results for m in membertools.get_member(self.analysis, "Fem::FemResultObject"): if m.Mesh and femutils.is_of_type(m.Mesh, "Fem::MeshResult"): self.analysis.Document.removeObject(m.Mesh.Name) self.analysis.Document.removeObject(m.Name) self.analysis.Document.recompute() + def load_results(self): + self.load_results_ccxfrd() + self.load_results_ccxdat() + def load_results_ccxfrd(self): frd_result_file = os.path.join( self.directory, _inputFileName + ".frd") diff --git a/src/Mod/Fem/femsolver/z88/tasks.py b/src/Mod/Fem/femsolver/z88/tasks.py index e931c4d5bc..dc6fe696f3 100644 --- a/src/Mod/Fem/femsolver/z88/tasks.py +++ b/src/Mod/Fem/femsolver/z88/tasks.py @@ -112,7 +112,7 @@ class Results(run.Results): "User parameter:BaseApp/Preferences/Mod/Fem/General") if not prefs.GetBool("KeepResultsOnReRun", False): self.purge_results() - self.load_results_z88o2() + self.load_results() def purge_results(self): for m in membertools.get_member(self.analysis, "Fem::FemResultObject"): @@ -121,7 +121,8 @@ class Results(run.Results): self.analysis.Document.removeObject(m.Name) self.analysis.Document.recompute() - def load_results_z88o2(self): + def load_results(self): + # displacements from z88o2 file disp_result_file = os.path.join( self.directory, "z88o2.txt") if os.path.isfile(disp_result_file):