From 4c34d5f092b0b6d8010972649dfac4b578de2a78 Mon Sep 17 00:00:00 2001 From: Uwe Date: Wed, 10 Aug 2022 03:29:34 +0200 Subject: [PATCH] [FEM] Elmer: notify users about missing fluid material - it was often unclear when no flow equation was written to the case.sif (was a regression FC0.20) --- src/Mod/Fem/femsolver/elmer/writer.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Mod/Fem/femsolver/elmer/writer.py b/src/Mod/Fem/femsolver/elmer/writer.py index 53e1eccbbe..38adb852bf 100644 --- a/src/Mod/Fem/femsolver/elmer/writer.py +++ b/src/Mod/Fem/femsolver/elmer/writer.py @@ -1217,13 +1217,15 @@ class Writer(object): return youngsModulus def _isMaterialFlow(self, body): - m = self._getBodyMaterial(body).Material - return "KinematicViscosity" in m + mat = self._getBodyMaterial(body).Material + return "KinematicViscosity" in mat def _handleFlow(self): activeIn = [] + hasFluidMaterial = True for equation in self.solver.Group: if femutils.is_of_type(equation, "Fem::EquationElmerFlow"): + hasFluidMaterial = False if equation.References: activeIn = equation.References[0][1] else: @@ -1232,7 +1234,13 @@ class Writer(object): for body in activeIn: if self._isMaterialFlow(body): self._addSolver(body, solverSection) - self._handleFlowEquation(activeIn, equation) + hasFluidMaterial = True + if hasFluidMaterial: + self._handleFlowEquation(activeIn, equation) + if not hasFluidMaterial: + raise WriteError( + "The Flow equation requires at least one body with a fluid material!" + ) if activeIn: self._handleFlowConstants() self._handleFlowBndConditions()