From 3dfb5f93c237fbb4ab805cf4ea053654716eda99 Mon Sep 17 00:00:00 2001 From: Kavin Teenakul Date: Sun, 19 Apr 2026 19:17:50 +0200 Subject: [PATCH] add relaxation factors to solver object and fix test references - Add RelaxationU, RelaxationP, RelaxationH, RelaxationTurbulence, RelaxationRho properties to solver object under a Relaxation group - Wire properties through fvSolution template for both steady-state and transient (non-Final) relaxation factors - Update all test reference fvSolution files to match template changes - Bump version to 1.34.18 --- CfdOF/Solve/CfdSolverFoam.py | 41 +++++++++++++ Data/Templates/case/system/fvSolution | 60 +++++++++---------- .../BatteryCooling/case/system/fvSolution | 2 - .../cases/DamBreak3D/case/system/fvSolution | 2 - .../cases/Duct/case/system/fvSolution | 2 - .../cases/Elbow/case/system/fvSolution | 2 - .../cases/LESStep/case/system/fvSolution | 2 - .../case/system/fvSolution | 2 - .../cases/Projectile/case/system/fvSolution | 2 - .../cases/Propeller/case/system/fvSolution | 2 - .../cases/UAV/case/system/fvSolution | 2 - .../ViscousTubeBundle/case/system/fvSolution | 2 - .../cases/block/case/system/fvSolution | 2 - package.xml | 4 +- 14 files changed, 72 insertions(+), 55 deletions(-) diff --git a/CfdOF/Solve/CfdSolverFoam.py b/CfdOF/Solve/CfdSolverFoam.py index 01d27a30..83a574ab 100644 --- a/CfdOF/Solve/CfdSolverFoam.py +++ b/CfdOF/Solve/CfdSolverFoam.py @@ -153,6 +153,47 @@ def initProperties(self, obj): QT_TRANSLATE_NOOP("App::Property", "Global absolute solution convergence criterion"), ) + addObjectProperty( + obj, + "RelaxationU", + 0.7, + "App::PropertyFloat", + "Relaxation", + QT_TRANSLATE_NOOP("App::Property", "Velocity equation relaxation factor (steady-state)"), + ) + addObjectProperty( + obj, + "RelaxationP", + 0.3, + "App::PropertyFloat", + "Relaxation", + QT_TRANSLATE_NOOP("App::Property", "Pressure field relaxation factor (steady-state)"), + ) + addObjectProperty( + obj, + "RelaxationH", + 0.7, + "App::PropertyFloat", + "Relaxation", + QT_TRANSLATE_NOOP("App::Property", "Enthalpy equation relaxation factor (steady-state)"), + ) + addObjectProperty( + obj, + "RelaxationTurbulence", + 0.7, + "App::PropertyFloat", + "Relaxation", + QT_TRANSLATE_NOOP("App::Property", "Turbulence equations relaxation factor (steady-state)"), + ) + addObjectProperty( + obj, + "RelaxationRho", + 0.5, + "App::PropertyFloat", + "Relaxation", + QT_TRANSLATE_NOOP("App::Property", "Density field relaxation factor (steady-state)"), + ) + if addObjectProperty( obj, "StartFrom", diff --git a/Data/Templates/case/system/fvSolution b/Data/Templates/case/system/fvSolution index 4d3610cb..3cdeb80a 100644 --- a/Data/Templates/case/system/fvSolution +++ b/Data/Templates/case/system/fvSolution @@ -321,94 +321,92 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes %{%(physics/Time%) %:Steady equations { %{%(solver/SolverName%) %:SRFSimpleFoam - Urel 0.7; + Urel %(solver/RelaxationU%); %:default - U 0.7; + U %(solver/RelaxationU%); %} %{%(solver/SolverName%) %:buoyantSimpleFoam - h 0.7; + h %(solver/RelaxationH%); %} %{%(physics/Turbulence%) %:RANS DES %{%(physics/TurbulenceModel%) %:kOmegaSST kOmegaSSTDES kOmegaSSTDDES kOmegaSSTIDDES - k 0.7; - omega 0.7; + k %(solver/RelaxationTurbulence%); + omega %(solver/RelaxationTurbulence%); %:kEpsilon - k 0.7; - epsilon 0.7; + k %(solver/RelaxationTurbulence%); + epsilon %(solver/RelaxationTurbulence%); %:SpalartAllmaras SpalartAllmarasDES SpalartAllmarasDDES SpalartAllmarasIDDES - nuTilda 0.7; + nuTilda %(solver/RelaxationTurbulence%); %:kOmegaSSTLM - k 0.7; - omega 0.7; - gammaInt 0.7; - ReThetat 0.7; + k %(solver/RelaxationTurbulence%); + omega %(solver/RelaxationTurbulence%); + gammaInt %(solver/RelaxationTurbulence%); + ReThetat %(solver/RelaxationTurbulence%); %} %} %{%(scalarTransportFunctionsEnabled%) %:True %{%(scalarTransportFunctions%) - %(scalarTransportFunctions/%(0%)/FieldName%) 0.7; + %(scalarTransportFunctions/%(0%)/FieldName%) %(solver/RelaxationU%); %} %} } fields { - p 0.3; + p %(solver/RelaxationP%); %{%(solver/SolverName%) %:buoyantSimpleFoam - p_rgh 0.3; - rho 0.5; + p_rgh %(solver/RelaxationP%); + rho %(solver/RelaxationRho%); %} } %:Transient equations { - U 0.7; + U %(solver/RelaxationU%); UFinal 1; %{%(solver/SolverName%) %:buoyantPimpleFoam - h 0.7; + h %(solver/RelaxationH%); hFinal 1; %} %{%(physics/Turbulence%) %:RANS DES LES %{%(physics/TurbulenceModel%) %:kOmegaSST kOmegaSSTDES kOmegaSSTDDES kOmegaSSTIDDES - k 0.7; + k %(solver/RelaxationTurbulence%); kFinal 1; - omega 0.7; + omega %(solver/RelaxationTurbulence%); omegaFinal 1; %:kEpsilon - k 0.7; + k %(solver/RelaxationTurbulence%); kFinal 1; - epsilon 0.7; + epsilon %(solver/RelaxationTurbulence%); epsilonFinal 1; %:SpalartAllmaras SpalartAllmarasDES SpalartAllmarasDDES SpalartAllmarasIDDES - nuTilda 0.7; + nuTilda %(solver/RelaxationTurbulence%); nuTildaFinal 1; %:kOmegaSSTLM - k 0.7; + k %(solver/RelaxationTurbulence%); kFinal 1; - omega 0.7; + omega %(solver/RelaxationTurbulence%); omegaFinal 1; - gammaInt 0.7; + gammaInt %(solver/RelaxationTurbulence%); gammaIntFinal 1; - ReThetat 0.7; + ReThetat %(solver/RelaxationTurbulence%); ReThetatFinal 1; %:kEqn - k 0.7; + k %(solver/RelaxationTurbulence%); kFinal 1; %} %} @@ -419,7 +417,7 @@ relaxationFactors %{%(scalarTransportFunctionsEnabled%) %:True %{%(scalarTransportFunctions%) - %(scalarTransportFunctions/%(0%)/FieldName%) 0.7; + %(scalarTransportFunctions/%(0%)/FieldName%) %(solver/RelaxationU%); %(scalarTransportFunctions/%(0%)/FieldName%)Final 1; %} %} diff --git a/Data/TestFiles/cases/BatteryCooling/case/system/fvSolution b/Data/TestFiles/cases/BatteryCooling/case/system/fvSolution index 80315ca6..29ded5c9 100644 --- a/Data/TestFiles/cases/BatteryCooling/case/system/fvSolution +++ b/Data/TestFiles/cases/BatteryCooling/case/system/fvSolution @@ -125,8 +125,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/DamBreak3D/case/system/fvSolution b/Data/TestFiles/cases/DamBreak3D/case/system/fvSolution index bacb265f..9e14ca71 100644 --- a/Data/TestFiles/cases/DamBreak3D/case/system/fvSolution +++ b/Data/TestFiles/cases/DamBreak3D/case/system/fvSolution @@ -116,8 +116,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/Duct/case/system/fvSolution b/Data/TestFiles/cases/Duct/case/system/fvSolution index 0895451a..63a62f56 100644 --- a/Data/TestFiles/cases/Duct/case/system/fvSolution +++ b/Data/TestFiles/cases/Duct/case/system/fvSolution @@ -93,8 +93,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/Elbow/case/system/fvSolution b/Data/TestFiles/cases/Elbow/case/system/fvSolution index 0895451a..63a62f56 100644 --- a/Data/TestFiles/cases/Elbow/case/system/fvSolution +++ b/Data/TestFiles/cases/Elbow/case/system/fvSolution @@ -93,8 +93,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/LESStep/case/system/fvSolution b/Data/TestFiles/cases/LESStep/case/system/fvSolution index cc4a64b4..cc06941d 100644 --- a/Data/TestFiles/cases/LESStep/case/system/fvSolution +++ b/Data/TestFiles/cases/LESStep/case/system/fvSolution @@ -119,8 +119,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/PeriodicBoundaryAndMeanVelocityForce/case/system/fvSolution b/Data/TestFiles/cases/PeriodicBoundaryAndMeanVelocityForce/case/system/fvSolution index df084e75..8ea178bb 100644 --- a/Data/TestFiles/cases/PeriodicBoundaryAndMeanVelocityForce/case/system/fvSolution +++ b/Data/TestFiles/cases/PeriodicBoundaryAndMeanVelocityForce/case/system/fvSolution @@ -109,8 +109,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/Projectile/case/system/fvSolution b/Data/TestFiles/cases/Projectile/case/system/fvSolution index bffec2ba..4c101dba 100644 --- a/Data/TestFiles/cases/Projectile/case/system/fvSolution +++ b/Data/TestFiles/cases/Projectile/case/system/fvSolution @@ -113,8 +113,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/Propeller/case/system/fvSolution b/Data/TestFiles/cases/Propeller/case/system/fvSolution index 0308ea41..eaacb9d6 100644 --- a/Data/TestFiles/cases/Propeller/case/system/fvSolution +++ b/Data/TestFiles/cases/Propeller/case/system/fvSolution @@ -111,8 +111,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/UAV/case/system/fvSolution b/Data/TestFiles/cases/UAV/case/system/fvSolution index df084e75..8ea178bb 100644 --- a/Data/TestFiles/cases/UAV/case/system/fvSolution +++ b/Data/TestFiles/cases/UAV/case/system/fvSolution @@ -109,8 +109,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/ViscousTubeBundle/case/system/fvSolution b/Data/TestFiles/cases/ViscousTubeBundle/case/system/fvSolution index df084e75..8ea178bb 100644 --- a/Data/TestFiles/cases/ViscousTubeBundle/case/system/fvSolution +++ b/Data/TestFiles/cases/ViscousTubeBundle/case/system/fvSolution @@ -109,8 +109,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/Data/TestFiles/cases/block/case/system/fvSolution b/Data/TestFiles/cases/block/case/system/fvSolution index 0895451a..63a62f56 100644 --- a/Data/TestFiles/cases/block/case/system/fvSolution +++ b/Data/TestFiles/cases/block/case/system/fvSolution @@ -93,8 +93,6 @@ solvers relaxationFactors { - // Conservative settings to solve reliably on bad - // meshes equations { U 0.7; diff --git a/package.xml b/package.xml index 0c4a4229..830e193e 100644 --- a/package.xml +++ b/package.xml @@ -11,8 +11,8 @@ 1.0.0 - 1.34.16 - 2026-04-16 + 1.34.18 + 2026-04-19