Skip to content

Commit

Permalink
TwoResistanceHeatTransferPhaseSystem: Changed stabilisation term
Browse files Browse the repository at this point in the history
The stabilisation term for the heat transfer with the interface
temperature has been changed to mirror the local heat transfer in the
phase, rather than an effective heat transfer across both phases. This
makes the stabilisation term match the actual temperature-based transfer
terms more accurately. The difference is particularly significant when
the mass transfer rate is high, and cases of this type gain a
significant stability benefit from this change as a result.

Patch contributed by Juho Peltola, VTT.
  • Loading branch information
Will Bainbridge committed Jan 25, 2019
1 parent 653b88d commit 7e799e9
Showing 1 changed file with 4 additions and 13 deletions.
Expand Up @@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org \\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation \\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
Expand Down Expand Up @@ -173,26 +173,17 @@ heatTransfer() const
heatTransferModelIter().second()->K() heatTransferModelIter().second()->K()
); );


const volScalarField KEff
(
Ks.first()()*Ks.second()()
/max
(
Ks.first()() + Ks.second()(),
dimensionedScalar(heatTransferModel::dimK, small)
)
);

forAllConstIter(phasePair, pair, iter) forAllConstIter(phasePair, pair, iter)
{ {
const phaseModel& phase = iter(); const phaseModel& phase = iter();


const volScalarField& he(phase.thermo().he()); const volScalarField& he(phase.thermo().he());
const volScalarField Cpv(phase.thermo().Cpv()); const volScalarField Cpv(phase.thermo().Cpv());
const volScalarField& K(Ks[iter.index()]);


*eqns[phase.name()] += *eqns[phase.name()] +=
Ks[iter.index()]*(Tf - phase.thermo().T()) K*(Tf - phase.thermo().T())
+ KEff/Cpv*he - fvm::Sp(KEff/Cpv, he); + K/Cpv*he - fvm::Sp(K/Cpv, he);
} }
} }


Expand Down

0 comments on commit 7e799e9

Please sign in to comment.