From a752d3e588deb63a50b69d7f536d73b229f7d4df Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Sat, 4 Jul 2015 14:46:55 +0100 Subject: [PATCH] saturationModels: Added Tsat function Currently this is implemented only for the Antoine equation, for the other more complex models an iterative inversion from pressure to temperature is required. --- .../saturationModels/Antoine/Antoine.C | 10 ++++++++++ .../saturationModels/Antoine/Antoine.H | 3 +++ .../AntoineExtended/AntoineExtended.C | 15 +++++++++++++++ .../AntoineExtended/AntoineExtended.H | 3 +++ .../saturationModels/ArdenBuck/ArdenBuck.C | 15 +++++++++++++++ .../saturationModels/ArdenBuck/ArdenBuck.H | 5 ++++- .../saturationModel/saturationModel.H | 6 ++++++ 7 files changed, 56 insertions(+), 1 deletion(-) diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C index dd82ca3e2e..b43ce2311b 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.C @@ -89,4 +89,14 @@ Foam::saturationModels::Antoine::lnPSat } +Foam::tmp +Foam::saturationModels::Antoine::Tsat +( + const volScalarField& p +) const +{ + return B_/(A_ - log10(p)) - C_; +} + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H index 2c9f5bf2e3..ec9ba27b25 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/Antoine/Antoine.H @@ -98,6 +98,9 @@ public: //- Natural log of the saturation pressure virtual tmp lnPSat(const volScalarField& T) const; + + //- Saturation temperature + virtual tmp Tsat(const volScalarField& p) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C index bb0c070900..52766f2ea2 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C @@ -102,4 +102,19 @@ Foam::saturationModels::AntoineExtended::lnPSat } +Foam::tmp +Foam::saturationModels::AntoineExtended::Tsat +( + const volScalarField& p +) const +{ + notImplemented + ( + "saturationModels::AntoineExtended::Tsat(const volScalarField& p)" + ); + + return volScalarField::null(); +} + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H index 31be0df975..f8a52921a0 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H @@ -100,6 +100,9 @@ public: //- Natural log of the saturation pressure virtual tmp lnPSat(const volScalarField& T) const; + + //- Saturation temperature + virtual tmp Tsat(const volScalarField& p) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C index e26ff992a1..4c27901589 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C @@ -109,4 +109,19 @@ Foam::saturationModels::ArdenBuck::lnPSat } +Foam::tmp +Foam::saturationModels::ArdenBuck::Tsat +( + const volScalarField& p +) const +{ + notImplemented + ( + "saturationModels::ArdenBuck::Tsat(const volScalarField& p)" + ); + + return volScalarField::null(); +} + + // ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H index 041af0b7e4..065379f000 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H @@ -25,7 +25,7 @@ Class Foam::saturationModels::ArdenBuck Description - ArdenBuck equation for the vapour pressure of steam. + ArdenBuck equation for the vapour pressure of moist air. SourceFiles ArdenBuck.C @@ -85,6 +85,9 @@ public: //- Natural log of the saturation pressure virtual tmp lnPSat(const volScalarField& T) const; + + //- Saturation temperature + virtual tmp Tsat(const volScalarField& p) const; }; diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H index c4967e2e2c..3ebbb1612b 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H @@ -113,6 +113,12 @@ public: ( const volScalarField& T ) const = 0; + + //- Saturation temperature + virtual tmp Tsat + ( + const volScalarField& p + ) const = 0; };