Two new phase models have been added as selectable options for reactingMultiphaseEulerFoam; pureStationaryPhaseModel and pureStationaryIsothermalPhaseModel. These phases do not store a velocity and their phase fractions remain constant throughout the simulation. They are intended for use in modelling static particle beds and other forms of porous media by means of the existing Euler-Euler transfer models (drag, heat transfer, etc...). Note that this functionality has not been extended to reactingTwoPhaseEulerFoam, or the non-reacting *EulerFoam solvers. Additional maintenance work has been carried out on the phase model and phase system structure. The system can now loop over subsets of phases with specific functionality (moving, multi-component, etc...) in order to avoid testing for the existence of equations or variables in the top level solver. The mass transfer handling and it's effect on per-phase source terms has been refactored to reduce duplication. Const and non-const access to phase properties has been formalised by renaming non-const accessors with a "Ref" suffix, which is consistent with other recent developments to classes including tmp and GeometricField, among others. More sub-modelling details have been made private in order to reduce the size of interfaces and improve abstraction. This work was supported by Zhen Li, at Evonik
148 lines
3.3 KiB
C
148 lines
3.3 KiB
C
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | Copyright (C) 2014-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/>.
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
|
|
inline const Foam::fvMesh& Foam::phaseSystem::mesh() const
|
|
{
|
|
return mesh_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phaseModelList&
|
|
Foam::phaseSystem::phases() const
|
|
{
|
|
return phaseModels_;
|
|
}
|
|
|
|
|
|
inline Foam::phaseSystem::phaseModelList&
|
|
Foam::phaseSystem::phases()
|
|
{
|
|
return phaseModels_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::movingPhases() const
|
|
{
|
|
return movingPhaseModels_;
|
|
}
|
|
|
|
|
|
inline Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::movingPhases()
|
|
{
|
|
return movingPhaseModels_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::stationaryPhases() const
|
|
{
|
|
return stationaryPhaseModels_;
|
|
}
|
|
|
|
|
|
inline Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::stationaryPhases()
|
|
{
|
|
return stationaryPhaseModels_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::anisothermalPhases() const
|
|
{
|
|
return anisothermalPhaseModels_;
|
|
}
|
|
|
|
|
|
inline Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::anisothermalPhases()
|
|
{
|
|
return anisothermalPhaseModels_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::multiComponentPhases() const
|
|
{
|
|
return multiComponentPhaseModels_;
|
|
}
|
|
|
|
|
|
inline Foam::phaseSystem::phaseModelPartialList&
|
|
Foam::phaseSystem::multiComponentPhases()
|
|
{
|
|
return multiComponentPhaseModels_;
|
|
}
|
|
|
|
|
|
inline const Foam::phaseSystem::phasePairTable&
|
|
Foam::phaseSystem::phasePairs() const
|
|
{
|
|
return phasePairs_;
|
|
}
|
|
|
|
|
|
inline const Foam::surfaceScalarField& Foam::phaseSystem::phi() const
|
|
{
|
|
return phi_;
|
|
}
|
|
|
|
|
|
inline Foam::surfaceScalarField& Foam::phaseSystem::phi()
|
|
{
|
|
return phi_;
|
|
}
|
|
|
|
|
|
inline const Foam::volScalarField& Foam::phaseSystem::dpdt() const
|
|
{
|
|
return dpdt_;
|
|
}
|
|
|
|
|
|
inline Foam::volScalarField& Foam::phaseSystem::dpdt()
|
|
{
|
|
return dpdt_;
|
|
}
|
|
|
|
|
|
inline const Foam::IOMRFZoneList& Foam::phaseSystem::MRF() const
|
|
{
|
|
return MRF_;
|
|
}
|
|
|
|
|
|
inline Foam::fv::options& Foam::phaseSystem::fvOptions() const
|
|
{
|
|
return fv::options::New(mesh_);
|
|
}
|
|
|
|
|
|
// ************************************************************************* //
|