From c26f08d819d1419855426744777a36f72ddde48b Mon Sep 17 00:00:00 2001 From: John Date: Mon, 23 Jun 2025 10:57:47 -0400 Subject: [PATCH] added implicit temperature limiting, accessible through PIMPLE dictionary in fvSolution --- applications/solvers/additiveFoam/solutionControls.H | 7 +++++++ applications/solvers/additiveFoam/thermo/TEqn.H | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/applications/solvers/additiveFoam/solutionControls.H b/applications/solvers/additiveFoam/solutionControls.H index 94c5336c..4c26ab4a 100644 --- a/applications/solvers/additiveFoam/solutionControls.H +++ b/applications/solvers/additiveFoam/solutionControls.H @@ -5,6 +5,13 @@ scalar nThermoCorr = scalar thermoTol = pimple.dict().lookupOrDefault("thermoTolerance", 1e-6); +dimensionedScalar Tmax +( + "Tmax", + T.dimensions(), + pimple.dict().lookupOrDefault("Tmax", vGreat) +); + // Integrate the total power input to domain const scalar totalPower = fvc::domainIntegrate(sources.qDot()).value(); diff --git a/applications/solvers/additiveFoam/thermo/TEqn.H b/applications/solvers/additiveFoam/thermo/TEqn.H index ee58df87..4c22f5d9 100644 --- a/applications/solvers/additiveFoam/thermo/TEqn.H +++ b/applications/solvers/additiveFoam/thermo/TEqn.H @@ -20,10 +20,18 @@ { #include "thermo/thermoSource.H" + //- optional implicit limiting of temperature field + volScalarField A + ( + "A", + dimensionedScalar(rho.dimensions()*Cp.dimensions(), 1e15) + *pos(T - Tmax) + ); + //- solve the energy equation solve ( - TEqn + TEqn + rDeltaT*(fvm::Sp(A, T) - A*Tmax) == ( (ddtScheme == "Euler")