The open source CFD toolbox
constantDrift.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2017-2018 OpenFOAM Foundation
9-------------------------------------------------------------------------------
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "constantDrift.H"
29#include "phaseSystem.H"
31
32// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33
34namespace Foam
35{
36namespace diameterModels
37{
38namespace driftModels
39{
42}
43}
44}
45
46
47// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
48
50(
51 const populationBalanceModel& popBal,
52 const dictionary& dict
53)
54:
55 driftModel(popBal, dict),
56 N_
57 (
59 (
60 "N",
61 popBal.mesh().time().timeName(),
62 popBal.mesh()
63 ),
64 popBal.mesh(),
65 dimensionedScalar("zero", inv(dimVolume), Zero)
66 )
67{}
68
69
70// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
71
73{
74 N_ *= 0.0;
75
76 forAll(popBal_.sizeGroups(), i)
77 {
78 const sizeGroup& fi = popBal_.sizeGroups()[i];
79
80 N_ += fi*fi.phase()/fi.x();
81 }
82}
83
84
86(
87 volScalarField& driftRate,
88 const label i
89)
90{
91 const sizeGroup& fi = popBal_.sizeGroups()[i];
92 phaseModel& phase = const_cast<phaseModel&>(fi.phase());
93 volScalarField& rho = phase.thermoRef().rho();
94
95 driftRate += (popBal_.fluid().fvOptions()(phase, rho)&rho)/(N_*rho);
96}
97
98
99// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
Add to construction table with typeName as the key.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition: IOobject.H:170
Base class for drift models.
Definition: driftModel.H:53
Constant drift rate within all classes. Used for verification and validation of the drift formulation...
Definition: constantDrift.H:60
virtual void correct()
Correct diameter independent expressions.
Definition: constantDrift.C:72
virtual void addToDriftRate(volScalarField &driftRate, const label i)
Definition: constantDrift.C:86
Class that solves the univariate population balance equation by means of a class method (also called ...
This class represents a single sizeGroup belonging to a velocityGroup. The main property of a sizeGro...
Definition: sizeGroup.H:99
const dimensionedScalar & x() const
Return representative volume of the sizeGroup.
Definition: sizeGroupI.H:59
const phaseModel & phase() const
Return const-reference to the phase.
Definition: sizeGroupI.H:38
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phaseModel.H:61
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phase.H:57
const dimensionedScalar & rho() const
Definition: phase.H:140
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
dynamicFvMesh & mesh
word timeName
Definition: getTimeIndex.H:3
Namespace for OpenFOAM.
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
const dimensionSet dimVolume(pow3(dimLength))
Definition: dimensionSets.H:60
dictionary dict
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:333