An additional layer has been added into the phase system hierarchy which facilitates the application of phase transfer modelling. These are models which exchange mass between phases without the thermal coupling that would be required to represent phase change. They can be thought of as representation changes; e.g., between two phases representing different droplet sizes of the same physical fluid. To facilitate this, the heat transfer phase systems have been modified and renamed and now both support mass transfer. The two sided version is only required for derivations which support phase change. The following changes to case settings have been made: - The simplest instantiated phase systems have been renamed to basicTwoPhaseSystem and basicMultiphaseSystem. The heatAndMomentumTransfer*System entries in constant/phaseProperties files will need updating accordingly. - A phaseTransfer sub-model entry will be required in the constant/phaseProperties file. This can be an empty list. - The massTransfer switch in thermal phase change cases has been renamed phaseTransfer, so as not to be confused with the mass transfer models used by interface composition cases. This work was supported by Georg Skillas and Zhen Li, at Evonik
153 lines
4.5 KiB
C++
153 lines
4.5 KiB
C++
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | Copyright (C) 2015-2018 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 <http://www.gnu.org/licenses/>.
|
|
|
|
Class
|
|
Foam::InterfaceCompositionPhaseChangePhaseSystem
|
|
|
|
Description
|
|
Class to provide interfacial heat and mass transfer between a number of
|
|
phases according to a interface composition model.
|
|
|
|
The interface temperature is calculated such that the net rate at which the
|
|
heat is transferred to the interface is equal to the latent heat consumed by
|
|
the mass transfer.
|
|
|
|
SourceFiles
|
|
InterfaceCompositionPhaseChangePhaseSystem.C
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef InterfaceCompositionPhaseChangePhaseSystem_H
|
|
#define InterfaceCompositionPhaseChangePhaseSystem_H
|
|
|
|
#include "phaseSystem.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
|
|
class interfaceCompositionModel;
|
|
class massTransferModel;
|
|
|
|
/*---------------------------------------------------------------------------*\
|
|
Class InterfaceCompositionPhaseChangePhaseSystem Declaration
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
template<class BasePhaseSystem>
|
|
class InterfaceCompositionPhaseChangePhaseSystem
|
|
:
|
|
public BasePhaseSystem
|
|
{
|
|
protected:
|
|
|
|
// Protected typedefs
|
|
|
|
typedef HashTable
|
|
<
|
|
autoPtr<interfaceCompositionModel>,
|
|
phasePairKey,
|
|
phasePairKey::hash
|
|
> interfaceCompositionModelTable;
|
|
|
|
typedef HashTable
|
|
<
|
|
Pair<autoPtr<BlendedInterfacialModel<massTransferModel>>>,
|
|
phasePairKey,
|
|
phasePairKey::hash
|
|
> massTransferModelTable;
|
|
|
|
typedef HashPtrTable<volScalarField, phasePairKey, phasePairKey::hash>
|
|
iDmdtTable;
|
|
|
|
|
|
// Protected data
|
|
|
|
// Sub Models
|
|
|
|
//- Mass transfer models
|
|
massTransferModelTable massTransferModels_;
|
|
|
|
//- Interface composition models
|
|
interfaceCompositionModelTable interfaceCompositionModels_;
|
|
|
|
//- Interfacial Mass transfer rate
|
|
iDmdtTable iDmdt_;
|
|
|
|
//- Explicit part of the mass transfer rate
|
|
iDmdtTable iDmdtExplicit_;
|
|
|
|
|
|
// Protected member functions
|
|
|
|
//- Return the interfacial mass transfer rate for a pair for a pair
|
|
virtual tmp<volScalarField> iDmdt(const phasePairKey& key) const;
|
|
|
|
|
|
public:
|
|
|
|
// Constructors
|
|
|
|
//- Construct from fvMesh
|
|
InterfaceCompositionPhaseChangePhaseSystem(const fvMesh&);
|
|
|
|
|
|
//- Destructor
|
|
virtual ~InterfaceCompositionPhaseChangePhaseSystem();
|
|
|
|
|
|
// Member Functions
|
|
|
|
//- Return the mass transfer rate for a pair
|
|
virtual tmp<volScalarField> dmdt(const phasePairKey& key) const;
|
|
|
|
//- Return the mass transfer rates for each phase
|
|
virtual Xfer<PtrList<volScalarField>> dmdts() const;
|
|
|
|
//- Return the mass transfer matrices
|
|
virtual autoPtr<phaseSystem::massTransferTable> massTransfer() const;
|
|
|
|
//- Correct the thermodynamics
|
|
virtual void correctInterfaceThermo();
|
|
|
|
//- Read base phaseProperties dictionary
|
|
virtual bool read();
|
|
};
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace Foam
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#ifdef NoRepository
|
|
#include "InterfaceCompositionPhaseChangePhaseSystem.C"
|
|
#endif
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#endif
|
|
|
|
// ************************************************************************* //
|