mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'bubbleLibrary'
This commit is contained in:
@ -8,30 +8,36 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
|
||||
volScalarField dragCoeff(fluid.dragCoeff());
|
||||
|
||||
{
|
||||
volVectorField liftForce(fluid.liftForce(U));
|
||||
volScalarField virtualMassCoeff(fluid.virtualMassCoeff());
|
||||
|
||||
volVectorField liftForce(fluid.liftForce());
|
||||
volVectorField wallLubricationForce(fluid.wallLubricationForce());
|
||||
volVectorField turbulentDispersionForce(fluid.turbulentDispersionForce());
|
||||
|
||||
{
|
||||
U1Eqn =
|
||||
(
|
||||
fvm::ddt(alpha1, U1)
|
||||
+ fvm::div(alphaPhi1, U1)
|
||||
|
||||
// Compressibity correction
|
||||
- fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), U1)
|
||||
|
||||
+ fluid.Cvm()*rho2*alpha1*alpha2/rho1*
|
||||
(
|
||||
fvm::ddt(U1)
|
||||
+ fvm::div(phi1, U1)
|
||||
- fvm::Sp(fvc::div(phi1), U1)
|
||||
)
|
||||
|
||||
+ phase1.turbulence().divDevReff(U1)
|
||||
==
|
||||
- fvm::Sp(dragCoeff/rho1, U1)
|
||||
- alpha1*alpha2/rho1*(liftForce - fluid.Cvm()*rho2*DDtU2)
|
||||
- alpha1*alpha2/rho1
|
||||
*(
|
||||
liftForce
|
||||
+ wallLubricationForce
|
||||
+ turbulentDispersionForce
|
||||
)
|
||||
- virtualMassCoeff/rho1
|
||||
*(
|
||||
fvm::ddt(U1)
|
||||
+ fvm::div(phi1, U1)
|
||||
- fvm::Sp(fvc::div(phi1), U1)
|
||||
- DDtU2
|
||||
)
|
||||
);
|
||||
mrfZones.addCoriolis(alpha1*(1 + fluid.Cvm()*rho2*alpha2/rho1), U1Eqn);
|
||||
mrfZones.addCoriolis(alpha1 + virtualMassCoeff/rho1, U1Eqn);
|
||||
U1Eqn.relax();
|
||||
}
|
||||
|
||||
@ -40,22 +46,25 @@ volScalarField dragCoeff(fluid.dragCoeff());
|
||||
(
|
||||
fvm::ddt(alpha2, U2)
|
||||
+ fvm::div(alphaPhi2, U2)
|
||||
|
||||
// Compressibity correction
|
||||
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), U2)
|
||||
|
||||
+ fluid.Cvm()*rho2*alpha1*alpha2/rho2*
|
||||
(
|
||||
fvm::ddt(U2)
|
||||
+ fvm::div(phi2, U2)
|
||||
- fvm::Sp(fvc::div(phi2), U2)
|
||||
)
|
||||
+ phase2.turbulence().divDevReff(U2)
|
||||
==
|
||||
- fvm::Sp(dragCoeff/rho2, U2)
|
||||
+ alpha1*alpha2/rho2*(liftForce + fluid.Cvm()*rho2*DDtU1)
|
||||
+ alpha1*alpha2/rho2
|
||||
*(
|
||||
liftForce
|
||||
+ wallLubricationForce
|
||||
+ turbulentDispersionForce
|
||||
)
|
||||
- virtualMassCoeff/rho2
|
||||
*(
|
||||
fvm::ddt(U2)
|
||||
+ fvm::div(phi2, U2)
|
||||
- fvm::Sp(fvc::div(phi2), U2)
|
||||
- DDtU1
|
||||
)
|
||||
);
|
||||
mrfZones.addCoriolis(alpha2*(1 + fluid.Cvm()*rho2*alpha1/rho2), U2Eqn);
|
||||
mrfZones.addCoriolis(alpha2 + virtualMassCoeff/rho2, U2Eqn);
|
||||
U2Eqn.relax();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Info<< "Creating twoPhaseSystem\n" << endl;
|
||||
|
||||
twoPhaseSystem fluid(mesh);
|
||||
twoPhaseSystem fluid(mesh, g);
|
||||
|
||||
phaseModel& phase1 = fluid.phase1();
|
||||
phaseModel& phase2 = fluid.phase2();
|
||||
|
||||
@ -1,20 +1,53 @@
|
||||
dragModels/dragModel/dragModel.C
|
||||
dragModels/dragModel/newDragModel.C
|
||||
dragModels/noDrag/noDrag.C
|
||||
dragModels/segregated/segregated.C
|
||||
dragModels/Ergun/Ergun.C
|
||||
dragModels/Gibilaro/Gibilaro.C
|
||||
dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
|
||||
dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
|
||||
dragModels/SchillerNaumann/SchillerNaumann.C
|
||||
dragModels/Gibilaro/Gibilaro.C
|
||||
dragModels/WenYu/WenYu.C
|
||||
dragModels/SyamlalOBrien/SyamlalOBrien.C
|
||||
dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C
|
||||
dragModels/TomiyamaAnalytic/TomiyamaAnalytic.C
|
||||
dragModels/WenYu/WenYu.C
|
||||
|
||||
heatTransferModels/heatTransferModel/heatTransferModel.C
|
||||
heatTransferModels/heatTransferModel/newHeatTransferModel.C
|
||||
heatTransferModels/RanzMarshall/RanzMarshall.C
|
||||
swarmCorrections/swarmCorrection/swarmCorrection.C
|
||||
swarmCorrections/swarmCorrection/newSwarmCorrection.C
|
||||
swarmCorrections/noSwarm/noSwarm.C
|
||||
swarmCorrections/TomiyamaSwarm/TomiyamaSwarm.C
|
||||
|
||||
liftModels/liftModel/liftModel.C
|
||||
liftModels/liftModel/newLiftModel.C
|
||||
liftModels/noLift/noLift.C
|
||||
liftModels/constantCoefficient/constantCoefficient.C
|
||||
liftModels/constantLiftCoefficient/constantLiftCoefficient.C
|
||||
liftModels/TomiyamaLift/TomiyamaLift.C
|
||||
|
||||
heatTransferModels/heatTransferModel/heatTransferModel.C
|
||||
heatTransferModels/heatTransferModel/newHeatTransferModel.C
|
||||
heatTransferModels/noHeatTransfer/noHeatTransfer.C
|
||||
heatTransferModels/RanzMarshall/RanzMarshall.C
|
||||
|
||||
virtualMassModels/virtualMassModel/virtualMassModel.C
|
||||
virtualMassModels/virtualMassModel/newVirtualMassModel.C
|
||||
virtualMassModels/noVirtualMass/noVirtualMass.C
|
||||
virtualMassModels/constantVirtualMassCoefficient/constantVirtualMassCoefficient.C
|
||||
virtualMassModels/Lamb/Lamb.C
|
||||
|
||||
wallLubricationModels/wallLubricationModel/wallLubricationModel.C
|
||||
wallLubricationModels/wallLubricationModel/newWallLubricationModel.C
|
||||
wallLubricationModels/noWallLubrication/noWallLubrication.C
|
||||
wallLubricationModels/Antal/Antal.C
|
||||
|
||||
turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C
|
||||
turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C
|
||||
turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C
|
||||
turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C
|
||||
turbulentDispersionModels/Gosman/Gosman.C
|
||||
|
||||
aspectRatioModels/aspectRatioModel/aspectRatioModel.C
|
||||
aspectRatioModels/aspectRatioModel/newAspectRatioModel.C
|
||||
aspectRatioModels/constantAspectRatio/constantAspectRatio.C
|
||||
aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libcompressibleEulerianInterfacialModels
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/transportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
|
||||
-I../twoPhaseSystem/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "VakhrushevEfremov.H"
|
||||
#include "orderedPhasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace aspectRatioModels
|
||||
{
|
||||
defineTypeNameAndDebug(VakhrushevEfremov, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
aspectRatioModel,
|
||||
VakhrushevEfremov,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModels::VakhrushevEfremov::VakhrushevEfremov
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
)
|
||||
:
|
||||
aspectRatioModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModels::VakhrushevEfremov::~VakhrushevEfremov()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::aspectRatioModels::VakhrushevEfremov::E() const
|
||||
{
|
||||
volScalarField Ta(pair_.Ta());
|
||||
|
||||
return
|
||||
neg(Ta - scalar(1))*scalar(1)
|
||||
+ pos(Ta - scalar(1))*neg(Ta - scalar(39.8))
|
||||
*pow3(0.81 + 0.206*tanh(1.6 - 2*log10(max(Ta, scalar(1)))))
|
||||
+ pos(Ta - scalar(39.8))*0.24;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,100 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::VakhrushevEfremov
|
||||
|
||||
Description
|
||||
Aspect ratio model of Vakhrushev and Efremov.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Interpolation formula for computing the velocities of single gas
|
||||
bubbles in liquids"
|
||||
I A Vakhrushev and G I Efremov
|
||||
Chemistry and Technology of Fuels and Oils
|
||||
Volume 6, Issue 5, Pages 376-379, May 1970
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
VakhrushevEfremov.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef VakhrushevEfremov_H
|
||||
#define VakhrushevEfremov_H
|
||||
|
||||
#include "aspectRatioModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace aspectRatioModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class VakhrushevEfremov Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class VakhrushevEfremov
|
||||
:
|
||||
public aspectRatioModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("VakhrushevEfremov");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and an ordered phase pair
|
||||
VakhrushevEfremov
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~VakhrushevEfremov();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Aspect ratio
|
||||
virtual tmp<volScalarField> E() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace aspectRatioModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "aspectRatioModel.H"
|
||||
#include "orderedPhasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(aspectRatioModel, 0);
|
||||
defineRunTimeSelectionTable(aspectRatioModel, dictionary);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModel::aspectRatioModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
)
|
||||
:
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModel::~aspectRatioModel()
|
||||
{}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,121 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::aspectRatioModel
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
aspectRatioModel.C
|
||||
newAspectRatioModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef aspectRatioModel_H
|
||||
#define aspectRatioModel_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class orderedPhasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class aspectRatioModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class aspectRatioModel
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Phase pair
|
||||
const orderedPhasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("aspectRatioModel");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
aspectRatioModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
),
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and an ordered phase pair
|
||||
aspectRatioModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~aspectRatioModel();
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
static autoPtr<aspectRatioModel> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Aspect ratio
|
||||
virtual tmp<volScalarField> E() const = 0;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,60 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "aspectRatioModel.H"
|
||||
#include "orderedPhasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::aspectRatioModel >
|
||||
Foam::aspectRatioModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
)
|
||||
{
|
||||
word aspectRatioModelType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting aspectRatioModel for "
|
||||
<< pair << ": " << aspectRatioModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(aspectRatioModelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("aspectRatioModel::New")
|
||||
<< "Unknown aspectRatioModelType type "
|
||||
<< aspectRatioModelType << endl << endl
|
||||
<< "Valid aspectRatioModel types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,91 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "constantAspectRatio.H"
|
||||
#include "orderedPhasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace aspectRatioModels
|
||||
{
|
||||
defineTypeNameAndDebug(constantAspectRatio, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
aspectRatioModel,
|
||||
constantAspectRatio,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModels::constantAspectRatio::constantAspectRatio
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
)
|
||||
:
|
||||
aspectRatioModel(dict, pair),
|
||||
E0_("E0", dimless, dict.lookup("E0"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::aspectRatioModels::constantAspectRatio::~constantAspectRatio()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::aspectRatioModels::constantAspectRatio::E() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
E0_
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,97 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::constantAspectRatio
|
||||
|
||||
Description
|
||||
Constant value aspect ratio model.
|
||||
|
||||
SourceFiles
|
||||
constantAspectRatio.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef constantAspectRatio_H
|
||||
#define constantAspectRatio_H
|
||||
|
||||
#include "aspectRatioModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace aspectRatioModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class constantAspectRatio Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class constantAspectRatio
|
||||
:
|
||||
public aspectRatioModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Constant aspect ratio value
|
||||
const dimensionedScalar E0_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("constant");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and an ordered phase pair
|
||||
constantAspectRatio
|
||||
(
|
||||
const dictionary& dict,
|
||||
const orderedPhasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~constantAspectRatio();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Aspect ratio
|
||||
virtual tmp<volScalarField> E() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace aspectRatioModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "Ergun.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(Ergun, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
Ergun,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, Ergun, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,11 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::Ergun::Ergun
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
@ -66,17 +59,21 @@ Foam::dragModels::Ergun::~Ergun()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::Ergun::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::Ergun::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1.0e-6)));
|
||||
|
||||
return
|
||||
150.0*alpha1_*phase2_.nu()*phase2_.rho()
|
||||
/sqr(alpha2*phase1_.d())
|
||||
+ 1.75*phase2_.rho()*Ur/(alpha2*phase1_.d());
|
||||
(4/3)
|
||||
*(
|
||||
150
|
||||
*max(pair_.dispersed(), residualAlpha_)
|
||||
*pair_.continuous().nu()
|
||||
/(
|
||||
max(scalar(1) - pair_.dispersed(), residualAlpha_)
|
||||
*pair_.dispersed().d()
|
||||
*max(pair_.magUr(), residualSlip_)
|
||||
)
|
||||
+ 1.75
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -44,6 +44,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -55,7 +58,6 @@ class Ergun
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
@ -64,13 +66,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
Ergun
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -80,7 +80,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "Gibilaro.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(Gibilaro, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
Gibilaro,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, Gibilaro, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::Gibilaro::Gibilaro
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,16 +60,15 @@ Foam::dragModels::Gibilaro::~Gibilaro()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::Gibilaro::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::Gibilaro::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1.0e-6)));
|
||||
volScalarField bp(pow(alpha2, -2.8));
|
||||
volScalarField Re(max(alpha2*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField alpha2(max(scalar(1) - pair_.dispersed(), residualAlpha_));
|
||||
|
||||
return (17.3/Re + scalar(0.336))*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
return
|
||||
(4/3)
|
||||
*(17.3/(alpha2*max(pair_.Re(), residualRe_)) + scalar(0.336))
|
||||
*max(pair_.continuous(), residualAlpha_)
|
||||
*pow(alpha2, -2.8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -44,6 +44,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -55,6 +58,13 @@ class Gibilaro
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -64,13 +74,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
Gibilaro
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -80,7 +88,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,9 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "GidaspowErgunWenYu.H"
|
||||
#include "phasePair.H"
|
||||
#include "Ergun.H"
|
||||
#include "WenYu.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +36,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(GidaspowErgunWenYu, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
GidaspowErgunWenYu,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, GidaspowErgunWenYu, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +45,28 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
Ergun_
|
||||
(
|
||||
new Ergun
|
||||
(
|
||||
dict,
|
||||
pair
|
||||
)
|
||||
),
|
||||
WenYu_
|
||||
(
|
||||
new WenYu
|
||||
(
|
||||
dict,
|
||||
pair
|
||||
)
|
||||
),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,33 +78,12 @@ Foam::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::dragModels::GidaspowErgunWenYu::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1.0e-6)));
|
||||
volScalarField d(phase1_.d());
|
||||
volScalarField bp(pow(alpha2, -2.65));
|
||||
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
// Wen and Yu (1966)
|
||||
return
|
||||
(
|
||||
pos(alpha2 - 0.8)
|
||||
*(0.75*Cds*phase2_.rho()*Ur*bp/d)
|
||||
+ neg(alpha2 - 0.8)
|
||||
*(
|
||||
150.0*alpha1_*phase2_.nu()*phase2_.rho()/(sqr(alpha2*d))
|
||||
+ 1.75*phase2_.rho()*Ur/(alpha2*d)
|
||||
)
|
||||
);
|
||||
pos(pair_.continuous() - 0.8)*WenYu_->Cd()
|
||||
+ neg(pair_.continuous() - 0.8)*Ergun_->Cd();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,9 +42,15 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
class Ergun;
|
||||
class WenYu;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class GidaspowErgunWenYu Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -53,6 +59,19 @@ class GidaspowErgunWenYu
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Ergun drag model
|
||||
autoPtr<Ergun> Ergun_;
|
||||
|
||||
//- Wen Yu drag model
|
||||
autoPtr<WenYu> WenYu_;
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -62,13 +81,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and an ordered phase pair
|
||||
GidaspowErgunWenYu
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -78,7 +95,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "GidaspowSchillerNaumann.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(GidaspowSchillerNaumann, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
GidaspowSchillerNaumann,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, GidaspowSchillerNaumann, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,22 +60,21 @@ Foam::dragModels::GidaspowSchillerNaumann::~GidaspowSchillerNaumann()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::dragModels::GidaspowSchillerNaumann::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1e-6)));
|
||||
volScalarField bp(pow(alpha2, -2.65));
|
||||
|
||||
volScalarField Re(max(alpha2*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField alpha2(max(scalar(1) - pair_.dispersed(), residualAlpha_));
|
||||
volScalarField Re(max(alpha2*pair_.Re(), residualRe_));
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
return
|
||||
Cds
|
||||
*pow(alpha2, -2.65)
|
||||
*max(pair_.continuous(), residualAlpha_);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -51,6 +51,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -62,6 +65,13 @@ class GidaspowSchillerNaumann
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -71,13 +81,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
GidaspowSchillerNaumann
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -87,7 +95,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "SchillerNaumann.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(SchillerNaumann, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
SchillerNaumann,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, SchillerNaumann, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::SchillerNaumann::SchillerNaumann
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,19 +60,13 @@ Foam::dragModels::SchillerNaumann::~SchillerNaumann()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::Cd() const
|
||||
{
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
volScalarField Re(pair_.Re() + residualRe_);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
||||
return
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,6 +40,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -51,6 +54,13 @@ class SchillerNaumann
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -60,13 +70,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
SchillerNaumann
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -76,7 +84,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "SyamlalOBrien.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(SyamlalOBrien, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
SyamlalOBrien,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, SyamlalOBrien, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::SyamlalOBrien::SyamlalOBrien
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,32 +60,30 @@ Foam::dragModels::SyamlalOBrien::~SyamlalOBrien()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1.0e-6)));
|
||||
volScalarField alpha2(max(scalar(1) - pair_.dispersed(), residualAlpha_));
|
||||
volScalarField magUr(max(pair_.magUr(), residualSlip_));
|
||||
volScalarField A(pow(alpha2, 4.14));
|
||||
volScalarField B
|
||||
(
|
||||
neg(alpha2 - 0.85)*(0.8*pow(alpha2, 1.28))
|
||||
+ pos(alpha2 - 0.85)*(pow(alpha2, 2.65))
|
||||
);
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
volScalarField Re(max(pair_.Re(), residualRe_));
|
||||
volScalarField Vr
|
||||
(
|
||||
0.5*
|
||||
(
|
||||
0.5
|
||||
*(
|
||||
A - 0.06*Re + sqrt(sqr(0.06*Re) + 0.12*Re*(2.0*B - A) + sqr(A))
|
||||
)
|
||||
);
|
||||
|
||||
volScalarField Cds(sqr(0.63 + 4.8*sqrt(Vr/Re)));
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur/(phase1_.d()*sqr(Vr));
|
||||
return
|
||||
Cds
|
||||
*max(pair_.continuous(), residualAlpha_)
|
||||
/sqr(Vr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -43,6 +43,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -54,6 +57,13 @@ class SyamlalOBrien
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -63,13 +73,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
SyamlalOBrien
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -79,7 +87,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,84 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "TomiyamaAnalytic.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(TomiyamaAnalytic, 0);
|
||||
addToRunTimeSelectionTable(dragModel, TomiyamaAnalytic, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::TomiyamaAnalytic::TomiyamaAnalytic
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(dict, pair),
|
||||
residualEo_("residualEo", dimless, dict.lookup("residualEo")),
|
||||
residualE_("residualE", dimless, dict.lookup("residualE"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::TomiyamaAnalytic::~TomiyamaAnalytic()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::TomiyamaAnalytic::Cd() const
|
||||
{
|
||||
volScalarField Eo(max(pair_.Eo(), residualEo_));
|
||||
volScalarField E(max(pair_.E(), residualE_));
|
||||
|
||||
volScalarField OmEsq(max(scalar(1) - sqr(E), residualE_));
|
||||
volScalarField rtOmEsq(sqrt(OmEsq));
|
||||
|
||||
volScalarField F((asin(rtOmEsq) - E*rtOmEsq)/OmEsq);
|
||||
|
||||
return
|
||||
(8.0/3.0)*Eo
|
||||
/(
|
||||
Eo*pow(E, 2.0/3.0)/OmEsq
|
||||
+ 16*pow(E, 0.75)
|
||||
)
|
||||
/sqr(F);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::dragModels::TomiyamaAnalytic
|
||||
|
||||
Description
|
||||
Analytic drag model of Tomiyama et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Drag Coefficients of Bubbles. 1st Report. Drag Coefficients of a
|
||||
Single Bubble in a Stagnant Liquid."
|
||||
A Tomiyama, I Kataoka, and T Sakaguchi
|
||||
Nippon Kikai Gakkai Ronbunshu
|
||||
Volume 61, Issue 587, Pages 2357-2364, 1995
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
TomiyamaAnalytic.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TomiyamaAnalytic_H
|
||||
#define TomiyamaAnalytic_H
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class TomiyamaAnalytic Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class TomiyamaAnalytic
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Eotvos number
|
||||
const dimensionedScalar residualEo_;
|
||||
|
||||
//- Residual aspect ratio
|
||||
const dimensionedScalar residualE_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("TomiyamaAnalytic");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
TomiyamaAnalytic
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~TomiyamaAnalytic();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace dragModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,85 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "TomiyamaCorrelated.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(TomiyamaCorrelated, 0);
|
||||
addToRunTimeSelectionTable(dragModel, TomiyamaCorrelated, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::TomiyamaCorrelated::TomiyamaCorrelated
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe")),
|
||||
A_("A", dimless, dict.lookup("A"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::TomiyamaCorrelated::~TomiyamaCorrelated()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::dragModels::TomiyamaCorrelated::Cd() const
|
||||
{
|
||||
volScalarField Re(pair_.Re() + residualRe_);
|
||||
volScalarField Eo(pair_.Eo());
|
||||
|
||||
return
|
||||
max
|
||||
(
|
||||
A_/Re
|
||||
*min
|
||||
(
|
||||
(1 + 0.15*pow(Re, 0.687)),
|
||||
scalar(3)
|
||||
),
|
||||
8*Eo/(3*Eo + 12)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::dragModels::TomiyamaCorrelated
|
||||
|
||||
Description
|
||||
Correlation of Tomiyama et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Terminal velocity of single bubbles in surface tension force dominant
|
||||
regime"
|
||||
A Tomiyama, G P Celata, S Hosokawa, S Yoshida
|
||||
International Journal of Multiphase Flow
|
||||
Volume 28, Issue 9, Pages 1497-1519, September 2002
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
TomiyamaCorrelated.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TomiyamaCorrelated_H
|
||||
#define TomiyamaCorrelated_H
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class TomiyamaCorrelated Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class TomiyamaCorrelated
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
//- Coefficient
|
||||
const dimensionedScalar A_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("TomiyamaCorrelated");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
TomiyamaCorrelated
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~TomiyamaCorrelated();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace dragModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "WenYu.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(WenYu, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
dragModel,
|
||||
WenYu,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(dragModel, WenYu, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace dragModels
|
||||
|
||||
Foam::dragModels::WenYu::WenYu
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(interfaceDict, alpha1, phase1, phase2)
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,22 +60,20 @@ Foam::dragModels::WenYu::~WenYu()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::Cd() const
|
||||
{
|
||||
volScalarField alpha2(max(scalar(1) - alpha1_, scalar(1.0e-6)));
|
||||
volScalarField bp(pow(alpha2, -2.65));
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField alpha2(max(scalar(1) - pair_.dispersed(), residualAlpha_));
|
||||
volScalarField Re(max(pair_.Re(), residualRe_));
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
return
|
||||
Cds
|
||||
*pow(alpha2, -2.65)
|
||||
*max(pair_.continuous(), residualAlpha_);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -54,6 +54,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
@ -65,6 +68,13 @@ class WenYu
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -74,13 +84,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
WenYu
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -90,7 +98,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,8 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "dragModel.H"
|
||||
#include "phasePair.H"
|
||||
#include "swarmCorrection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -33,21 +35,55 @@ namespace Foam
|
||||
defineRunTimeSelectionTable(dragModel, dictionary);
|
||||
}
|
||||
|
||||
const Foam::dimensionSet Foam::dragModel::dimK(1, -3, -1, 0, 0);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModel::dragModel
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
interfaceDict_(interfaceDict),
|
||||
alpha1_(alpha1),
|
||||
phase1_(phase1),
|
||||
phase2_(phase2)
|
||||
regIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName(typeName, pair.name()),
|
||||
pair.phase1().mesh().time().timeName(),
|
||||
pair.phase1().mesh()
|
||||
)
|
||||
),
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
Foam::dragModel::dragModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
regIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName(typeName, pair.name()),
|
||||
pair.phase1().mesh().time().timeName(),
|
||||
pair.phase1().mesh()
|
||||
)
|
||||
),
|
||||
pair_(pair),
|
||||
swarmCorrection_
|
||||
(
|
||||
swarmCorrection::New
|
||||
(
|
||||
dict.subDict("swarmCorrection"),
|
||||
pair
|
||||
)
|
||||
),
|
||||
residualAlpha_("residualAlpha", dimless, dict.lookup("residualAlpha")),
|
||||
residualSlip_("residualSlip", dimVelocity, dict.lookup("residualSlip"))
|
||||
{}
|
||||
|
||||
|
||||
@ -57,4 +93,27 @@ Foam::dragModel::~dragModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModel::K() const
|
||||
{
|
||||
return
|
||||
0.75
|
||||
*Cd()
|
||||
*swarmCorrection_->Cs()
|
||||
*pair_.continuous().rho()
|
||||
/(
|
||||
max(pair_.continuous(), residualAlpha_)
|
||||
*pair_.dispersed().d()
|
||||
)
|
||||
*max(pair_.magUr(), residualSlip_);
|
||||
}
|
||||
|
||||
|
||||
bool Foam::dragModel::writeData(Ostream& os) const
|
||||
{
|
||||
return os.good();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -37,27 +37,39 @@ SourceFiles
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "phaseModel.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
class swarmCorrection;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class dragModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class dragModel
|
||||
:
|
||||
public regIOobject
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
const dictionary& interfaceDict_;
|
||||
const volScalarField& alpha1_;
|
||||
const phaseModel& phase1_;
|
||||
const phaseModel& phase2_;
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
//- Swarm correction
|
||||
autoPtr<swarmCorrection> swarmCorrection_;
|
||||
|
||||
//- Residual phase fraction
|
||||
const dimensionedScalar residualAlpha_;
|
||||
|
||||
//- Residual slip velocity
|
||||
const dimensionedScalar residualSlip_;
|
||||
|
||||
|
||||
public:
|
||||
@ -74,23 +86,32 @@ public:
|
||||
dragModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(interfaceDict, alpha1, phase1, phase2)
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Coefficient dimensions
|
||||
static const dimensionSet dimK;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
// Construct without residual constants
|
||||
dragModel
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
// Construct with residual constants
|
||||
dragModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -102,25 +123,28 @@ public:
|
||||
|
||||
static autoPtr<dragModel> New
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- the dragfunction K used in the momentum eq.
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const = 0;
|
||||
|
||||
//- The drag function K used in the momentum equation
|
||||
// ddt(alpha1*rho1*U1) + ... = ... alpha1*alpha2*K*(U1-U2)
|
||||
// ddt(alpha2*rho2*U2) + ... = ... alpha1*alpha2*K*(U2-U1)
|
||||
// ********************************** NB! *****************************
|
||||
// for numerical reasons alpha1 and alpha2 has been
|
||||
// extracted from the dragFunction K,
|
||||
// so you MUST divide K by alpha1*alpha2 when implemnting the drag
|
||||
// function
|
||||
// for numerical reasons alpha1 and alpha2 has been extracted from the
|
||||
// drag function K, so you MUST divide K by alpha1*alpha2 when
|
||||
// implemnting the drag function
|
||||
// ********************************** NB! *****************************
|
||||
virtual tmp<volScalarField> K(const volScalarField& Ur) const = 0;
|
||||
virtual tmp<volScalarField> K() const;
|
||||
|
||||
//- Dummy write for regIOobject
|
||||
bool writeData(Ostream& os) const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,26 +24,20 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "dragModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word dragModelType
|
||||
(
|
||||
interfaceDict.lookup(phase1.name())
|
||||
);
|
||||
word dragModelType(dict.lookup("type"));
|
||||
|
||||
Info << "Selecting dragModel for phase "
|
||||
<< phase1.name()
|
||||
<< ": "
|
||||
<< dragModelType << endl;
|
||||
Info<< "Selecting dragModel for "
|
||||
<< pair << ": " << dragModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(dragModelType);
|
||||
@ -58,7 +52,7 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(interfaceDict, alpha1, phase1, phase2);
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,90 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noDrag.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(noDrag, 0);
|
||||
addToRunTimeSelectionTable(dragModel, noDrag, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::noDrag::noDrag
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::noDrag::~noDrag()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::noDrag::Cd() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Cd",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("Cd", dimless, 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::noDrag::K() const
|
||||
{
|
||||
return Cd()*dimensionedScalar("zero", dimensionSet(1, -3, -1, 0, 0), 0);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,96 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::dragModels::noDrag
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noDrag.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noDrag_H
|
||||
#define noDrag_H
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noDrag Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noDrag
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noDrag
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noDrag();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
|
||||
//- The drag function used in the momentum equation
|
||||
virtual tmp<volScalarField> K() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace dragModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,158 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "segregated.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "fvc.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace dragModels
|
||||
{
|
||||
defineTypeNameAndDebug(segregated, 0);
|
||||
addToRunTimeSelectionTable(dragModel, segregated, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::segregated::segregated
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dragModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe")),
|
||||
m_("m", dimless, dict.lookup("m")),
|
||||
n_("n", dimless, dict.lookup("n"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::dragModels::segregated::~segregated()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::segregated::Cd() const
|
||||
{
|
||||
FatalErrorIn("Foam::dragModels::segregated::Cd() const")
|
||||
<< "Not implemented."
|
||||
<< "Drag coefficient not defined for the segregated model."
|
||||
<< exit(FatalError);
|
||||
|
||||
return pair_.phase1();
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::dragModels::segregated::K() const
|
||||
{
|
||||
const fvMesh& mesh(pair_.phase1().mesh());
|
||||
|
||||
const volScalarField& alpha1(pair_.phase1());
|
||||
const volScalarField& alpha2(pair_.phase2());
|
||||
|
||||
const volScalarField& rho1(pair_.phase1().rho());
|
||||
const volScalarField& rho2(pair_.phase2().rho());
|
||||
|
||||
tmp<volScalarField> tnu1(pair_.phase1().nu());
|
||||
tmp<volScalarField> tnu2(pair_.phase2().nu());
|
||||
|
||||
const volScalarField& nu1(tnu1());
|
||||
const volScalarField& nu2(tnu2());
|
||||
|
||||
volScalarField L
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"L",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("L", dimLength, 0),
|
||||
zeroGradientFvPatchField<scalar>::typeName
|
||||
);
|
||||
L.internalField() = cbrt(mesh.V());
|
||||
L.correctBoundaryConditions();
|
||||
|
||||
volScalarField I
|
||||
(
|
||||
alpha1
|
||||
/max
|
||||
(
|
||||
alpha1 + alpha2,
|
||||
residualAlpha_
|
||||
)
|
||||
);
|
||||
volScalarField magGradI
|
||||
(
|
||||
max
|
||||
(
|
||||
mag(fvc::grad(I)),
|
||||
residualAlpha_/L
|
||||
)
|
||||
);
|
||||
|
||||
volScalarField muI
|
||||
(
|
||||
rho1*nu1*rho2*nu2
|
||||
/(rho1*nu1 + rho2*nu2)
|
||||
);
|
||||
volScalarField muAlphaI
|
||||
(
|
||||
alpha1*rho1*nu1*alpha2*rho2*nu2
|
||||
/(alpha1*rho1*nu1 + alpha2*rho2*nu2)
|
||||
);
|
||||
|
||||
volScalarField ReI
|
||||
(
|
||||
max
|
||||
(
|
||||
pair_.rho()
|
||||
*pair_.magUr()
|
||||
/(
|
||||
magGradI
|
||||
*max(alpha1*alpha2, sqr(residualAlpha_))
|
||||
*muI
|
||||
),
|
||||
residualRe_
|
||||
)
|
||||
);
|
||||
|
||||
volScalarField lambda(m_*ReI + n_*muAlphaI/muI);
|
||||
|
||||
return lambda*sqr(magGradI)*muI;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,118 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::dragModels::segregated
|
||||
|
||||
Description
|
||||
Segregated drag model for use in regions with no obvious dispersed phase.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Towards the Numerical Simulation of Multi-scale Two-phase Flows"
|
||||
H Marschall
|
||||
PhD Thesis, TU München, 2011
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
segregated.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef segregated_H
|
||||
#define segregated_H
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace dragModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class segregated Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class segregated
|
||||
:
|
||||
public dragModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
//- M coefficient
|
||||
const dimensionedScalar m_;
|
||||
|
||||
//- N coefficient
|
||||
const dimensionedScalar n_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("segregated");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
segregated
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~segregated();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Drag coefficient
|
||||
virtual tmp<volScalarField> Cd() const;
|
||||
|
||||
//- The drag function used in the momentum equation
|
||||
virtual tmp<volScalarField> K() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace dragModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "RanzMarshall.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace heatTransferModels
|
||||
{
|
||||
defineTypeNameAndDebug(RanzMarshall, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
heatTransferModel,
|
||||
RanzMarshall,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(heatTransferModel, RanzMarshall, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,13 +43,12 @@ namespace heatTransferModels
|
||||
|
||||
Foam::heatTransferModels::RanzMarshall::RanzMarshall
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
heatTransferModel(interfaceDict, alpha1, phase1, phase2)
|
||||
heatTransferModel(dict, pair),
|
||||
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
|
||||
{}
|
||||
|
||||
|
||||
@ -66,16 +60,13 @@ Foam::heatTransferModels::RanzMarshall::~RanzMarshall()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::heatTransferModels::RanzMarshall::K
|
||||
(
|
||||
const volScalarField& Ur
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::heatTransferModels::RanzMarshall::K() const
|
||||
{
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Prb(phase2_.rho()*phase2_.nu()*phase2_.Cp()/phase2_.kappa());
|
||||
volScalarField Nu(scalar(2) + 0.6*sqrt(Re)*cbrt(Prb));
|
||||
volScalarField Re(pair_.Re() + residualRe_);
|
||||
volScalarField Nu(scalar(2) + 0.6*sqrt(Re)*cbrt(pair_.Pr()));
|
||||
|
||||
return 6.0*phase2_.kappa()*Nu/sqr(phase1_.d());
|
||||
return 6.0*pair_.continuous().kappa()*Nu/sqr(pair_.dispersed().d());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,6 +40,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace heatTransferModels
|
||||
{
|
||||
|
||||
@ -51,6 +54,13 @@ class RanzMarshall
|
||||
:
|
||||
public heatTransferModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Residual Reynolds number
|
||||
const dimensionedScalar residualRe_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -63,10 +73,8 @@ public:
|
||||
//- Construct from components
|
||||
RanzMarshall
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -76,7 +84,8 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
tmp<volScalarField> K(const volScalarField& Ur) const;
|
||||
//- The heat transfer function K used in the enthalpy equation
|
||||
tmp<volScalarField> K() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "heatTransferModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -33,21 +34,18 @@ namespace Foam
|
||||
defineRunTimeSelectionTable(heatTransferModel, dictionary);
|
||||
}
|
||||
|
||||
const Foam::dimensionSet Foam::heatTransferModel::dimK(1, -1, -3, -1, 0);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::heatTransferModel::heatTransferModel
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
interfaceDict_(interfaceDict),
|
||||
alpha1_(alpha1),
|
||||
phase1_(phase1),
|
||||
phase2_(phase2)
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -28,7 +28,6 @@ Description
|
||||
|
||||
SourceFiles
|
||||
heatTransferModel.C
|
||||
newHeatTransferModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -37,13 +36,15 @@ SourceFiles
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "phaseModel.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class heatTransferModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -54,10 +55,8 @@ protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
const dictionary& interfaceDict_;
|
||||
const volScalarField& alpha1_;
|
||||
const phaseModel& phase1_;
|
||||
const phaseModel& phase2_;
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
@ -74,23 +73,26 @@ public:
|
||||
heatTransferModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(interfaceDict, alpha1, phase1, phase2)
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Coefficient dimensions
|
||||
static const dimensionSet dimK;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct froma dictionary and a phase pair
|
||||
heatTransferModel
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -102,25 +104,22 @@ public:
|
||||
|
||||
static autoPtr<heatTransferModel> New
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- the heat-transfer function K used in the enthalpy eq.
|
||||
//- The heat transfer function K used in the enthalpy equation
|
||||
// ddt(alpha1*rho1*ha) + ... = ... alpha1*alpha2*K*(Ta - Tb)
|
||||
// ddt(alpha2*rho2*hb) + ... = ... alpha1*alpha2*K*(Tb - Ta)
|
||||
// ********************************** NB!*****************************
|
||||
// for numerical reasons alpha1 and alpha2 has been
|
||||
// extracted from the heat-transfer function K,
|
||||
// so you MUST divide K by alpha1*alpha2 when implementing the
|
||||
// heat-transfer function
|
||||
// for numerical reasons alpha1 and alpha2 has been extracted from the
|
||||
// heat transfer function K, so you MUST divide K by alpha1*alpha2 when
|
||||
// implementing the heat transfer function
|
||||
// ********************************** NB!*****************************
|
||||
virtual tmp<volScalarField> K(const volScalarField& Ur) const = 0;
|
||||
virtual tmp<volScalarField> K() const = 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,26 +24,20 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "heatTransferModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
|
||||
(
|
||||
const dictionary& interfaceDict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word heatTransferModelType
|
||||
(
|
||||
interfaceDict.lookup(phase1.name())
|
||||
);
|
||||
word heatTransferModelType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting heatTransferModel for phase "
|
||||
<< phase1.name()
|
||||
<< ": "
|
||||
<< heatTransferModelType << endl;
|
||||
Info<< "Selecting heatTransferModel for "
|
||||
<< pair << ": " << heatTransferModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(heatTransferModelType);
|
||||
@ -58,7 +52,7 @@ Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(interfaceDict, alpha1, phase1, phase2);
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,87 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noHeatTransfer.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace heatTransferModels
|
||||
{
|
||||
defineTypeNameAndDebug(noHeatTransfer, 0);
|
||||
addToRunTimeSelectionTable(heatTransferModel, noHeatTransfer, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::heatTransferModels::noHeatTransfer::noHeatTransfer
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
heatTransferModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::heatTransferModels::noHeatTransfer::~noHeatTransfer()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::heatTransferModels::noHeatTransfer::K() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("zero", dimensionSet(1, -1, -3, -1, 0), 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,93 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::heatTransferModels::noHeatTransfer
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noHeatTransfer.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noHeatTransfer_H
|
||||
#define noHeatTransfer_H
|
||||
|
||||
#include "heatTransferModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace heatTransferModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noHeatTransfer Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noHeatTransfer
|
||||
:
|
||||
public heatTransferModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noHeatTransfer
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noHeatTransfer();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- The heat transfer function K used in the enthalpy equation
|
||||
tmp<volScalarField> K() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace heatTransferModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,75 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "TomiyamaLift.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace liftModels
|
||||
{
|
||||
defineTypeNameAndDebug(TomiyamaLift, 0);
|
||||
addToRunTimeSelectionTable(liftModel, TomiyamaLift, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::TomiyamaLift::TomiyamaLift
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
liftModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::TomiyamaLift::~TomiyamaLift()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::liftModels::TomiyamaLift::Cl() const
|
||||
{
|
||||
volScalarField EoH(pair_.EoH2());
|
||||
|
||||
volScalarField f(0.00105*pow3(EoH) - 0.0159*sqr(EoH) - 0.0204*EoH + 0.474);
|
||||
|
||||
return
|
||||
neg(EoH - scalar(4))*min(0.288*tanh(0.121*pair_.Re()), f)
|
||||
+ pos(EoH - scalar(4))*neg(EoH - scalar(10))*f
|
||||
+ pos(EoH - scalar(10))*(-0.29);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,102 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::liftModels::TomiyamaLift
|
||||
|
||||
Description
|
||||
Lift model of Tomiyama et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Transverse migration of single bubbles in simple shear flows"
|
||||
A Tomiyama, H Tamai, I Zun, S Hosokawa
|
||||
Chemical Engineering Science
|
||||
Volume 57, Issue 11, Pages 1849-1858, June 2002
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
TomiyamaLift.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TomiyamaLift_H
|
||||
#define TomiyamaLift_H
|
||||
|
||||
#include "liftModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace liftModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class TomiyamaLift Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class TomiyamaLift
|
||||
:
|
||||
public liftModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("Tomiyama");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
TomiyamaLift
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~TomiyamaLift();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Lift coefficient
|
||||
virtual tmp<volScalarField> Cl() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace liftModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,86 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "constantLiftCoefficient.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace liftModels
|
||||
{
|
||||
defineTypeNameAndDebug(constantLiftCoefficient, 0);
|
||||
addToRunTimeSelectionTable(liftModel, constantLiftCoefficient, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::constantLiftCoefficient::constantLiftCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
liftModel(dict, pair),
|
||||
Cl_("Cl", dimless, dict.lookup("Cl"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::constantLiftCoefficient::~constantLiftCoefficient()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::liftModels::constantLiftCoefficient::Cl() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
Cl_
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -22,17 +22,18 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::liftModels::constantCoefficient
|
||||
Foam::liftModels::constantLiftCoefficient
|
||||
|
||||
Description
|
||||
Constant coefficient lift model.
|
||||
|
||||
SourceFiles
|
||||
constantCoefficient.C
|
||||
constantLiftCoefficient.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef constantCoefficient_H
|
||||
#define constantCoefficient_H
|
||||
#ifndef constantLiftCoefficient_H
|
||||
#define constantLiftCoefficient_H
|
||||
|
||||
#include "liftModel.H"
|
||||
|
||||
@ -40,24 +41,24 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace liftModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class constantCoefficient Declaration
|
||||
Class constantLiftCoefficient Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class constantCoefficient
|
||||
class constantLiftCoefficient
|
||||
:
|
||||
public liftModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Coefficient dictionary
|
||||
const dictionary& coeffDict_;
|
||||
|
||||
//- Constant lift coefficient
|
||||
dimensionedScalar Cl_;
|
||||
const dimensionedScalar Cl_;
|
||||
|
||||
|
||||
public:
|
||||
@ -68,24 +69,22 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
constantCoefficient
|
||||
//- Construct from a dictionary and a phase pair
|
||||
constantLiftCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~constantCoefficient();
|
||||
virtual ~constantLiftCoefficient();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Lift force
|
||||
tmp<volVectorField> F(const volVectorField& U) const;
|
||||
//- Lift coefficient
|
||||
virtual tmp<volScalarField> Cl() const;
|
||||
};
|
||||
|
||||
|
||||
@ -24,6 +24,8 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "liftModel.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -33,21 +35,18 @@ namespace Foam
|
||||
defineRunTimeSelectionTable(liftModel, dictionary);
|
||||
}
|
||||
|
||||
const Foam::dimensionSet Foam::liftModel::dimF(1, -2, -2, 0, 0);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModel::liftModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
dict_(dict),
|
||||
alpha1_(alpha1),
|
||||
phase1_(phase1),
|
||||
phase2_(phase2)
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
@ -57,4 +56,17 @@ Foam::liftModel::~liftModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField> Foam::liftModel::F() const
|
||||
{
|
||||
return
|
||||
Cl()
|
||||
*pair_.continuous().rho()
|
||||
*(
|
||||
pair_.Ur() ^ fvc::curl(pair_.continuous().U())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -37,13 +37,15 @@ SourceFiles
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "phaseModel.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class liftModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -54,10 +56,8 @@ protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
const dictionary& dict_;
|
||||
const volScalarField& alpha1_;
|
||||
const phaseModel& phase1_;
|
||||
const phaseModel& phase2_;
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
@ -75,26 +75,25 @@ public:
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
),
|
||||
(dict, alpha1, phase1, phase2)
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Force dimensions
|
||||
static const dimensionSet dimF;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
liftModel();
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
liftModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -107,16 +106,17 @@ public:
|
||||
static autoPtr<liftModel> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Lift coefficient
|
||||
virtual tmp<volScalarField> Cl() const = 0;
|
||||
|
||||
//- Lift force
|
||||
virtual tmp<volVectorField> F(const volVectorField& U) const = 0;
|
||||
virtual tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -24,26 +24,20 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "liftModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::liftModel> Foam::liftModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word liftModelType
|
||||
(
|
||||
dict.subDict(phase1.name()).lookup("type")
|
||||
);
|
||||
word liftModelType(dict.lookup("type"));
|
||||
|
||||
Info << "Selecting liftModel for phase "
|
||||
<< phase1.name()
|
||||
<< ": "
|
||||
<< liftModelType << endl;
|
||||
Info<< "Selecting liftModel for "
|
||||
<< pair << ": " << liftModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(liftModelType);
|
||||
@ -58,14 +52,7 @@ Foam::autoPtr<Foam::liftModel> Foam::liftModel::New
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return
|
||||
cstrIter()
|
||||
(
|
||||
dict.subDict(phase1.name()),
|
||||
alpha1,
|
||||
phase1,
|
||||
phase2
|
||||
);
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "noLift.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -33,13 +34,7 @@ namespace Foam
|
||||
namespace liftModels
|
||||
{
|
||||
defineTypeNameAndDebug(noLift, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
liftModel,
|
||||
noLift,
|
||||
dictionary
|
||||
);
|
||||
addToRunTimeSelectionTable(liftModel, noLift, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,12 +44,10 @@ namespace liftModels
|
||||
Foam::liftModels::noLift::noLift
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
liftModel(dict, alpha1, phase1, phase2)
|
||||
liftModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
@ -66,32 +59,39 @@ Foam::liftModels::noLift::~noLift()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField> Foam::liftModels::noLift::F
|
||||
(
|
||||
const volVectorField& U
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::liftModels::noLift::Cl() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volVectorField>
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volVectorField
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
U.time().timeName(),
|
||||
U.mesh()
|
||||
"Cl",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
U.mesh(),
|
||||
dimensionedVector
|
||||
(
|
||||
"zero",
|
||||
dimensionSet(1, -2, -2, 0, 0, 0, 0),
|
||||
vector::zero
|
||||
)
|
||||
mesh,
|
||||
dimensionedScalar("Cl", dimless, 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volVectorField> Foam::liftModels::noLift::F() const
|
||||
{
|
||||
return
|
||||
Cl()
|
||||
*dimensionedVector
|
||||
(
|
||||
"zero",
|
||||
dimensionSet(1, -2, -2, 0, 0),
|
||||
vector::zero
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -40,6 +40,9 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace liftModels
|
||||
{
|
||||
|
||||
@ -51,12 +54,6 @@ class noLift
|
||||
:
|
||||
public liftModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Constant lift coefficient
|
||||
dimensionedScalar Cl_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
@ -65,13 +62,11 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noLift
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
@ -81,8 +76,11 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Lift coefficient
|
||||
virtual tmp<volScalarField> Cl() const;
|
||||
|
||||
//- Lift force
|
||||
tmp<volVectorField> F(const volVectorField& U) const;
|
||||
virtual tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,77 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "TomiyamaSwarm.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace swarmCorrections
|
||||
{
|
||||
defineTypeNameAndDebug(TomiyamaSwarm, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
swarmCorrection,
|
||||
TomiyamaSwarm,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrections::TomiyamaSwarm::TomiyamaSwarm
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
swarmCorrection(dict, pair),
|
||||
residualAlpha_("residualAlpha", dimless, dict.lookup("residualAlpha")),
|
||||
l_("l", dimless, dict.lookup("l"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrections::TomiyamaSwarm::~TomiyamaSwarm()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::swarmCorrections::TomiyamaSwarm::Cs() const
|
||||
{
|
||||
return
|
||||
pow(max(this->pair_.continuous(), residualAlpha_), scalar(3) - 2*l_);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,109 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::TomiyamaSwarm
|
||||
|
||||
Description
|
||||
Swarm correction of Tomiyama et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Drag Coefficients of Bubbles. 2nd Report. Drag Coefficient for a Swarm
|
||||
of Bubbles and its Applicability to Transient Flow."
|
||||
A Tomiyama, I Kataoka, T Fukuda, and T Sakaguchi
|
||||
Nippon Kikai Gakkai Ronbunshu
|
||||
Volume 61, Issue 588, Pages 2810-2817, 1995
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
TomiyamaSwarm.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TomiyamaSwarm_H
|
||||
#define TomiyamaSwarm_H
|
||||
|
||||
#include "swarmCorrection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace swarmCorrections
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class TomiyamaSwarm Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class TomiyamaSwarm
|
||||
:
|
||||
public swarmCorrection
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Residual phase fraction
|
||||
const dimensionedScalar residualAlpha_;
|
||||
|
||||
//- Constant exponent
|
||||
const dimensionedScalar l_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("Tomiyama");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
TomiyamaSwarm
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~TomiyamaSwarm();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Swarm correction coefficient
|
||||
virtual tmp<volScalarField> Cs() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace swarmCorrections
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,84 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noSwarm.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace swarmCorrections
|
||||
{
|
||||
defineTypeNameAndDebug(noSwarm, 0);
|
||||
addToRunTimeSelectionTable(swarmCorrection, noSwarm, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrections::noSwarm::noSwarm
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
swarmCorrection(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrections::noSwarm::~noSwarm()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::swarmCorrections::noSwarm::Cs() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"one",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("one", dimless, 1)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,93 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::swarmCorrections::noSwarm
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noSwarm.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noSwarm_H
|
||||
#define noSwarm_H
|
||||
|
||||
#include "swarmCorrection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace swarmCorrections
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noSwarm Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noSwarm
|
||||
:
|
||||
public swarmCorrection
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noSwarm
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noSwarm();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Swarm correction coefficient
|
||||
tmp<volScalarField> Cs() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace swarmCorrections
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,60 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "swarmCorrection.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::swarmCorrection>
|
||||
Foam::swarmCorrection::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word swarmCorrectionType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting swarmCorrection for "
|
||||
<< pair << ": " << swarmCorrectionType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(swarmCorrectionType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("swarmCorrection::New")
|
||||
<< "Unknown swarmCorrectionType type "
|
||||
<< swarmCorrectionType << endl << endl
|
||||
<< "Valid swarmCorrection types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "swarmCorrection.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(swarmCorrection, 0);
|
||||
defineRunTimeSelectionTable(swarmCorrection, dictionary);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrection::swarmCorrection
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::swarmCorrection::~swarmCorrection()
|
||||
{}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,121 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::swarmCorrection
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
swarmCorrection.C
|
||||
newSwarmCorrection.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef swarmCorrection_H
|
||||
#define swarmCorrection_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class swarmCorrection Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class swarmCorrection
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("swarmCorrection");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
swarmCorrection,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
swarmCorrection
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~swarmCorrection();
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
static autoPtr<swarmCorrection> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Swarm correction coefficient
|
||||
virtual tmp<volScalarField> Cs() const = 0;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,99 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "Gosman.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
defineTypeNameAndDebug(Gosman, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
turbulentDispersionModel,
|
||||
Gosman,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::Gosman::Gosman
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
turbulentDispersionModel(dict, pair),
|
||||
sigma_("sigma", dimless, dict.lookup("sigma"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::Gosman::~Gosman()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField>
|
||||
Foam::turbulentDispersionModels::Gosman::F() const
|
||||
{
|
||||
const fvMesh& mesh(pair_.phase1().mesh());
|
||||
const dragModel&
|
||||
drag
|
||||
(
|
||||
mesh.lookupObject<dragModel>
|
||||
(
|
||||
IOobject::groupName(dragModel::typeName, pair_.name())
|
||||
)
|
||||
);
|
||||
|
||||
return
|
||||
- 0.75
|
||||
*drag.Cd()
|
||||
*pair_.continuous().turbulence().nut()
|
||||
*pair_.magUr()
|
||||
/(
|
||||
sigma_
|
||||
*pair_.dispersed().d()
|
||||
)
|
||||
*pair_.continuous().rho()
|
||||
*fvc::grad(pair_.dispersed());
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,109 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::turbulentDispersionModels::Gosman
|
||||
|
||||
Description
|
||||
Turbulent dispersion model of Gosman et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Multidimensional modeling of turbulent two-phase flows in stirred
|
||||
vessels"
|
||||
A D Gosman, C Lekakou, S Politis, R I Issa and M K Looney
|
||||
AIChE Journal
|
||||
Volume 38, Issue 12, Pages 1946-1956, 1992
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
Gosman.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef Gosman_H
|
||||
#define Gosman_H
|
||||
|
||||
#include "turbulentDispersionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class Gosman Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class Gosman
|
||||
:
|
||||
public turbulentDispersionModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Schmidt number
|
||||
const dimensionedScalar sigma_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("Gosman");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
Gosman
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Gosman();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Turbulent dispersion force
|
||||
virtual tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace turbulentDispersionModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,84 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "constantTurbulentDispersionCoefficient.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
defineTypeNameAndDebug(constantTurbulentDispersionCoefficient, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
turbulentDispersionModel,
|
||||
constantTurbulentDispersionCoefficient,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::constantTurbulentDispersionCoefficient::
|
||||
constantTurbulentDispersionCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
turbulentDispersionModel(dict, pair),
|
||||
Ctd_("Ctd", dimless, dict.lookup("Ctd"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::constantTurbulentDispersionCoefficient::
|
||||
~constantTurbulentDispersionCoefficient()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField>
|
||||
Foam::turbulentDispersionModels::constantTurbulentDispersionCoefficient::
|
||||
F() const
|
||||
{
|
||||
return
|
||||
- Ctd_
|
||||
*pair_.continuous().rho()
|
||||
*pair_.continuous().turbulence().k()
|
||||
*fvc::grad(pair_.dispersed());
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,100 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::turbulentDispersionModels::constantTurbulentDispersionCoefficient
|
||||
|
||||
Description
|
||||
Constant coefficient turbulent dispersion model.
|
||||
|
||||
SourceFiles
|
||||
constantTurbulentDispersionCoefficient.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef constantTurbulentDispersionCoefficient_H
|
||||
#define constantTurbulentDispersionCoefficient_H
|
||||
|
||||
#include "turbulentDispersionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class constantTurbulentDispersionCoefficient Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class constantTurbulentDispersionCoefficient
|
||||
:
|
||||
public turbulentDispersionModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Constant turbulent dispersion coefficient
|
||||
const dimensionedScalar Ctd_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("constantCoefficient");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
constantTurbulentDispersionCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~constantTurbulentDispersionCoefficient();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Turbulent dispersion force
|
||||
virtual tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace turbulentDispersionModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,96 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noTurbulentDispersion.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
defineTypeNameAndDebug(noTurbulentDispersion, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
turbulentDispersionModel,
|
||||
noTurbulentDispersion,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::noTurbulentDispersion::noTurbulentDispersion
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
turbulentDispersionModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModels::noTurbulentDispersion::
|
||||
~noTurbulentDispersion()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField>
|
||||
Foam::turbulentDispersionModels::noTurbulentDispersion::F() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volVectorField>
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedVector
|
||||
(
|
||||
"zero",
|
||||
dimensionSet(1, -2, -2, 0, 0),
|
||||
vector::zero
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,93 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::turbulentDispersionModels::noTurbulentDispersion
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noTurbulentDispersion.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noTurbulentDispersion_H
|
||||
#define noTurbulentDispersion_H
|
||||
|
||||
#include "turbulentDispersionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace turbulentDispersionModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noTurbulentDispersion Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noTurbulentDispersion
|
||||
:
|
||||
public turbulentDispersionModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noTurbulentDispersion
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noTurbulentDispersion();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Turbulent dispersion force
|
||||
virtual tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace turbulentDispersionModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,60 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "turbulentDispersionModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::turbulentDispersionModel>
|
||||
Foam::turbulentDispersionModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word turbulentDispersionModelType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting turbulentDispersionModel for "
|
||||
<< pair << ": " << turbulentDispersionModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(turbulentDispersionModelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("turbulentDispersionModel::New")
|
||||
<< "Unknown turbulentDispersionModelType type "
|
||||
<< turbulentDispersionModelType << endl << endl
|
||||
<< "Valid turbulentDispersionModel types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,58 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "turbulentDispersionModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(turbulentDispersionModel, 0);
|
||||
defineRunTimeSelectionTable(turbulentDispersionModel, dictionary);
|
||||
}
|
||||
|
||||
const Foam::dimensionSet Foam::turbulentDispersionModel::dimF(1, -2, -2, 0, 0);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModel::turbulentDispersionModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::turbulentDispersionModel::~turbulentDispersionModel()
|
||||
{}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,127 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::turbulentDispersionModel
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
turbulentDispersionModel.C
|
||||
newTurbulentDispersionModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef turbulentDispersionModel_H
|
||||
#define turbulentDispersionModel_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class turbulentDispersionModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class turbulentDispersionModel
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("turbulentDispersionModel");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
turbulentDispersionModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Force dimensions
|
||||
static const dimensionSet dimF;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
turbulentDispersionModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~turbulentDispersionModel();
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
static autoPtr<turbulentDispersionModel> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Turbulent dispersion force
|
||||
virtual tmp<volVectorField> F() const = 0;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -23,22 +23,21 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "constantCoefficient.H"
|
||||
#include "Lamb.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "fvc.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace liftModels
|
||||
namespace virtualMassModels
|
||||
{
|
||||
defineTypeNameAndDebug(constantCoefficient, 0);
|
||||
|
||||
defineTypeNameAndDebug(Lamb, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
liftModel,
|
||||
constantCoefficient,
|
||||
virtualMassModel,
|
||||
Lamb,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
@ -47,40 +46,32 @@ namespace liftModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::constantCoefficient::constantCoefficient
|
||||
Foam::virtualMassModels::Lamb::Lamb
|
||||
(
|
||||
const dictionary& dict,
|
||||
const volScalarField& alpha1,
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
liftModel(dict, alpha1, phase1, phase2),
|
||||
coeffDict_(dict.subDict(typeName + "Coeffs")),
|
||||
Cl_("Cl", dimless, coeffDict_.lookup("Cl"))
|
||||
virtualMassModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::liftModels::constantCoefficient::~constantCoefficient()
|
||||
Foam::virtualMassModels::Lamb::~Lamb()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField> Foam::liftModels::constantCoefficient::F
|
||||
(
|
||||
const volVectorField& U
|
||||
) const
|
||||
Foam::tmp<Foam::volScalarField> Foam::virtualMassModels::Lamb::Cvm() const
|
||||
{
|
||||
volScalarField E(min(max(pair_.E(), SMALL), 1 - SMALL));
|
||||
volScalarField rtOmEsq(sqrt(1 - sqr(E)));
|
||||
|
||||
return
|
||||
Cl_
|
||||
*(phase1_*phase1_.rho() + phase2_*phase2_.rho())
|
||||
*(
|
||||
(phase1_.U() - phase2_.U())
|
||||
^ fvc::curl(U)
|
||||
);
|
||||
(rtOmEsq - E*acos(E))
|
||||
/(E*acos(E) - sqr(E)*rtOmEsq);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,101 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::virtualMassModels::Lamb
|
||||
|
||||
Description
|
||||
Virtual mass model of Lamb.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Hydrodynamics"
|
||||
H Lamb
|
||||
Cambridge University Press, 1895
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
Lamb.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef Lamb_H
|
||||
#define Lamb_H
|
||||
|
||||
#include "virtualMassModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace virtualMassModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class Lamb Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class Lamb
|
||||
:
|
||||
public virtualMassModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("Lamb");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
Lamb
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Lamb();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Virtual mass coefficient
|
||||
virtual tmp<volScalarField> Cvm() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace virtualMassModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,93 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "constantVirtualMassCoefficient.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace virtualMassModels
|
||||
{
|
||||
defineTypeNameAndDebug(constantVirtualMassCoefficient, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
virtualMassModel,
|
||||
constantVirtualMassCoefficient,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModels::constantVirtualMassCoefficient::
|
||||
constantVirtualMassCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
virtualMassModel(dict, pair),
|
||||
Cvm_("Cvm", dimless, dict.lookup("Cvm"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModels::constantVirtualMassCoefficient::
|
||||
~constantVirtualMassCoefficient()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::virtualMassModels::constantVirtualMassCoefficient::Cvm() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
Cvm_
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,102 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::virtualMassModels::constantVirtualMassCoefficient
|
||||
|
||||
Description
|
||||
Constant coefficient virtual mass model.
|
||||
|
||||
SourceFiles
|
||||
constantVirtualMassCoefficient.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef constantVirtualMassCoefficient_H
|
||||
#define constantVirtualMassCoefficient_H
|
||||
|
||||
#include "virtualMassModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace virtualMassModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class constantVirtualMassCoefficient Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class constantVirtualMassCoefficient
|
||||
:
|
||||
public virtualMassModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Constant virtual mass coefficient
|
||||
const dimensionedScalar Cvm_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("constantCoefficient");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
constantVirtualMassCoefficient
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~constantVirtualMassCoefficient();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Virtual mass coefficient
|
||||
virtual tmp<volScalarField> Cvm() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace virtualMassModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,92 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noVirtualMass.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace virtualMassModels
|
||||
{
|
||||
defineTypeNameAndDebug(noVirtualMass, 0);
|
||||
addToRunTimeSelectionTable(virtualMassModel, noVirtualMass, dictionary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModels::noVirtualMass::noVirtualMass
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
virtualMassModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModels::noVirtualMass::~noVirtualMass()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::virtualMassModels::noVirtualMass::Cvm() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("zero", dimless, 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::virtualMassModels::noVirtualMass::K() const
|
||||
{
|
||||
return Cvm()*dimensionedScalar("zero", dimDensity, 0);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,95 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::virtualMassModels::noVirtualMass
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noVirtualMass.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noVirtualMass_H
|
||||
#define noVirtualMass_H
|
||||
|
||||
#include "virtualMassModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace virtualMassModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noVirtualMass Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noVirtualMass
|
||||
:
|
||||
public virtualMassModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
noVirtualMass
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noVirtualMass();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Virtual mass coefficient
|
||||
virtual tmp<volScalarField> Cvm() const;
|
||||
|
||||
virtual tmp<volScalarField> K() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace virtualMassModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,59 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "virtualMassModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::virtualMassModel> Foam::virtualMassModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word virtualMassModelType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting virtualMassModel for "
|
||||
<< pair << ": " << virtualMassModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(virtualMassModelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("virtualMassModel::New")
|
||||
<< "Unknown virtualMassModelType type "
|
||||
<< virtualMassModelType << endl << endl
|
||||
<< "Valid virtualMassModel types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,81 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "virtualMassModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(virtualMassModel, 0);
|
||||
defineRunTimeSelectionTable(virtualMassModel, dictionary);
|
||||
}
|
||||
|
||||
const Foam::dimensionSet Foam::virtualMassModel::dimK(dimDensity);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModel::virtualMassModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
regIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName(typeName, pair.name()),
|
||||
pair.phase1().mesh().time().timeName(),
|
||||
pair.phase1().mesh()
|
||||
)
|
||||
),
|
||||
pair_(pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::virtualMassModel::~virtualMassModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::virtualMassModel::K() const
|
||||
{
|
||||
return Cvm()*pair_.continuous().rho();
|
||||
}
|
||||
|
||||
|
||||
bool Foam::virtualMassModel::writeData(Ostream& os) const
|
||||
{
|
||||
return os.good();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,143 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::virtualMassModel
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
virtualMassModel.C
|
||||
newVirtualMassModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef virtualMassModel_H
|
||||
#define virtualMassModel_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class virtualMassModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class virtualMassModel
|
||||
:
|
||||
public regIOobject
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("virtualMassModel");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
virtualMassModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Coefficient dimensions
|
||||
static const dimensionSet dimK;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a phase pair
|
||||
virtualMassModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~virtualMassModel();
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
static autoPtr<virtualMassModel> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Virtual mass coefficient
|
||||
virtual tmp<volScalarField> Cvm() const = 0;
|
||||
|
||||
//- The virtual mass function K used in the momentum equation
|
||||
// ddt(alpha1*rho1*U1) + ... = ... alpha1*alpha2*K*(DU1_Dt - DU2_Dt)
|
||||
// ddt(alpha2*rho2*U2) + ... = ... alpha1*alpha2*K*(DU1_Dt - DU2_Dt)
|
||||
// ********************************** NB! *****************************
|
||||
// for numerical reasons alpha1 and alpha2 has been extracted from the
|
||||
// virtual mass function K, so you MUST divide K by alpha1*alpha2 when
|
||||
// implemnting the virtual mass function
|
||||
// ********************************** NB! *****************************
|
||||
virtual tmp<volScalarField> K() const;
|
||||
|
||||
// Dummy write for regIOobject
|
||||
bool writeData(Ostream& os) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,88 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "Antal.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace wallLubricationModels
|
||||
{
|
||||
defineTypeNameAndDebug(Antal, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
wallLubricationModel,
|
||||
Antal,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModels::Antal::Antal
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
wallLubricationModel(dict, pair),
|
||||
Cw1_("Cw1", dimless, dict.lookup("Cw1")),
|
||||
Cw2_("Cw2", dimless, dict.lookup("Cw2"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModels::Antal::~Antal()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField> Foam::wallLubricationModels::Antal::F() const
|
||||
{
|
||||
volVectorField Ur(pair_.Ur());
|
||||
volVectorField nWall(- fvc::grad(yWall_));
|
||||
nWall /= mag(nWall) + SMALL;
|
||||
|
||||
return
|
||||
max
|
||||
(
|
||||
dimensionedScalar("zero", dimless/dimLength, 0),
|
||||
Cw1_/pair_.dispersed().d() + Cw2_/yWall_
|
||||
)
|
||||
*pair_.continuous().rho()
|
||||
*magSqr(Ur - (Ur & nWall)*nWall)
|
||||
*nWall;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::wallLubricationModels::Antal
|
||||
|
||||
Description
|
||||
Wall lubrication model of Antal et al.
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
"Analysis of phase distribution in fully developed laminar bubbly
|
||||
two-phase flow"
|
||||
S P Antal, R T Lahey Jr and J E Flaherty
|
||||
International Journal of Multiphase Flow
|
||||
Volume 17, Issue 5, Pages 635-652, September 1991
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
Antal.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef Antal_H
|
||||
#define Antal_H
|
||||
|
||||
#include "wallLubricationModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace wallLubricationModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class Antal Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class Antal
|
||||
:
|
||||
public wallLubricationModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Coefficient 1
|
||||
const dimensionedScalar Cw1_;
|
||||
|
||||
//- Coefficient 2
|
||||
const dimensionedScalar Cw2_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("Antal");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
Antal
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Antal();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Wall lubrication force
|
||||
tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace wallLubricationModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,95 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noWallLubrication.H"
|
||||
#include "phasePair.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace wallLubricationModels
|
||||
{
|
||||
defineTypeNameAndDebug(noWallLubrication, 0);
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
wallLubricationModel,
|
||||
noWallLubrication,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModels::noWallLubrication::noWallLubrication
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
wallLubricationModel(dict, pair)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModels::noWallLubrication::~noWallLubrication()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volVectorField>
|
||||
Foam::wallLubricationModels::noWallLubrication::F() const
|
||||
{
|
||||
const fvMesh& mesh(this->pair_.phase1().mesh());
|
||||
|
||||
return
|
||||
tmp<volVectorField>
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"zero",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedVector
|
||||
(
|
||||
"zero",
|
||||
dimensionSet(1, -2, -2, 0, 0),
|
||||
vector::zero
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,93 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::wallLubricationModels::noWallLubrication
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noWallLubrication.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noWallLubrication_H
|
||||
#define noWallLubrication_H
|
||||
|
||||
#include "wallLubricationModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
namespace wallLubricationModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noWallLubrication Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noWallLubrication
|
||||
:
|
||||
public wallLubricationModel
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
noWallLubrication
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~noWallLubrication();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Wall lubrication force
|
||||
tmp<volVectorField> F() const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace wallLubricationModels
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,59 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "wallLubricationModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::wallLubricationModel> Foam::wallLubricationModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
{
|
||||
word wallLubricationModelType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting wallLubricationModel for "
|
||||
<< pair << ": " << wallLubricationModelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(wallLubricationModelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("wallLubricationModel::New")
|
||||
<< "Unknown wallLubricationModelType type "
|
||||
<< wallLubricationModelType << endl << endl
|
||||
<< "Valid wallLubricationModel types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, pair);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,59 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "wallLubricationModel.H"
|
||||
#include "phasePair.H"
|
||||
|
||||
const Foam::dimensionSet Foam::wallLubricationModel::dimF(1, -2, -2, 0, 0);
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(wallLubricationModel, 0);
|
||||
defineRunTimeSelectionTable(wallLubricationModel, dictionary);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModel::wallLubricationModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
)
|
||||
:
|
||||
pair_(pair),
|
||||
yWall_(pair.phase1().mesh().lookupObject<volScalarField>("yWall"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::wallLubricationModel::~wallLubricationModel()
|
||||
{}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,131 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::wallLubricationModel
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
wallLubricationModel.C
|
||||
newWallLubricationModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef wallLubricationModel_H
|
||||
#define wallLubricationModel_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "volFields.H"
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
class phasePair;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class wallLubricationModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class wallLubricationModel
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
//- Wall distance
|
||||
const volScalarField& yWall_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("wallLubricationModel");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
wallLubricationModel,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
),
|
||||
(dict, pair)
|
||||
);
|
||||
|
||||
|
||||
// Static data members
|
||||
|
||||
//- Coefficient dimensions
|
||||
static const dimensionSet dimF;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
wallLubricationModel
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~wallLubricationModel();
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
static autoPtr<wallLubricationModel> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const phasePair& pair
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Wall lubrication force
|
||||
virtual tmp<volVectorField> F() const = 0;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -100,6 +100,12 @@ Foam::RASModels::kineticTheoryModel::kineticTheoryModel
|
||||
dimless,
|
||||
this->coeffDict_.lookup("alphaMinFriction")
|
||||
),
|
||||
residualAlpha_
|
||||
(
|
||||
"residualAlpha",
|
||||
dimless,
|
||||
this->coeffDict_.lookup("residualAlpha")
|
||||
),
|
||||
|
||||
Theta_
|
||||
(
|
||||
@ -384,7 +390,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
volScalarField gammaCoeff
|
||||
(
|
||||
12.0*(1.0 - sqr(e_))
|
||||
*max(sqr(alpha), phase_.fluid().residualPhaseFraction())
|
||||
*max(sqr(alpha), residualAlpha_)
|
||||
*gs0*(1.0/da)*ThetaSqrt/sqrtPi
|
||||
);
|
||||
|
||||
@ -398,12 +404,9 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
max
|
||||
(
|
||||
alpha*(1.0 - alpha),
|
||||
phase_.fluid().residualPhaseFraction()
|
||||
residualAlpha_
|
||||
)
|
||||
*phase_.fluid().drag(phase_).K
|
||||
(
|
||||
magUr + phase_.fluid().residualSlip()
|
||||
)/rho
|
||||
*phase_.fluid().drag(phase_).K()/rho
|
||||
);
|
||||
|
||||
// Eq. 3.25, p. 50 Js = J1 - J2
|
||||
@ -412,7 +415,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
(
|
||||
0.25*sqr(alpha2Prim)*da*sqr(magUr)
|
||||
/(
|
||||
max(alpha, phase_.fluid().residualPhaseFraction())
|
||||
max(alpha, residualAlpha_)
|
||||
*sqrtPi*(ThetaSqrt + ThetaSmallSqrt)
|
||||
)
|
||||
);
|
||||
@ -483,7 +486,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
|
||||
volScalarField trD
|
||||
(
|
||||
alpha/(alpha + phase_.fluid().residualPhaseFraction())
|
||||
alpha/(alpha + residualAlpha_)
|
||||
*fvc::div(this->phi_)
|
||||
);
|
||||
volScalarField tr2D(sqr(trD));
|
||||
@ -503,7 +506,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
Theta_ = sqr
|
||||
(
|
||||
(l1 + sqrt(l2 + l3))
|
||||
/(2.0*max(alpha, phase_.fluid().residualPhaseFraction())*K4)
|
||||
/(2.0*max(alpha, residualAlpha_)*K4)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -82,9 +82,6 @@ class kineticTheoryModel
|
||||
const phaseModel& phase_;
|
||||
|
||||
|
||||
////- Drag model
|
||||
//const dragModel& draga_;
|
||||
|
||||
// Sub-models
|
||||
|
||||
//- Run-time selected viscosity model
|
||||
@ -119,6 +116,9 @@ class kineticTheoryModel
|
||||
//- Min value for which the frictional stresses are zero
|
||||
dimensionedScalar alphaMinFriction_;
|
||||
|
||||
//- Residual phase fraction
|
||||
dimensionedScalar residualAlpha_;
|
||||
|
||||
|
||||
// Kinetic Theory Model Fields
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -25,6 +25,7 @@ License
|
||||
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "phaseModel.H"
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "makeTurbulenceModel.H"
|
||||
|
||||
@ -76,12 +77,10 @@ makeLESModel(NicenoKEqn);
|
||||
#include "continuousGasKEqn.H"
|
||||
makeLESModel(continuousGasKEqn);
|
||||
|
||||
|
||||
#include "kineticTheoryModel.H"
|
||||
makeTurbulenceModel
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, RAS, kineticTheoryModel);
|
||||
|
||||
|
||||
#include "phasePressureModel.H"
|
||||
makeTurbulenceModel
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, RAS, phasePressureModel);
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
IOdictionary ppProperties
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ppProperties",
|
||||
runTime.constant(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
|
||||
scalar preAlphaExp
|
||||
(
|
||||
readScalar(ppProperties.lookup("preAlphaExp"))
|
||||
);
|
||||
|
||||
scalar alphaMax
|
||||
(
|
||||
readScalar(ppProperties.lookup("alphaMax"))
|
||||
);
|
||||
|
||||
scalar expMax
|
||||
(
|
||||
readScalar(ppProperties.lookup("expMax"))
|
||||
);
|
||||
|
||||
dimensionedScalar g0
|
||||
(
|
||||
ppProperties.lookup("g0")
|
||||
);
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -33,8 +33,6 @@ Description
|
||||
#include "fvCFD.H"
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "dragModel.H"
|
||||
#include "heatTransferModel.H"
|
||||
#include "pimpleControl.H"
|
||||
#include "IOMRFZoneList.H"
|
||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
||||
|
||||
@ -0,0 +1,241 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "fixedValueFvsPatchFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
template<class modelType>
|
||||
template<class Type>
|
||||
void Foam::BlendedInterfacialModel<modelType>::correctFixedFluxBCs
|
||||
(
|
||||
GeometricField<Type, fvPatchField, volMesh>& field
|
||||
) const
|
||||
{
|
||||
forAll(pair_.phase1().phi().boundaryField(), patchI)
|
||||
{
|
||||
if
|
||||
(
|
||||
isA<fixedValueFvsPatchScalarField>
|
||||
(
|
||||
pair_.phase1().phi().boundaryField()[patchI]
|
||||
)
|
||||
)
|
||||
{
|
||||
field.boundaryField()[patchI] = pTraits<Type>::zero;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class modelType>
|
||||
Foam::BlendedInterfacialModel<modelType>::BlendedInterfacialModel
|
||||
(
|
||||
const phasePair::dictTable& modelTable,
|
||||
const blendingMethod& blending,
|
||||
const phasePair& pair,
|
||||
const orderedPhasePair& pair1In2,
|
||||
const orderedPhasePair& pair2In1
|
||||
)
|
||||
:
|
||||
pair_(pair),
|
||||
pair1In2_(pair1In2),
|
||||
pair2In1_(pair2In1),
|
||||
blending_(blending)
|
||||
{
|
||||
if (modelTable.found(pair_))
|
||||
{
|
||||
model_.set
|
||||
(
|
||||
modelType::New
|
||||
(
|
||||
modelTable[pair_],
|
||||
pair_
|
||||
).ptr()
|
||||
);
|
||||
}
|
||||
|
||||
if (modelTable.found(pair1In2_))
|
||||
{
|
||||
model1In2_.set
|
||||
(
|
||||
modelType::New
|
||||
(
|
||||
modelTable[pair1In2_],
|
||||
pair1In2_
|
||||
).ptr()
|
||||
);
|
||||
}
|
||||
|
||||
if (modelTable.found(pair2In1_))
|
||||
{
|
||||
model2In1_.set
|
||||
(
|
||||
modelType::New
|
||||
(
|
||||
modelTable[pair2In1_],
|
||||
pair2In1_
|
||||
).ptr()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class modelType>
|
||||
Foam::BlendedInterfacialModel<modelType>::~BlendedInterfacialModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
template<class modelType>
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::BlendedInterfacialModel<modelType>::K() const
|
||||
{
|
||||
tmp<volScalarField> f1, f2;
|
||||
|
||||
if (model_.valid() || model1In2_.valid())
|
||||
{
|
||||
f1 = blending_.f1(pair1In2_.dispersed(), pair2In1_.dispersed());
|
||||
}
|
||||
|
||||
if (model_.valid() || model2In1_.valid())
|
||||
{
|
||||
f2 = blending_.f2(pair1In2_.dispersed(), pair2In1_.dispersed());
|
||||
}
|
||||
|
||||
tmp<volScalarField> x
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
modelType::typeName + "Coeff",
|
||||
pair_.phase1().mesh().time().timeName(),
|
||||
pair_.phase1().mesh()
|
||||
),
|
||||
pair_.phase1().mesh(),
|
||||
dimensionedScalar("zero", modelType::dimK, 0)
|
||||
)
|
||||
);
|
||||
|
||||
if (model_.valid())
|
||||
{
|
||||
x() += model_->K()*(f1() - f2());
|
||||
}
|
||||
|
||||
if (model1In2_.valid())
|
||||
{
|
||||
x() += model1In2_->K()*(1 - f1);
|
||||
}
|
||||
|
||||
if (model2In1_.valid())
|
||||
{
|
||||
x() += model2In1_->K()*f2;
|
||||
}
|
||||
|
||||
if (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||
{
|
||||
x() *= max(pair_.phase1()*pair_.phase2(), blending_.residualAlpha());
|
||||
|
||||
correctFixedFluxBCs(x());
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
template<class modelType>
|
||||
template<class Type>
|
||||
Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >
|
||||
Foam::BlendedInterfacialModel<modelType>::F() const
|
||||
{
|
||||
tmp<volScalarField> f1, f2;
|
||||
|
||||
if (model_.valid() || model1In2_.valid())
|
||||
{
|
||||
f1 = blending_.f1(pair1In2_.dispersed(), pair2In1_.dispersed());
|
||||
}
|
||||
|
||||
if (model_.valid() || model2In1_.valid())
|
||||
{
|
||||
f2 = blending_.f2(pair1In2_.dispersed(), pair2In1_.dispersed());
|
||||
}
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh> > x
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
modelType::typeName + "Coeff",
|
||||
pair_.phase1().mesh().time().timeName(),
|
||||
pair_.phase1().mesh()
|
||||
),
|
||||
pair_.phase1().mesh(),
|
||||
dimensioned<Type>("zero", modelType::dimF, pTraits<Type>::zero)
|
||||
)
|
||||
);
|
||||
|
||||
if (model_.valid())
|
||||
{
|
||||
x() += model_->F()*(f1() - f2());
|
||||
}
|
||||
|
||||
if (model1In2_.valid())
|
||||
{
|
||||
x() += model1In2_->F()*(1 - f1);
|
||||
}
|
||||
|
||||
if (model2In1_.valid())
|
||||
{
|
||||
x() -= model2In1_->F()*f2; // note : subtraction
|
||||
}
|
||||
|
||||
if (model_.valid() || model1In2_.valid() || model2In1_.valid())
|
||||
{
|
||||
correctFixedFluxBCs(x());
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
template<class modelType>
|
||||
const modelType& Foam::BlendedInterfacialModel<modelType>::phaseModel
|
||||
(
|
||||
const class phaseModel& phase
|
||||
) const
|
||||
{
|
||||
return &phase == &(pair_.phase1()) ? model1In2_ : model2In1_;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,144 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::BlendedInterfacialModel
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
BlendedInterfacialModel.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef BlendedInterfacialModel_H
|
||||
#define BlendedInterfacialModel_H
|
||||
|
||||
#include "blendingMethod.H"
|
||||
#include "phasePair.H"
|
||||
#include "orderedPhasePair.H"
|
||||
|
||||
#include "geometricZeroField.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class BlendedInterfacialModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class modelType>
|
||||
class BlendedInterfacialModel
|
||||
{
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Unordered phase pair
|
||||
const phasePair& pair_;
|
||||
|
||||
//- Ordered phase pair for dispersed phase 1 in continuous phase 2
|
||||
const orderedPhasePair& pair1In2_;
|
||||
|
||||
//- Ordered phase pair for dispersed phase 2 in continuous phase 1
|
||||
const orderedPhasePair& pair2In1_;
|
||||
|
||||
//- Model for region with no obvious dispersed phase
|
||||
autoPtr<modelType> model_;
|
||||
|
||||
//- Model for dispersed phase 1 in continuous phase 2
|
||||
autoPtr<modelType> model1In2_;
|
||||
|
||||
//- Model for dispersed phase 2 in continuous phase 1
|
||||
autoPtr<modelType> model2In1_;
|
||||
|
||||
//- Blending model
|
||||
const blendingMethod& blending_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
BlendedInterfacialModel(const BlendedInterfacialModel<modelType>&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const BlendedInterfacialModel<modelType>&);
|
||||
|
||||
//- Correct coeff/value on fixed flux boundary conditions
|
||||
template<class Type>
|
||||
void correctFixedFluxBCs
|
||||
(
|
||||
GeometricField<Type, fvPatchField, volMesh>& field
|
||||
) const;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from the model table, dictionary and pairs
|
||||
BlendedInterfacialModel
|
||||
(
|
||||
const phasePair::dictTable& modelTable,
|
||||
const blendingMethod& blending,
|
||||
const phasePair& pair,
|
||||
const orderedPhasePair& pair1In2,
|
||||
const orderedPhasePair& pair2In1
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
~BlendedInterfacialModel();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the implicit coefficient
|
||||
tmp<volScalarField> K() const;
|
||||
|
||||
//- Return the explicit value
|
||||
template<class Type>
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh> > F() const;
|
||||
|
||||
//- Return the model for the supplied phase
|
||||
const modelType& phaseModel(const phaseModel& phase) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
# include "BlendedInterfacialModel.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,62 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "blendingMethod.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(blendingMethod, 0);
|
||||
defineRunTimeSelectionTable(blendingMethod, dictionary);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethod::blendingMethod
|
||||
(
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
residualAlpha_("residualAlpha", dimless, dict.lookup("residualAlpha"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethod::~blendingMethod()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
const Foam::dimensionedScalar& Foam::blendingMethod::residualAlpha() const
|
||||
{
|
||||
return residualAlpha_;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,131 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::blendingMethod
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
blendingMethod.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef blendingMethod_H
|
||||
#define blendingMethod_H
|
||||
|
||||
#include "dictionary.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
#include "phaseModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class blendingMethod Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class blendingMethod
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Residual phase fraction
|
||||
const dimensionedScalar residualAlpha_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("blendingMethod");
|
||||
|
||||
|
||||
// Declare runtime construction
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
blendingMethod,
|
||||
dictionary,
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
),
|
||||
(dict, phaseNames)
|
||||
);
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary
|
||||
blendingMethod
|
||||
(
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
// Selector
|
||||
|
||||
static autoPtr<blendingMethod> New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~blendingMethod();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Residual phase fraction
|
||||
const dimensionedScalar& residualAlpha() const;
|
||||
|
||||
//- Factor for first phase
|
||||
virtual tmp<volScalarField> f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const = 0;
|
||||
|
||||
//- Factor for second phase
|
||||
virtual tmp<volScalarField> f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const = 0;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,58 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "blendingMethod.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<Foam::blendingMethod> Foam::blendingMethod::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
)
|
||||
{
|
||||
word blendingMethodType(dict.lookup("type"));
|
||||
|
||||
Info<< "Selecting " << dict.dictName() << " blending method: "
|
||||
<< blendingMethodType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(blendingMethodType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn("blendingMethod::New")
|
||||
<< "Unknown blendingMethodType type "
|
||||
<< blendingMethodType << endl << endl
|
||||
<< "Valid blendingMethod types are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return cstrIter()(dict, phaseNames);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,124 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "hyperbolic.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
defineTypeNameAndDebug(hyperbolic, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
blendingMethod,
|
||||
hyperbolic,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::hyperbolic::hyperbolic
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
)
|
||||
:
|
||||
blendingMethod(dict),
|
||||
transitionAlphaScale_
|
||||
(
|
||||
"transitionAlphaScale",
|
||||
dimless,
|
||||
dict.lookup("transitionAlphaScale")
|
||||
)
|
||||
{
|
||||
forAllConstIter(wordList, phaseNames, iter)
|
||||
{
|
||||
const word name(IOobject::groupName("maxDispersedAlpha", *iter));
|
||||
|
||||
maxDispersedAlpha_.insert
|
||||
(
|
||||
*iter,
|
||||
dimensionedScalar
|
||||
(
|
||||
name,
|
||||
dimless,
|
||||
dict.lookup(name)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::hyperbolic::~hyperbolic()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::hyperbolic::f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
return
|
||||
(
|
||||
1
|
||||
+ tanh
|
||||
(
|
||||
(4/transitionAlphaScale_)
|
||||
*(phase1 - maxDispersedAlpha_[phase1.name()])
|
||||
)
|
||||
)/2;
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::hyperbolic::f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
return
|
||||
(
|
||||
1
|
||||
+ tanh
|
||||
(
|
||||
(4/transitionAlphaScale_)
|
||||
*(maxDispersedAlpha_[phase2.name()] - phase2)
|
||||
)
|
||||
)/2;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,110 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::hyperbolic
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
hyperbolic.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef hyperbolic_H
|
||||
#define hyperbolic_H
|
||||
|
||||
#include "blendingMethod.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class hyperbolic Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class hyperbolic
|
||||
:
|
||||
public blendingMethod
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Maximum fraction of phases which can be considered dispersed
|
||||
HashTable<dimensionedScalar, word, word::hash> maxDispersedAlpha_;
|
||||
|
||||
//- Width of the transition
|
||||
const dimensionedScalar transitionAlphaScale_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("hyperbolic");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and a list of phase names
|
||||
hyperbolic
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
~hyperbolic();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Factor for first phase
|
||||
virtual tmp<volScalarField> f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
|
||||
//- Factor for second phase
|
||||
virtual tmp<volScalarField> f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace blendingMethods
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,170 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "linear.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
defineTypeNameAndDebug(linear, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
blendingMethod,
|
||||
linear,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::linear::linear
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
)
|
||||
:
|
||||
blendingMethod(dict)
|
||||
{
|
||||
forAllConstIter(wordList, phaseNames, iter)
|
||||
{
|
||||
const word nameFull
|
||||
(
|
||||
IOobject::groupName("maxFullyDispersedAlpha", *iter)
|
||||
);
|
||||
|
||||
maxFullyDispersedAlpha_.insert
|
||||
(
|
||||
*iter,
|
||||
dimensionedScalar
|
||||
(
|
||||
nameFull,
|
||||
dimless,
|
||||
dict.lookup(nameFull)
|
||||
)
|
||||
);
|
||||
|
||||
const word namePart
|
||||
(
|
||||
IOobject::groupName("maxPartlyDispersedAlpha", *iter)
|
||||
);
|
||||
|
||||
maxPartlyDispersedAlpha_.insert
|
||||
(
|
||||
*iter,
|
||||
dimensionedScalar
|
||||
(
|
||||
namePart,
|
||||
dimless,
|
||||
dict.lookup(namePart)
|
||||
)
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
maxFullyDispersedAlpha_[*iter]
|
||||
> maxPartlyDispersedAlpha_[*iter]
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"Foam::blendingMethods::linear::linear"
|
||||
"("
|
||||
"const dictionary& dict,"
|
||||
"const wordList& phaseNames"
|
||||
")"
|
||||
) << "The supplied fully dispersed volume fraction for "
|
||||
<< *iter
|
||||
<< " is greater than the partly dispersed value."
|
||||
<< endl << exit(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::linear::~linear()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::linear::f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
const dimensionedScalar
|
||||
maxFullAlpha(maxFullyDispersedAlpha_[phase1.name()]);
|
||||
const dimensionedScalar
|
||||
maxPartAlpha(maxPartlyDispersedAlpha_[phase1.name()]);
|
||||
|
||||
return
|
||||
min
|
||||
(
|
||||
max
|
||||
(
|
||||
(phase1 - maxFullAlpha)
|
||||
/(maxPartAlpha - maxFullAlpha + SMALL),
|
||||
0.0
|
||||
),
|
||||
1.0
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::linear::f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
const dimensionedScalar
|
||||
maxFullAlpha(maxFullyDispersedAlpha_[phase2.name()]);
|
||||
const dimensionedScalar
|
||||
maxPartAlpha(maxPartlyDispersedAlpha_[phase2.name()]);
|
||||
|
||||
return
|
||||
min
|
||||
(
|
||||
max
|
||||
(
|
||||
(maxPartAlpha - phase2)
|
||||
/(maxPartAlpha - maxFullAlpha + SMALL),
|
||||
0.0
|
||||
),
|
||||
1.0
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,112 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::linear
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
linear.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef linear_H
|
||||
#define linear_H
|
||||
|
||||
#include "blendingMethod.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class linear Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class linear
|
||||
:
|
||||
public blendingMethod
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Maximum fraction of phases which can be considered fully dispersed
|
||||
HashTable<dimensionedScalar, word, word::hash>
|
||||
maxFullyDispersedAlpha_;
|
||||
|
||||
//- Maximum fraction of phases which can be considered partly dispersed
|
||||
HashTable<dimensionedScalar, word, word::hash>
|
||||
maxPartlyDispersedAlpha_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("linear");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and two phases
|
||||
linear
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
~linear();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Factor for primary phase
|
||||
virtual tmp<volScalarField> f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
|
||||
//- Factor for secondary phase
|
||||
virtual tmp<volScalarField> f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace blendingMethods
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,108 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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 "noBlending.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
defineTypeNameAndDebug(noBlending, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
blendingMethod,
|
||||
noBlending,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::noBlending::noBlending
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
)
|
||||
:
|
||||
blendingMethod(dict),
|
||||
continuousPhase_(dict.lookup("continuousPhase"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::blendingMethods::noBlending::~noBlending()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::noBlending::f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
const fvMesh& mesh(phase1.mesh());
|
||||
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"f",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar
|
||||
(
|
||||
"f",
|
||||
dimless,
|
||||
phase1.name() == continuousPhase_
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::blendingMethods::noBlending::f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const
|
||||
{
|
||||
return f1(phase1, phase2);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,107 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2014 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::noBlending
|
||||
|
||||
Description
|
||||
|
||||
SourceFiles
|
||||
noBlending.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef noBlending_H
|
||||
#define noBlending_H
|
||||
|
||||
#include "blendingMethod.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace blendingMethods
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class noBlending Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class noBlending
|
||||
:
|
||||
public blendingMethod
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Name of the continuous phase
|
||||
const word continuousPhase_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from a dictionary and two phases
|
||||
noBlending
|
||||
(
|
||||
const dictionary& dict,
|
||||
const wordList& phaseNames
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
~noBlending();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Factor for primary phase
|
||||
virtual tmp<volScalarField> f1
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
|
||||
//- Factor for secondary phase
|
||||
virtual tmp<volScalarField> f2
|
||||
(
|
||||
const phaseModel& phase1,
|
||||
const phaseModel& phase2
|
||||
) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace blendingMethods
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user