Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev

This commit is contained in:
Henry Weller
2022-05-11 21:28:42 +01:00
31 changed files with 1594 additions and 0 deletions

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object T.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object T.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volVectorField;
object U.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0.5 0);
}
outlet
{
type zeroGradient;
}
walls
{
type slip;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volVectorField;
object U.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0.5 0);
}
outlet
{
type zeroGradient;
}
walls
{
type noSlip;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object alpha.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1e-3;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object alpha.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.999;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object alphat.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
walls
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object alphat.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
walls
{
type compressible::alphatWallFunction;
Prt 0.85;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object epsilon.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.00136;
boundaryField
{
inlet
{
type turbulentMixingLengthDissipationRateInlet;
mixingLength 0.02;
k k.water;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type epsilonWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object f.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object k.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.00081;
boundaryField
{
inlet
{
type turbulentIntensityKineticEnergyInlet;
U U.water;
intensity 0.05;
value $internalField;
}
outlet
{
type zeroGradient;
}
walls
{
type kqRWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object nut.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
walls
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object nut.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
walls
{
type nutkWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
inlet
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
walls
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
inlet
{
type fixedFluxPressure;
value $internalField;
}
outlet
{
type prghPressure;
p $internalField;
value $internalField;
}
walls
{
type fixedFluxPressure;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Source clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -f *.eps
#------------------------------------------------------------------------------

View File

@ -0,0 +1,28 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Source run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Mesh
runApplication blockMesh
runApplication topoSet
# Run
runApplication decomposePar
runParallel $(getApplication)
runApplication reconstructPar -latestTime
# Post-process
runApplication postProcess -func "
graphLayerAverage
(
funcName=graphCrossSection,
patches=(inlet),
axis=distance,
d.particles
)
" -latestTime
cd validation && ./createGraphs
#------------------------------------------------------------------------------

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -9.81);
// ************************************************************************* //

View File

@ -0,0 +1,35 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object momentumTransport.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
model phasePressure;
turbulence on;
printCoeffs on;
phasePressureCoeffs
{
preAlphaExp 500;
expMax 1000;
alphaMax 0.62;
g0 1000;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,27 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object momentumTransport.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
model RNGkEpsilon;
turbulence on;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -0,0 +1,179 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type populationBalanceMultiphaseSystem;
phases (particles water);
populationBalances (agglomerates);
particles
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance agglomerates;
shapeModel spherical;
sizeGroups
(
f1 {dSph 1e-6; value 0;}
f2 {dSph 1.21e-6; value 0.000;}
f3 {dSph 1.463e-6; value 0.0001;}
f4 {dSph 1.77e-6; value 0.0002;}
f5 {dSph 2.142e-6; value 0.0004;}
f6 {dSph 2.591e-6; value 0.0008;}
f7 {dSph 3.134e-6; value 0.0015;}
f8 {dSph 3.792e-6; value 0.0025;}
f9 {dSph 4.587e-6; value 0.004;}
f10 {dSph 5.549e-6; value 0.0062;}
f11 {dSph 6.71e-6; value 0.0093;}
f12 {dSph 8.12e-6; value 0.0137;}
f13 {dSph 9.82e-6; value 0.0198;}
f14 {dSph 11.88e-6; value 0.0279;}
f15 {dSph 14.38e-6; value 0.0383;}
f16 {dSph 17.39e-6; value 0.0512;}
f17 {dSph 21.04e-6; value 0.0663;}
f18 {dSph 25.45e-6; value 0.0829;}
f19 {dSph 30.79e-6; value 0.0991;}
f20 {dSph 37.24e-6; value 0.1121;}
f21 {dSph 45.06e-6; value 0.1183;}
f22 {dSph 54.51e-6; value 0.1141;}
f23 {dSph 65.94e-6; value 0.0977;}
f24 {dSph 79.77e-6; value 0.0712;}
f25 {dSph 96.49e-6; value 0.0412;}
f26 {dSph 116.7e-6; value 0.0170;}
f27 {dSph 141.2e-6; value 0.004;}
f28 {dSph 170.8e-6; value 0.0002;}
f29 {dSph 206.7e-6; value 0;}
f30 {dSph 250e-6; value 0;}
);
}
residualAlpha 1e-8;
}
water
{
type pureIsothermalPhaseModel;
diameterModel none;
residualAlpha 1e-8;
}
populationBalanceCoeffs
{
agglomerates
{
continuousPhase water;
coalescenceModels
(
AdachiStuartFokkink{}
);
binaryBreakupModels
();
breakupModels
(
Kusters
{
daughterSizeDistributionModel Laakkonen;
C4 2;
B 50e-7;
dP 250e-9;
Df 2.4;
}
);
driftModels
();
nucleationModels
();
}
}
blending
{
default
{
type continuous;
phase water;
}
}
surfaceTension
{}
aspectRatio
{}
interfaceCompression
{}
drag
{
particles_dispersedIn_water
{
type WenYu;
residualRe 1e-3;
}
}
virtualMass
{
particles_dispersedIn_water
{
type constantCoefficient;
Cvm 0.5;
}
}
heatTransfer
{}
phaseTransfer
{}
lift
{
particles_dispersedIn_water
{
type SaffmanMei;
residualRe 1e-6;
}
}
wallLubrication
{}
turbulentDispersion
{
particles_dispersedIn_water
{
type Burns;
residualRe 1e-3;
sigma 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object physicalProperties.particles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 14;
}
equationOfState
{
rho 1400;
}
thermodynamics
{
Cp 1000;
Hf 0;
}
transport
{
mu 0;
Pr 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object physicalProperties.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 18;
}
equationOfState
{
rho 997;
};
thermodynamics
{
Cp 4181;
Hf 0;
}
transport
{
mu 8.9e-4;
Pr 6.127;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,183 @@
/*--------------------------------*- 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;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1e-3;
geometry
{
torus
{
type triSurfaceMesh;
file "torus.obj";
}
}
vertices
(
(-9.9 0 9.9)
(-14.14 0 14.14)
(14.14 0 14.14)
(9.9 0 9.9)
(9.9 0 -9.9)
(14.14 0 -14.14)
(-14.14 0 -14.14)
(-9.9 0 -9.9)
(-9.9 400 9.9)
(-14.14 400 14.14)
(14.14 400 14.14)
(9.9 400 9.9)
(9.9 400 -9.9)
(14.14 400 -14.14)
(-14.14 400 -14.14)
(-9.9 400 -9.9)
(-9.9 450.1 60)
(-14.14 445.86 60)
(14.14 445.86 60)
(9.9 450.1 60)
(9.9 469.9 60)
(14.14 474.14 60)
(-14.14 474.14 60)
(-9.9 469.9 60)
(-9.9 450.1 460)
(-14.14 445.86 460)
(14.14 445.86 460)
(9.9 450.1 460)
(9.9 469.9 460)
(14.14 474.14 460)
(-14.14 474.14 460)
(-9.9 469.9 460)
);
blocks
(
hex (0 1 2 3 8 9 10 11) (8 12 100) simpleGrading (0.35 1 1)
hex (3 2 5 4 11 10 13 12) (8 12 100) simpleGrading (0.35 1 1)
hex (4 5 6 7 12 13 14 15) (8 12 100) simpleGrading (0.35 1 1)
hex (7 6 1 0 15 14 9 8) (8 12 100) simpleGrading (0.35 1 1)
hex (0 3 4 7 8 11 12 15) (12 12 100) simpleGrading (1 1 1)
hex (8 9 10 11 16 17 18 19) (8 12 23) simpleGrading (0.35 1 1)
hex (11 10 13 12 19 18 21 20) (8 12 23) simpleGrading (0.35 1 1)
hex (12 13 14 15 20 21 22 23) (8 12 23) simpleGrading (0.35 1 1)
hex (15 14 9 8 23 22 17 16) (8 12 23) simpleGrading (0.35 1 1)
hex (8 11 12 15 16 19 20 23) (12 12 23) simpleGrading (1 1 1)
hex (16 17 18 19 24 25 26 27) (8 12 100) simpleGrading (0.35 1 1)
hex (19 18 21 20 27 26 29 28) (8 12 100) simpleGrading (0.35 1 1)
hex (20 21 22 23 28 29 30 31) (8 12 100) simpleGrading (0.35 1 1)
hex (23 22 17 16 31 30 25 24) (8 12 100) simpleGrading (0.35 1 1)
hex (16 19 20 23 24 27 28 31) (12 12 100) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0 0 20)
arc 2 5 (20 0 0)
arc 5 6 (0 0 -20)
arc 6 1 (-20 0 0)
arc 0 3 (0 0 11.23)
arc 3 4 (11.23 0 0)
arc 4 7 (0 0 -11.23)
arc 7 0 (-11.23 0 0)
arc 9 10 (0 400 20)
arc 10 13 (20 400 0)
arc 13 14 (0 400 -20)
arc 14 9 (-20 400 0)
arc 8 11 (0 400 11.23)
arc 11 12 (11.23 400 0)
arc 12 15 (0 400 -11.23)
arc 15 8 (-11.23 400 0)
arc 17 18 (0 440 60)
arc 18 21 (20 460 60)
arc 21 22 (0 480 60)
arc 22 17 (-20 460 60)
arc 16 19 (0 448.77 60)
arc 19 20 (11.23 460 60)
arc 20 23 (0 471.23 60)
arc 23 16 (-11.23 460 60)
arc 25 26 (0 440 460)
arc 26 29 (20 460 460)
arc 29 30 (0 480 460)
arc 30 25 (-20 460 460)
arc 24 27 (0 448.77 460)
arc 27 28 (11.23 460 460)
arc 28 31 (0 471.23 460)
arc 31 24 (-11.23 460 460)
arc 9 17 (-14.14 432.428 27.572)
arc 10 18 (14.14 432.428 27.572)
arc 13 21 (14.14 452.425 7.572)
arc 14 22 (-14.14 452.425 7.572)
arc 8 16 (-9.9 435.426 24.574)
arc 11 19 (9.9 435.426 24.574)
arc 12 20 (9.9 449.427 10.573)
arc 15 23 (-9.9 449.427 10.573)
);
faces
(
project (9 10 18 17) torus
project (10 13 21 18) torus
project (13 14 22 21) torus
project (14 9 17 22) torus
);
boundary
(
inlet
{
type pacth;
faces
(
(0 1 2 3)
(3 2 5 4)
(4 5 6 7)
(7 6 1 0)
(0 3 4 7)
);
}
outlet
{
type patch;
faces
(
(24 25 26 27)
(27 26 29 28)
(28 29 30 31)
(31 30 25 24)
(24 27 28 31)
);
}
walls
{
type wall;
faces
(
(1 9 10 2)
(2 10 13 5)
(5 13 14 6)
(6 14 9 1)
(9 17 18 10)
(10 18 21 13)
(13 21 22 14)
(14 22 17 9)
(17 25 26 18)
(18 26 29 21)
(21 29 30 22)
(22 30 25 17)
);
}
);
mergePatchPairs
();

View File

@ -0,0 +1,102 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application multiphaseEulerFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 2;
deltaT 0.003;
writeControl adjustableRunTime;
writeInterval 0.1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 1;
maxDeltaT 1;
functions
{
#includeFunc writeObjects(d.particles)
#includeFunc sizeDistribution
(
populationBalance=agglomerates,
regionType=cellZone,
name=afterBend_1d,
functionType=volumeDensity,
coordinateType=diameter,
normalise=yes,
funcName=probabilityDensity.afterBend_1d
)
#includeFunc sizeDistribution
(
populationBalance=agglomerates,
regionType=cellZone,
name=afterBend_5d,
functionType=volumeDensity,
coordinateType=diameter,
normalise=yes,
funcName=probabilityDensity.afterBend_5d
)
#includeFunc sizeDistribution
(
populationBalance=agglomerates,
regionType=cellZone,
name=afterBend_9d,
functionType=volumeDensity,
coordinateType=diameter,
normalise=yes,
funcName=probabilityDensity.afterBend_9d
)
#includeFunc sizeDistribution
(
populationBalance=agglomerates,
regionType=cellZone,
name=beforeBend_1d,
functionType=volumeDensity,
coordinateType=diameter,
normalise=yes,
funcName=probabilityDensity.beforeBend_1d
)
}
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 6;
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,69 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
"div\(phi,alpha.*\)" Gauss vanLeer;
"div\(phir,alpha.*\)" Gauss vanLeer;
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaPhi.*,f.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e|k|epsilon).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
div(alphaRhoPhi.water,(p|thermo:rho.water)) Gauss limitedLinear 1;
div((((alpha.water*thermo:rho.water)*nuEff.water)*dev2(T(grad(U.water))))) Gauss linear;
div((((thermo:rho.particles*nut.particles)*dev2(T(grad(U.particles))))+(((thermo:rho.particles*lambda.particles)*div(phi.particles))*I))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //

View File

@ -0,0 +1,94 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
implicitPhasePressure yes;
solver PBiCGStab;
preconditioner DIC;
tolerance 1e-9;
relTol 0;
minIter 1;
}
p_rgh
{
solver GAMG;
smoother DIC;
tolerance 1e-8;
relTol 0.01;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"(h|e).*"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-6;
relTol 0;
minIter 1;
maxIter 10;
}
"(k|epsilon).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-5;
relTol 0;
minIter 1;
}
"f.*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
agglomerates
{
nCorr 1;
tolerance 1e-4;
scale true;
solveOnFinalIterOnly true;
sourceUpdateInterval 1;
}
}
PIMPLE
{
nOuterCorrectors 3;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
alphaSpreadMin 5e-4;
alphaSpreadMax 0.9995;
}
relaxationFactors
{}
// ************************************************************************* //

View File

@ -0,0 +1,77 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name beforeBend_1d;
type cellSet;
action new;
source boxToCell;
box (-0.03 0.35 -0.03) (0.03 0.37 0.03);
}
{
name afterBend_1d;
type cellSet;
action new;
source boxToCell;
box (-0.03 0.43 0.09) (0.03 0.48 0.11);
}
{
name afterBend_5d;
type cellSet;
action new;
source boxToCell;
box (-0.03 0.43 0.25) (0.03 0.48 0.27);
}
{
name afterBend_9d;
type cellSet;
action new;
source boxToCell;
box (-0.03 0.43 0.41) (0.03 0.48 0.43);
}
{
name beforeBend_1d;
type cellZoneSet;
action new;
source setToCellZone;
set beforeBend_1d;
}
{
name afterBend_1d;
type cellZoneSet;
action new;
source setToCellZone;
set afterBend_1d;
}
{
name afterBend_5d;
type cellZoneSet;
action new;
source setToCellZone;
set afterBend_5d;
}
{
name afterBend_9d;
type cellZoneSet;
action new;
source setToCellZone;
set afterBend_9d;
}
);
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
#!/bin/sh
if ! which gnuplot > /dev/null 2>&1
then
echo 'gnuplot not found - skipping graph creation' >&2
exit 1
fi
time=$(foamListTimes -case .. -latestTime)
beforeBend=../postProcessing/probabilityDensity.beforeBend_1d/$time/probabilityDensity.beforeBend_1d.xy
afterBend1D=../postProcessing/probabilityDensity.afterBend_1d/$time/probabilityDensity.afterBend_1d.xy
afterBend3D=../postProcessing/probabilityDensity.afterBend_3d/$time/probabilityDensity.afterBend_3d.xy
afterBend5D=../postProcessing/probabilityDensity.afterBend_5d/$time/probabilityDensity.afterBend_5d.xy
afterBend7D=../postProcessing/probabilityDensity.afterBend_7d/$time/probabilityDensity.afterBend_7d.xy
afterBend9D=../postProcessing/probabilityDensity.afterBend_9d/$time/probabilityDensity.afterBend_9d.xy
layerAverage=../postProcessing/graphCrossSection/$time/layerAverage.xy
gnuplot<<EOF
set terminal postscript eps color enhanced font "Helvetica,20"
set output '../volumeDensity.eps'
set logscale x
set xlabel 'd ({/Symbol m}m)'
set ylabel '({/Symbol a}/{/Symbol a}_{tot})/{/Symbol D}d (mm^{-1})'
set key left top
set grid
plot "$beforeBend" u (\$1*1e6):(\$2) w histeps lw 3 lc rgb 'web-green' t 'Before bend',\
"$afterBend1D" u (\$1*1e6):(\$2) w histeps lw 3 lc rgb 'red' t 'After bend: 1D',\
"$afterBend5D" u (\$1*1e6):(\$2) w histeps lw 3 lc rgb 'orange' t 'After bend: 5D',\
"$afterBend9D" u (\$1*1e6):(\$2) w histeps lw 3 lc rgb 'blue' t 'After bend: 9D'
EOF
gnuplot<<EOF
set terminal postscript eps color enhanced font "Helvetica,20"
set output '../crossSectionAverageDiameter.eps'
set xlabel 'Distance along pipe (m)'
set ylabel 'Cross-section average particle diameter ({/Symbol m}m)'
set key left top
set grid
plot "$layerAverage" u (\$1):(\$2*1e6) w histeps lw 3 lc rgb 'web-green' t ''
EOF
#------------------------------------------------------------------------------