fractal.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2019-2025 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::populationBalance::shapeModels::fractal
26 
27 Description
28  Class for modelling the shape of particle aggregates using the concept of
29  fractal geometry. Returns a collisional diameter
30 
31  \f[
32  d_{c_i} =
33  \frac{6}{\kappa_i}
34  \left(
35  \frac{v_i \kappa_i^3}{36 \pi \alpha_c}
36  \right)^{1/D_{f_i}}\,,
37  \f]
38 
39  computed from a constant fractal dimension \f$D_{f_i}\f$ and a
40  field-dependent surface area to volume ratio \f$\kappa_i\f$, assuming that
41  the primary particles in an aggregate have the same size.
42 
43 Usage
44  \table
45  Property | Description | Required | Default value
46  Df | Fractal dimension | yes |
47  alphaC | Scaling prefactor | yes |
48  \endtable
49 
50 See also
51  Foam::populationBalance::shapeModel
52 
53 SourceFiles
54  fractal.C
55 
56 \*---------------------------------------------------------------------------*/
57 
58 #ifndef fractal_H
59 #define fractal_H
60 
61 #include "SecondaryPropertyModel.H"
62 #include "shapeModel.H"
63 
64 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65 
66 namespace Foam
67 {
68 namespace populationBalance
69 {
70 namespace shapeModels
71 {
72 
73 /*---------------------------------------------------------------------------*\
74  Class fractal Declaration
75 \*---------------------------------------------------------------------------*/
76 
77 class fractal
78 :
79  public SecondaryPropertyModel<shapeModel>
80 {
81 private:
82 
83  // Private Data
84 
85  //- Fractal dimension. Function of representative spherical diameter.
86  autoPtr<Function1<scalar>> Df_;
87 
88  //- Scaling pre-factor. Function of representative spherical diameter.
89  autoPtr<Function1<scalar>> alphaC_;
90 
91  //- Groups' ratios of surface area to volume
93 
94  //- Groups' collisional diameters
96 
97  //- Groups' explicit sources
99 
100 
101  // Private Member Functions
102 
103  //- Compute and return the collisional diameter for a group
104  tmp<volScalarField> dColl(const label i) const;
105 
106 
107 public:
108 
109  //- Runtime type information
110  TypeName("fractal");
111 
112 
113  // Constructors
114 
115  //- Construct from a dictionary
116  fractal
117  (
118  const dictionary& dict,
120  );
121 
122  //- Disallow default bitwise copy construction
123  fractal(const fractal&) = delete;
124 
125 
126  //- Destructor
127  virtual ~fractal();
128 
129 
130  // Member Functions
131 
132  // Access
133 
134  //- Return the fractal dimension for a group
135  dimensionedScalar Df(const label i) const;
136 
137  //- Return the scaling prefactor for a group
138  dimensionedScalar alphaC(const label i) const;
139 
140  //- Return a reference to a secondary property field
141  virtual const volScalarField& fld(const label i) const;
142 
143  //- Access a secondary property source
144  virtual volScalarField::Internal& src(const label i);
145 
146  //- Return the representative surface area of a group
147  virtual tmp<volScalarField> a(const label i) const;
148 
149  //- Return the representative diameter of a group
150  virtual tmp<volScalarField> d(const label i) const;
151 
152 
153  // Edit
154 
155  //- Solve equations
156  virtual void solve();
157 
158  //- Correct the shape
159  virtual void correct();
160 
161 
162  // Member Operators
163 
164  //- Disallow default bitwise assignment
165  void operator=(const fractal&) = delete;
166 };
167 
168 
169 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
170 
171 } // End namespace shapeModels
172 } // End namespace populationBalance
173 } // End namespace Foam
174 
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 
177 #endif
178 
179 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricField class.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: PtrList.H:75
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Model for tracking the evolution of a dispersed phase size distribution due to coalescence (synonymou...
const populationBalanceModel & popBal() const
Return reference to the population balance model.
Definition: shapeModel.C:107
Class for modelling the shape of particle aggregates using the concept of fractal geometry....
Definition: fractal.H:94
virtual volScalarField::Internal & src(const label i)
Access a secondary property source.
Definition: fractal.C:190
TypeName("fractal")
Runtime type information.
virtual void correct()
Correct the shape.
Definition: fractal.C:264
dimensionedScalar alphaC(const label i) const
Return the scaling prefactor for a group.
Definition: fractal.C:170
void operator=(const fractal &)=delete
Disallow default bitwise assignment.
fractal(const dictionary &dict, const populationBalanceModel &popBal)
Construct from a dictionary.
Definition: fractal.C:78
dimensionedScalar Df(const label i) const
Return the fractal dimension for a group.
Definition: fractal.C:157
virtual const volScalarField & fld(const label i) const
Return a reference to a secondary property field.
Definition: fractal.C:183
virtual tmp< volScalarField > d(const label i) const
Return the representative diameter of a group.
Definition: fractal.C:282
virtual tmp< volScalarField > a(const label i) const
Return the representative surface area of a group.
Definition: fractal.C:275
virtual void solve()
Solve equations.
Definition: fractal.C:196
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
dictionary dict