mirror of
https://github.com/OpenFOAM/OpenFOAM-6.git
synced 2025-12-08 06:57:46 +00:00
Partial elimination has been implemented for the multiphase Euler-Euler solver. This does a linear solution of the drag system when calculating flux and velocity corrections after the solution of the pressure equation. This can improve the behaviour of the solution in the event that the drag coupling is high. It is controlled by means of a "partialElimination" switch within the PIMPLE control dictionary in fvSolution. A re-organisation has also been done in order to remove the exposure of the sub-modelling from the top-level solver. Rather than looping the drag, virtual mass, lift, etc..., models directly, the solver now calls a set of phase-system methods which group the different force terms. These new methods are documented in MomentumTransferPhaseSystem.H. Many other accessors have been removed as a consequence of this grouping. A bug was also fixed whereby the face-based algorithm was not transferring the momentum associated with a given interfacial mass transfer.
78 lines
2.2 KiB
C
78 lines
2.2 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/>.
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#include "BlendedInterfacialModel.H"
|
|
#include "dragModel.H"
|
|
#include "virtualMassModel.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
template<class modelType>
|
|
const modelType& twoPhaseSystem::lookupSubModel
|
|
(
|
|
const phasePair& key
|
|
) const
|
|
{
|
|
return
|
|
mesh().lookupObject<modelType>
|
|
(
|
|
IOobject::groupName(modelType::typeName, key.name())
|
|
);
|
|
}
|
|
|
|
|
|
template<>
|
|
inline const dragModel& twoPhaseSystem::lookupSubModel<dragModel>
|
|
(
|
|
const phaseModel& dispersed,
|
|
const phaseModel& continuous
|
|
) const
|
|
{
|
|
return drag_->phaseModel(dispersed);
|
|
}
|
|
|
|
|
|
template<>
|
|
inline const virtualMassModel& twoPhaseSystem::lookupSubModel<virtualMassModel>
|
|
(
|
|
const phaseModel& dispersed,
|
|
const phaseModel& continuous
|
|
) const
|
|
{
|
|
return virtualMass_->phaseModel(dispersed);
|
|
}
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace Foam
|
|
|
|
// ************************************************************************* //
|