diff --git a/src/Mod/Fem/TestFem.py b/src/Mod/Fem/TestFem.py index cec3a4a6b5..68beac1593 100644 --- a/src/Mod/Fem/TestFem.py +++ b/src/Mod/Fem/TestFem.py @@ -633,6 +633,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('machine_ccx') machine = solver_ccx2_object.Proxy.createMachine(solver_ccx2_object, static2_analysis_dir) + fcc_print(machine.testmode) machine.target = femsolver.run.PREPARE machine.start() machine.join() # wait for the machine to finish. @@ -660,7 +661,8 @@ class FemCcxAnalysisTest(unittest.TestCase): self.active_doc.removeObject(mesh_object.Name) fcc_print('machine_elmer') - machine_elmer = solver_elmer_object.Proxy.createMachine(solver_elmer_object, static2_analysis_dir) + machine_elmer = solver_elmer_object.Proxy.createMachine(solver_elmer_object, static2_analysis_dir, True) + fcc_print(machine_elmer.testmode) machine_elmer.target = femsolver.run.PREPARE machine_elmer.start() machine_elmer.join() # wait for the machine to finish. diff --git a/src/Mod/Fem/femsolver/calculix/solver.py b/src/Mod/Fem/femsolver/calculix/solver.py index d46b012255..b7bbb56328 100644 --- a/src/Mod/Fem/femsolver/calculix/solver.py +++ b/src/Mod/Fem/femsolver/calculix/solver.py @@ -162,13 +162,14 @@ class Proxy(solverbase.Proxy): dimout = ccx_prefs.GetBool("BeamShellOutput", False) obj.BeamShellResultOutput3D = dimout - def createMachine(self, obj, directory): + def createMachine(self, obj, directory, testmode=False): return run.Machine( solver=obj, directory=directory, check=tasks.Check(), prepare=tasks.Prepare(), solve=tasks.Solve(), - results=tasks.Results()) + results=tasks.Results(), + testmode=testmode) def editSupported(self): return True diff --git a/src/Mod/Fem/femsolver/elmer/solver.py b/src/Mod/Fem/femsolver/elmer/solver.py index 5c1f1d90a8..89fe136590 100644 --- a/src/Mod/Fem/femsolver/elmer/solver.py +++ b/src/Mod/Fem/femsolver/elmer/solver.py @@ -75,13 +75,14 @@ class Proxy(solverbase.Proxy): obj.SteadyStateMaxIterations = 1 obj.SteadyStateMinIterations = 0 - def createMachine(self, obj, directory): + def createMachine(self, obj, directory, testmode=False): return run.Machine( solver=obj, directory=directory, check=tasks.Check(), prepare=tasks.Prepare(), solve=tasks.Solve(), - results=tasks.Results()) + results=tasks.Results(), + testmode=testmode) def createEquation(self, doc, eqId): return self._EQUATIONS[eqId].create(doc) diff --git a/src/Mod/Fem/femsolver/elmer/tasks.py b/src/Mod/Fem/femsolver/elmer/tasks.py index 6c3149dccd..5f6ecf6b0d 100644 --- a/src/Mod/Fem/femsolver/elmer/tasks.py +++ b/src/Mod/Fem/femsolver/elmer/tasks.py @@ -67,8 +67,11 @@ class Prepare(run.Prepare): def run(self): self.pushStatus("Preparing input files...\n") - # w = writer.Writer(self.solver, self.directory, True) # test mode - w = writer.Writer(self.solver, self.directory) + print("Prepare testmode: " + str(self.testmode)) + if self.testmode: + w = writer.Writer(self.solver, self.directory, True) # test mode + else: + w = writer.Writer(self.solver, self.directory) try: w.write() self.checkHandled(w) diff --git a/src/Mod/Fem/femsolver/run.py b/src/Mod/Fem/femsolver/run.py index 8064e0d154..3a7ec4ec6e 100644 --- a/src/Mod/Fem/femsolver/run.py +++ b/src/Mod/Fem/femsolver/run.py @@ -54,7 +54,7 @@ def getMachine(solver, path=None): _DocObserver.attach() m = _machines.get(solver) if m is None or not _isPathValid(m, path): - m = _createMachine(solver, path) + m = _createMachine(solver, path, testmode=False) return m @@ -78,7 +78,7 @@ def _isPathValid(m, path): return False -def _createMachine(solver, path): +def _createMachine(solver, path, testmode): global _dirTypes setting = settings.getDirSetting() if path is not None: @@ -92,7 +92,7 @@ def _createMachine(solver, path): elif setting == settings.CUSTOM: path = _getCustomDir(solver) _dirTypes[path] = settings.CUSTOM - m = solver.Proxy.createMachine(solver, path) + m = solver.Proxy.createMachine(solver, path, testmode) oldMachine = _machines.get(solver) if oldMachine is not None: del _dirTypes[oldMachine.directory] @@ -153,6 +153,7 @@ class BaseTask(task.Thread): super(BaseTask, self).__init__() self.solver = None self.directory = None + self.testmode = None @property def analysis(self): @@ -163,7 +164,7 @@ class Machine(BaseTask): def __init__( self, solver, directory, check, - prepare, solve, results): + prepare, solve, results, testmode): super(Machine, self).__init__() self.solver = solver self.directory = directory @@ -176,6 +177,7 @@ class Machine(BaseTask): self._state = CHECK self._pendingState = None self._isReset = False + self.testmode = testmode @property def state(self): @@ -217,6 +219,7 @@ class Machine(BaseTask): for t in tasks: t.solver = self.solver t.directory = self.directory + t.testmode = self.testmode def _applyPending(self): if not self._isReset: diff --git a/src/Mod/Fem/femsolver/solverbase.py b/src/Mod/Fem/femsolver/solverbase.py index f88603054d..b1ce62bdcf 100644 --- a/src/Mod/Fem/femsolver/solverbase.py +++ b/src/Mod/Fem/femsolver/solverbase.py @@ -44,7 +44,7 @@ class Proxy(object): obj.Proxy = self obj.addExtension("App::GroupExtensionPython", self) - def createMachine(self, obj, directory): + def createMachine(self, obj, directory, testmode): raise NotImplementedError() def createEquation(self, obj, eqId): diff --git a/src/Mod/Fem/femsolver/z88/solver.py b/src/Mod/Fem/femsolver/z88/solver.py index e1cf021888..2dbc533319 100644 --- a/src/Mod/Fem/femsolver/z88/solver.py +++ b/src/Mod/Fem/femsolver/z88/solver.py @@ -65,13 +65,14 @@ class Proxy(solverbase.Proxy): obj.AnalysisType = ANALYSIS_TYPES obj.AnalysisType = ANALYSIS_TYPES[0] - def createMachine(self, obj, directory): + def createMachine(self, obj, directory, testmode=False): return run.Machine( solver=obj, directory=directory, check=tasks.Check(), prepare=tasks.Prepare(), solve=tasks.Solve(), - results=tasks.Results()) + results=tasks.Results(), + testmode=testmode) def editSupported(self): return True