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
136 lines
3.8 KiB
C++
136 lines
3.8 KiB
C++
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | Copyright (C) 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::MassTransferTransferPhaseSystem
|
|
|
|
Description
|
|
Class which models non-thermally-coupled mass transfers; i.e.,
|
|
representation changes, rather than phase changes.
|
|
|
|
SourceFiles
|
|
PhaseTransferPhaseSystem.C
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef PhaseTransferPhaseSystem_H
|
|
#define PhaseTransferPhaseSystem_H
|
|
|
|
#include "phaseSystem.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
|
|
class blendingMethod;
|
|
template<class modelType> class BlendedInterfacialModel;
|
|
class phaseTransferModel;
|
|
|
|
/*---------------------------------------------------------------------------*\
|
|
Class PhaseTransferPhaseSystem Declaration
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
template<class BasePhaseSystem>
|
|
class PhaseTransferPhaseSystem
|
|
:
|
|
public BasePhaseSystem
|
|
{
|
|
protected:
|
|
|
|
// Protected typedefs
|
|
|
|
typedef HashTable
|
|
<
|
|
autoPtr<BlendedInterfacialModel<phaseTransferModel>>,
|
|
phasePairKey,
|
|
phasePairKey::hash
|
|
> phaseTransferModelTable;
|
|
|
|
typedef HashPtrTable<volScalarField, phasePairKey, phasePairKey::hash>
|
|
rDmdtTable;
|
|
|
|
|
|
// Protected data
|
|
|
|
// Sub Models
|
|
|
|
//- Mass transfer models
|
|
phaseTransferModelTable phaseTransferModels_;
|
|
|
|
//- Mass transfer rates
|
|
rDmdtTable rDmdt_;
|
|
|
|
// Protected member functions
|
|
|
|
//- Return the representation mass transfer rate
|
|
virtual tmp<volScalarField> rDmdt(const phasePairKey& key) const;
|
|
|
|
|
|
public:
|
|
|
|
// Constructors
|
|
|
|
//- Construct from fvMesh
|
|
PhaseTransferPhaseSystem(const fvMesh&);
|
|
|
|
|
|
//- Destructor
|
|
virtual ~PhaseTransferPhaseSystem();
|
|
|
|
|
|
// 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 mass transfer rates
|
|
virtual void correct();
|
|
|
|
//- Read base phaseProperties dictionary
|
|
virtual bool read();
|
|
};
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace Foam
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#ifdef NoRepository
|
|
#include "PhaseTransferPhaseSystem.C"
|
|
#endif
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#endif
|
|
|
|
// ************************************************************************* //
|