From 0ce5742d6a69fe862c7549f4d30f194058ebe092 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Sat, 4 Jul 2015 14:48:19 +0100 Subject: [PATCH] saturationModels: Added a model for constant pSat and Tsat --- .../interfacialCompositionModels/Make/files | 1 + .../constantSaturationConditions.C | 170 ++++++++++++++++++ .../constantSaturationConditions.H | 106 +++++++++++ 3 files changed, 277 insertions(+) create mode 100644 applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C create mode 100644 applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files index 7dc241bd76..35878ec93a 100644 --- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/Make/files @@ -16,5 +16,6 @@ saturationModels/saturationModel/newSaturationModel.C saturationModels/Antoine/Antoine.C saturationModels/AntoineExtended/AntoineExtended.C saturationModels/ArdenBuck/ArdenBuck.C +saturationModels/constantSaturationConditions/constantSaturationConditions.C LIB = $(FOAM_LIBBIN)/libreactingEulerianInterfacialCompositionModels diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C new file mode 100644 index 0000000000..79256f5b7f --- /dev/null +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C @@ -0,0 +1,170 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "constantSaturationConditions.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace saturationModels +{ + defineTypeNameAndDebug(constantSaturationConditions, 0); + addToRunTimeSelectionTable + ( + saturationModel, + constantSaturationConditions, + dictionary + ); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::saturationModels::constantSaturationConditions:: +constantSaturationConditions(const dictionary& dict) +: + saturationModel(), + pSat_("pSat", dimPressure, dict.lookup("pSat")), + Tsat_("Tsat", dimTemperature, dict.lookup("Tsat")) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::saturationModels::constantSaturationConditions:: +~constantSaturationConditions() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp +Foam::saturationModels::constantSaturationConditions::pSat +( + const volScalarField& T +) const +{ + return tmp + ( + new volScalarField + ( + IOobject + ( + "pSat", + T.mesh().time().timeName(), + T.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + T.mesh(), + pSat_ + ) + ); +} + + +Foam::tmp +Foam::saturationModels::constantSaturationConditions::pSatPrime +( + const volScalarField& T +) const +{ + return tmp + ( + new volScalarField + ( + IOobject + ( + "pSatPrime", + T.mesh().time().timeName(), + T.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + T.mesh(), + dimensionedScalar("zero", dimPressure/dimTemperature, 0) + ) + ); +} + + +Foam::tmp +Foam::saturationModels::constantSaturationConditions::lnPSat +( + const volScalarField& T +) const +{ + return tmp + ( + new volScalarField + ( + IOobject + ( + "lnPSat", + T.mesh().time().timeName(), + T.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + T.mesh(), + dimensionedScalar("lnPSat", dimless, log(pSat_.value())) + ) + ); +} + + +Foam::tmp +Foam::saturationModels::constantSaturationConditions::Tsat +( + const volScalarField& p +) const +{ + return tmp + ( + new volScalarField + ( + IOobject + ( + "Tsat", + p.mesh().time().timeName(), + p.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + p.mesh(), + Tsat_ + ) + ); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H new file mode 100644 index 0000000000..06d0d1b54c --- /dev/null +++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H @@ -0,0 +1,106 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::saturationModels::constantSaturationConditions + +Description + Constant saturation pressure and temperature. + +SourceFiles + constantSaturationConditions.C + +\*---------------------------------------------------------------------------*/ + +#ifndef constantSaturationConditions_H +#define constantSaturationConditions_H + +#include "saturationModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace saturationModels +{ + +/*---------------------------------------------------------------------------*\ + Class constantSaturationConditions Declaration +\*---------------------------------------------------------------------------*/ + +class constantSaturationConditions +: + public saturationModel +{ +protected: + + // Private data + + //- Constant saturation pressure + dimensionedScalar pSat_; + + //- Constant saturation temperature + dimensionedScalar Tsat_; + + +public: + + //- Runtime type information + TypeName("constant"); + + // Constructors + + //- Construct from a dictionary + constantSaturationConditions(const dictionary& dict); + + + //- Destructor + virtual ~constantSaturationConditions(); + + + // Member Functions + + //- Saturation pressure + virtual tmp pSat(const volScalarField& T) const; + + //- Saturation pressure derivetive w.r.t. temperature + virtual tmp pSatPrime(const volScalarField& T) const; + + //- Natural log of the saturation pressure + virtual tmp lnPSat(const volScalarField& T) const; + + //- Saturation temperature + virtual tmp Tsat(const volScalarField& p) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace saturationModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //