LaakkonenAlopaeusAittamaaDsd.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) 2018 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
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
30#include "breakupModel.H"
31
32// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33
34namespace Foam
35{
36namespace diameterModels
37{
38namespace daughterSizeDistributionModels
39{
42 (
46 );
47}
48}
49}
50
51
52// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
53
54Foam::diameterModels::daughterSizeDistributionModels::
55LaakkonenAlopaeusAittamaaDsd::LaakkonenAlopaeusAittamaaDsd
56(
57 const breakupModel& breakup,
58 const dictionary& dict
59)
60:
62{}
63
64
65// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
66
69{}
70
71
72// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
73
77(
78 const label i,
79 const label k
80) const
81{
82 const dimensionedScalar& xi = breakup_.popBal().sizeGroups()[i].x();
83 const dimensionedScalar& xk = breakup_.popBal().sizeGroups()[k].x();
84 const UPtrList<sizeGroup>& sizeGroups = breakup_.popBal().sizeGroups();
85
86 if (i == 0)
87 {
88 const dimensionedScalar& xii = sizeGroups[i+1].x();
89
90 return
91 (
92 5.0*pow4(xii)*sqr(xk) - 12.0*pow5(xi)*xii + 10.0*pow6(xi)
93 - (20.0*pow3(xi)*xii - 15.0*pow4(xi))*sqr(xk) - 6.0*pow5(xii)*xk
94 - (24*pow5(xi) - 30*pow4(xi)*xii)*xk + 2*pow6(xii)
95 )
96 /((xii - xi)*pow5(xk));
97 }
98 else if (i == k)
99 {
100 const dimensionedScalar& x = sizeGroups[i-1].x();
101
102 return
103 (
104 (15.0*pow4(xi) - 20.0*x*pow3(xi))*sqr(xk)
105 + 5.0*pow4(x)*sqr(xk) + (30.0*x*pow4(xi) - 24.0*pow5(xi))*xk
106 - 6.0*pow5(x)*xk + 10.0*pow6(xi) - 12.0*x*pow5(xi) + 2.0*pow6(x)
107 )
108 /((xi - x)*pow5(xk));
109 }
110 else
111 {
112 const dimensionedScalar& x = sizeGroups[i-1].x();
113 const dimensionedScalar& xii = sizeGroups[i+1].x();
114
115 return
116 (
117 5.0*pow4(xii)*sqr(xk) - 12.0*pow5(xi)*xii + 10.0*pow6(xi)
118 - (20.0*pow3(xi)*xii - 15.0*pow4(xi))*sqr(xk) - 6.0*pow5(xii)*xk
119 - (24*pow5(xi) - 30*pow4(xi)*xii)*xk + 2*pow6(xii)
120 )
121 /((xii - xi)*pow5(xk))
122 + (
123 (15.0*pow4(xi) - 20.0*x*pow3(xi))*sqr(xk)
124 + 5.0*pow4(x)*sqr(xk) + (30.0*x*pow4(xi) - 24.0*pow5(xi))*xk
125 - 6.0*pow5(x)*xk + 10.0*pow6(xi) - 12.0*x*pow5(xi) + 2.0*pow6(x)
126 )
127 /((xi - x)*pow5(xk));
128 }
129}
130
131
132// ************************************************************************* //
label k
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
Definition: UPtrList.H:71
Base class for breakup models which give a total breakup rate and a separate daughter size distributi...
Definition: breakupModel.H:56
Base class for daughter size distribution models.
Daughter size distribution model used by Laakkonen et al. (2006). Note that it must be multiplied by ...
virtual dimensionedScalar calcNik(const label i, const label k) const
Return total number of particles assigned to class i when a particle.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
Namespace for OpenFOAM.
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar pow5(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensionedScalar pow4(const dimensionedScalar &ds)
dictionary dict