This change adds representation of the shape of a dispersed phase. A
layer has been added to model the relationship between the
characteristic volume of a sizeGroup and its physical diameter.
Previously this relationship was represented by a constant form factor.
Currently, two shape models are available:
- spherical
- fractal (for modelling fractal agglomerates)
The latter introduces the average surface area to volume ratio, kappa,
of the entities in a size group as a secondary field-dependent internal
variable to the population balance equation, which makes the population
balance approach "quasi-"bivariate. From kappa and a constant mass
fractal dimension, a collisional diameter can be derived which affects
the coagulation rates computed by the following models:
- ballisticCollisions
- brownianCollisions
- DahnekeInterpolation
- turbulentShear
The fractal shape modelling also takes into account the effect of sintering
of primary particles on the surface area of the aggregate.
Further additions/changes:
- Time scale filtering for handling large drag and heat transfer
coefficients occurring for particles in the nanometre range
- Aerosol drag model based on Stokes drag with a Knudsen number based
correction (Cunningham correction)
- Reaction driven nucleation
- A complete redesign of the sizeDistribution functionObject
The functionality is demonstrated by a tutorial case simulating the
vapour phase synthesis of titania by titanium tetrachloride oxidation.
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden -
Rossendorf (HZDR) and VTT Technical Research Centre of Finland Ltd.
72 lines
1.5 KiB
C++
72 lines
1.5 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration | Website: https://openfoam.org
|
|
\\ / A nd | Version: dev
|
|
\\/ M anipulation |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
location "system";
|
|
object controlDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
application reactingMultiphaseEulerFoam;
|
|
|
|
startFrom startTime;
|
|
|
|
startTime 0;
|
|
|
|
stopAt endTime;
|
|
|
|
endTime 10;
|
|
|
|
deltaT 0.1;
|
|
|
|
writeControl runTime;
|
|
|
|
writeInterval 10;
|
|
|
|
purgeWrite 0;
|
|
|
|
writeFormat ascii;
|
|
|
|
writePrecision 6;
|
|
|
|
writeCompression uncompressed;
|
|
|
|
timeFormat general;
|
|
|
|
timePrecision 6;
|
|
|
|
runTimeModifiable yes;
|
|
|
|
adjustTimeStep no;
|
|
|
|
maxCo 0.5;
|
|
|
|
maxDeltaT 1;
|
|
|
|
functions
|
|
{
|
|
numberDensity
|
|
{
|
|
type sizeDistribution;
|
|
functionObjectLibs ("libreactingEulerFoamFunctionObjects.so");
|
|
|
|
writeControl outputTime;
|
|
writeInterval 1;
|
|
|
|
populationBalance bubbles;
|
|
functionType number;
|
|
coordinateType volume;
|
|
densityFunction yes;
|
|
}
|
|
}
|
|
|
|
// ************************************************************************* //
|