multiphaseEulerFoam: Reinstated two-phase tests

These single-cell tests were previously simulated using the now removed
reactingTwoPhaseEulerFoam.
This commit is contained in:
Will Bainbridge
2020-07-21 12:00:46 +01:00
parent f66bb63896
commit 85c08332ef
118 changed files with 5347 additions and 8 deletions

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object C3H8O.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.5;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object H2O.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.5;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object Ydefault.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object Ydefault.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object air.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.99;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.01;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -rf postProcessing_* postProcessing.eps

View File

@ -0,0 +1,141 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/RunFunctions
gYs="air.gas H2O.gas C3H8O.gas none.gas"
lYs="H2O.liquid C3H8O.liquid none.liquid"
runApplication blockMesh
setInertY()
{
y=${1%.*}
phase=${1#*.}
[ $y != "none" ] && arg="-set $y" || arg="-remove"
foamDictionary -entry inertSpecie $arg constant/thermophysicalProperties.$phase
}
for gY in $gYs
do
setInertY $gY
for lY in $lYs
do
setInertY $lY
runApplication -s ${gY}_${lY} $(getApplication)
mv postProcessing postProcessing_${gY}_$lY
done
done
gnuplot << EOF
set terminal eps enhanced size 5.83,8.27
set output 'postProcessing.eps'
set lmargin at screen 0.15
set rmargin at screen 0.84
gYs = '$gYs'
lYs = '$lYs'
gY0 = word(gYs, 1)
lY0 = word(lYs, 1)
set multiplot layout 6,1
set xlabel "Time (s)"
set ytics nomirror
set y2tics
set ylabel 'Gas volume fraction'
set y2label 'Liquid volume fraction'
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/alpha.gas' w l lc 1 t 'Gas', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/alpha.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/alpha.liquid' w l axes x1y2 lc 2 t 'Liquid', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/alpha.liquid' w l axes x1y2 lc 2 notitle
set ytics mirror
unset y2tics
set ylabel 'Temperature (K)'
unset y2label
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/T.gas' w l lc 1 t 'Gas', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/T.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/T.liquid' w l lc 2 t 'Liquid', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/T.liquid' w l lc 2 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/Tf.gasAndLiquid' w l lc 3 t 'Interface', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/Tf.gasAndLiquid' w l lc 3 notitle
set ytics nomirror
set y2tics
set ylabel "Vapour mass fraction"
set y2label "Air mass fraction"
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/H2O.gas' w l lc 1 t 'H2O', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/H2O.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/C3H8O.gas' w l lc 2 t 'C3H8O', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/C3H8O.gas' w l lc 2 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/air.gas' w l axes x1y2 lc 3 t 'Air', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/air.gas' w l axes x1y2 lc 3 notitle
set ytics mirror
unset y2tics
set ylabel "Liquid mass fraction"
unset y2label
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/H2O.liquid' w l lc 1 t 'H2O', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/H2O.liquid' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/C3H8O.liquid' w l lc 2 t 'C3H8O', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/C3H8O.liquid' w l lc 2 notitle
set ytics nomirror
set y2tics
set ylabel "Mass (kg/m^3)"
set y2label "Energy (J/m^3)"
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dMass.gas' w l lc 1 t 'Gas Mass Change', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dMass.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dMass.liquid' w l lc 2 t 'Liquid Mass Change', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dMass.liquid' w l lc 2 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dEnergy.gas' w l axes x1y2 lc 3 t 'Gas Energy Change', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dEnergy.gas' w l axes x1y2 lc 3 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dEnergy.liquid' w l axes x1y2 lc 4 t 'Liquid Energy Change', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dEnergy.liquid' w l axes x1y2 lc 4 notitle
set ytics nomirror
set y2tics
set ylabel "Mass (kg/m^3)"
set y2label "Energy (J/m^3)"
plot \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dMass' w l lc 1 t 'Mass Error', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dMass' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.lY0.'/plot/0/dEnergy' w l axes x1y2 lc 2 t 'Energy Error', \
for [gY in gYs] for [lY in lYs] \
'postProcessing_'.gY.'_'.lY.'/plot/0/dEnergy' w l axes x1y2 lc 2 notitle
unset multiplot
EOF

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 0);
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,193 @@
/*--------------------------------*- 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 "constant";
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type interfaceCompositionPhaseChangeMultiphaseSystem;
phases (gas liquid);
nInterfaceCorrectors 1;
gas
{
type multiComponentPhaseModel;
diameterModel constant;
d 1e-3;
residualAlpha 1e-6;
Sct 0.7;
}
liquid
{
type multiComponentPhaseModel;
diameterModel constant;
d 5e-4;
residualAlpha 1e-6;
Sct 1;
}
blending
{
default
{
type none;
continuousPhase gas;
}
}
surfaceTension
(
(gas and liquid)
{
type constant;
sigma 0.07;
}
);
aspectRatio
(
(gas in liquid)
{
type constant;
E0 1.0;
}
(liquid in gas)
{
type constant;
E0 1.0;
}
);
drag
(
);
virtualMass
(
);
interfaceComposition.gas
(
(gas and liquid)
{
type nonRandomTwoLiquid;
species (H2O C3H8O);
Le 1.0;
H2O
{
alpha 0.3;
beta 0.0;
interaction
{
type Antoine;
A 6.8284;
B -1283.46;
C 0;
}
type saturated;
species (H2O);
Le 1.0;
saturationPressure
{
type ArdenBuck;
}
}
C3H8O
{
alpha 0.3;
beta 0.0;
interaction
{
type Antoine;
A -1.3115;
B 426.398;
C 0;
}
type saturated;
species (C3H8O);
Le 1.0;
saturationPressure
{
type Antoine;
A 22.7057916;
B -3125.59117503;
C -75.814;
}
}
}
);
interfaceComposition.liquid
(
);
heatTransfer.gas
(
(liquid in gas)
{
type RanzMarshall;
residualAlpha 1e-4;
}
);
heatTransfer.liquid
(
(liquid in gas)
{
type spherical;
residualAlpha 1e-4;
}
);
diffusiveMassTransfer.gas
(
(liquid in gas)
{
type Frossling;
Le 1.0;
}
);
diffusiveMassTransfer.liquid
(
(liquid in gas)
{
type spherical;
Le 1.0;
}
);
phaseTransfer
(
);
lift
(
);
wallLubrication
(
);
turbulentDispersion
(
);
// Minimum allowable pressure
pMin 10000;
// ************************************************************************* //

View File

@ -0,0 +1,101 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture multiComponentMixture;
transport sutherland;
thermo janaf;
equationOfState perfectGas;
specie specie;
energy sensibleInternalEnergy;
}
species
(
air
H2O
C3H8O
);
inertSpecie air;
air
{
specie
{
molWeight 28.9596;
}
thermodynamics
{
Tlow 200;
Thigh 3500;
Tcommon 1000;
highCpCoeffs ( 3.57304 -7.24383e-04 1.67022e-06 -1.26501e-10 -4.20580e-13 -1047.41 3.12431 );
lowCpCoeffs ( 3.09589 1.22835e-03 -4.14267e-07 6.56910e-11 -3.87021e-15 -983.191 5.34161 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
H2O
{
specie
{
molWeight 18.0153;
}
thermodynamics
{
Tlow 200;
Thigh 3500;
Tcommon 1000;
highCpCoeffs ( 3.03399 0.00217692 -1.64073e-07 -9.7042e-11 1.68201e-14 -30004.3 4.96677 );
lowCpCoeffs ( 4.19864 -0.00203643 6.5204e-06 -5.48797e-09 1.77198e-12 -30293.7 -0.849032 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
C3H8O
{
specie
{
molWeight 60.09661;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 8.52377 0.0210371 -7.48398e-06 1.19959e-09 -7.14873e-14 -35070.2 -17.7857 );
lowCpCoeffs ( 5.41878 -0.000575566 8.51215e-05 -1.1106e-07 4.43007e-11 -32836.8 5.29974 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture multiComponentMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
species
(
H2O
C3H8O
);
inertSpecie H2O;
H2O
{
specie
{
molWeight 18.0153;
}
equationOfState
{
rho 1027;
}
thermodynamics
{
Hf -1.5879e+07;
Cv 4195;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
C3H8O
{
specie
{
molWeight 60.09661;
}
equationOfState
{
rho 786;
}
thermodynamics
{
Hf -5.303e+06;
Cv 2680;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 1;
vertices
(
(-1 -1 -1)
(1 -1 -1)
(1 1 -1)
(-1 1 -1)
(-1 -1 1)
(1 -1 1)
(1 1 1)
(-1 1 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
defaultPatch
{
name defaultPatch;
type empty;
}
patches
(
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,145 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
libs ("libutilityFunctionObjects.so");
type coded;
writeControl timeStep;
writeInterval 1;
name continuity;
codeOptions
#{
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
#};
codeInclude
#{
#include "rhoThermo.H"
namespace Foam
{
tmp<volScalarField> ea(const rhoThermo& thermo)
{
tmp<volScalarField> tEa = thermo.he() + thermo.hc();
if (thermo.he().name() == thermo.phasePropertyName("h"))
{
tEa.ref() -= thermo.p()/thermo.rho();
}
return tEa;
}
}
#};
codeRead
#{
volScalarField* dMass =
new volScalarField
(
IOobject("dMass", mesh().time().timeName(), mesh()),
mesh(),
dimensionedScalar(dimMass/dimVolume, 0)
);
volScalarField* dMassGas = new volScalarField("dMass.gas", *dMass);
volScalarField* mass0Gas = new volScalarField("mass0.gas", *dMass);
volScalarField* dMassLiq = new volScalarField("dMass.liquid", *dMass);
volScalarField* mass0Liq = new volScalarField("mass0.liquid", *dMass);
volScalarField* dEnergy =
new volScalarField
(
IOobject("dEnergy", mesh().time().timeName(), mesh()),
mesh(),
dimensionedScalar(dimEnergy/dimVolume, 0)
);
volScalarField* dEnergyLiq = new volScalarField("dEnergy.liquid", *dEnergy);
volScalarField* energy0Liq = new volScalarField("energy0.liquid", *dEnergy);
volScalarField* dEnergyGas = new volScalarField("dEnergy.gas", *dEnergy);
volScalarField* energy0Gas = new volScalarField("energy0.gas", *dEnergy);
const volScalarField& alphaGas =
mesh().lookupObject<volScalarField>("alpha.gas");
const volScalarField& alphaLiq =
mesh().lookupObject<volScalarField>("alpha.liquid");
const rhoThermo& thermoGas =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.gas");
const rhoThermo& thermoLiq =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.liquid");
*mass0Gas = alphaGas*thermoGas.rho();
*mass0Liq = alphaLiq*thermoLiq.rho();
// !!! Note that this is only a valid measure of energy
// conservation because the case is of fixed volume and has no
// kinetic energy
*energy0Gas = alphaGas*thermoGas.rho()*ea(thermoGas);
*energy0Liq = alphaLiq*thermoLiq.rho()*ea(thermoLiq);
dMass->store();
dMassGas->store();
mass0Gas->store();
dMassLiq->store();
mass0Liq->store();
dEnergy->store();
dEnergyGas->store();
energy0Gas->store();
dEnergyLiq->store();
energy0Liq->store();
#};
codeExecute
#{
volScalarField& dMass =
mesh().lookupObjectRef<volScalarField>("dMass");
volScalarField& dMassGas =
mesh().lookupObjectRef<volScalarField>("dMass.gas");
const volScalarField& mass0Gas =
mesh().lookupObject<volScalarField>("mass0.gas");
volScalarField& dMassLiq =
mesh().lookupObjectRef<volScalarField>("dMass.liquid");
const volScalarField& mass0Liq =
mesh().lookupObject<volScalarField>("mass0.liquid");
volScalarField& dEnergy =
mesh().lookupObjectRef<volScalarField>("dEnergy");
volScalarField& dEnergyGas =
mesh().lookupObjectRef<volScalarField>("dEnergy.gas");
const volScalarField& energy0Gas =
mesh().lookupObject<volScalarField>("energy0.gas");
volScalarField& dEnergyLiq =
mesh().lookupObjectRef<volScalarField>("dEnergy.liquid");
const volScalarField& energy0Liq =
mesh().lookupObject<volScalarField>("energy0.liquid");
const volScalarField& alphaGas =
mesh().lookupObject<volScalarField>("alpha.gas");
const volScalarField& alphaLiq =
mesh().lookupObject<volScalarField>("alpha.liquid");
const rhoThermo& thermoGas =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.gas");
const rhoThermo& thermoLiq =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.liquid");
dMassGas = alphaGas*thermoGas.rho() - mass0Gas;
dMassLiq = alphaLiq*thermoLiq.rho() - mass0Liq;
dMass = dMassGas + dMassLiq;
// !!! Note that this is only a valid measure of energy
// conservation because the case is of fixed volume and has no
// kinetic energy
dEnergyGas = alphaGas*thermoGas.rho()*ea(thermoGas) - energy0Gas;
dEnergyLiq = alphaLiq*thermoLiq.rho()*ea(thermoLiq) - energy0Liq;
dEnergy = dEnergyGas + dEnergyLiq;
#};
// ************************************************************************* //

View File

@ -0,0 +1,60 @@
/*--------------------------------*- 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 multiphaseEulerFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.005;
writeControl runTime;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.5;
maxDeltaT 1;
functions
{
#includeFunc continuity
#includeFunc plot
}
// ************************************************************************* //

View File

@ -0,0 +1,62 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
"div\(phi,alpha.*\)" Gauss vanLeer;
"div\(phir,alpha.*\)" Gauss vanLeer;
"div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1;
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
}
p_rgh
{
solver PCG;
preconditioner none;
tolerance 1e-11;
relTol 0.001;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"(U|e|h|Yi).*"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-12;
relTol 0;
minIter 1;
residualAlpha 0;
}
}
PIMPLE
{
nOuterCorrectors 5;
nCorrectors 1;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 1e5;
}
relaxationFactors
{
equations
{
".*" 1;
}
}
// ************************************************************************* //

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 |
\*---------------------------------------------------------------------------*/
libs ("libsampling.so");
type probes;
writeControl timeStep;
writeInterval 1;
fields
(
air.gas
alpha.gas
alpha.liquid
H2O.gas
H2O.liquid
C3H8O.gas
C3H8O.liquid
p
T.gas
T.liquid
Tf.gasAndLiquid
dMass.gas
dMass.liquid
dMass
dEnergy.gas
dEnergy.liquid
dEnergy
);
probeLocations ((0 0 0));
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object Ydefault.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object air.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.99;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.01;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -rf postProcessing_* postProcessing.eps

View File

@ -0,0 +1,161 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/RunFunctions
gYs="air.gas H2O.gas none.gas"
gHes="e.gas h.gas"
lHes="e.liquid h.liquid"
setInertY()
{
y=${1%.*}
phase=${1#*.}
case $y in
none ) arg="-remove";;
* ) arg="-set $y";;
esac
foamDictionary -entry inertSpecie $arg constant/thermophysicalProperties.$phase
}
setThermoAndEnergy()
{
he=${1%.*}
phase=${1#*.}
case $phase in
gas ) thermo="janaf";;
liquid ) thermo="${he}Const";;
* ) exit 1;;
esac
foamDictionary -entry thermoType.thermo -set $thermo \
constant/thermophysicalProperties.$phase
case $he in
e ) energy="sensibleInternalEnergy";;
h ) energy="sensibleEnthalpy";;
* ) exit 1;;
esac
foamDictionary -entry thermoType.energy -set $energy \
constant/thermophysicalProperties.$phase
}
runApplication blockMesh
for gY in $gYs
do
setInertY $gY
for gHe in $gHes
do
setThermoAndEnergy $gHe
for lHe in $lHes
do
setThermoAndEnergy $lHe
runApplication -s ${gY}_${gHe}_${lHe} $(getApplication)
mv postProcessing postProcessing_${gY}_${gHe}_${lHe}
done
done
done
gnuplot << EOF
set terminal eps enhanced size 5.83,8.27
set output 'postProcessing.eps'
set lmargin at screen 0.15
set rmargin at screen 0.84
gYs = '$gYs'
gHes = '$gHes'
lHes = '$lHes'
gY0 = word(gYs, 1)
gHe0 = word(gHes, 1)
lHe0 = word(lHes, 1)
set multiplot layout 5,1
set xlabel "Time (s)"
set ytics nomirror
set y2tics
set ylabel 'Gas volume fraction'
set y2label 'Liquid volume fraction'
plot \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/alpha.gas' w l lc 1 t 'Gas', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/alpha.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/alpha.liquid' w l axes x1y2 lc 2 t 'Liquid', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/alpha.liquid' w l axes x1y2 lc 2 notitle
set ytics mirror
unset y2tics
set ylabel 'Temperature (K)'
unset y2label
plot \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/T.gas' w l lc 1 t 'Gas', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/T.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/T.liquid' w l lc 2 t 'Liquid', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/T.liquid' w l lc 2 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/Tf.gasAndLiquid' w l lc 3 t 'Interface', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/Tf.gasAndLiquid' w l lc 3 notitle
set ytics nomirror
set y2tics
set ylabel "Vapour mass fraction"
set y2label "Air mass fraction"
plot \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/H2O.gas' w l lc 1 t 'H2O', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/H2O.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/air.gas' w l axes x1y2 lc 2 t 'Air', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/air.gas' w l axes x1y2 lc 2 notitle
set ytics nomirror
set y2tics
set ylabel "Mass (kg/m^3)"
set y2label "Energy (J/m^3)"
plot \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dMass.gas' w l lc 1 t 'Gas Mass Change', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dMass.gas' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dMass.liquid' w l lc 2 t 'Liquid Mass Change', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dMass.liquid' w l lc 2 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dEnergy.gas' w l axes x1y2 lc 3 t 'Gas Energy Change', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dEnergy.gas' w l axes x1y2 lc 3 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dEnergy.liquid' w l axes x1y2 lc 4 t 'Liquid Energy Change', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dEnergy.liquid' w l axes x1y2 lc 4 notitle
set ytics nomirror
set y2tics
set ylabel "Mass (kg/m^3)"
set y2label "Energy (J/m^3)"
plot \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dMass' w l lc 1 t 'Mass Error', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dMass' w l lc 1 notitle, \
'postProcessing_'.gY0.'_'.gHe0.'_'.lHe0.'/plot/0/dEnergy' w l axes x1y2 lc 2 t 'Energy Error', \
for [gY in gYs] for [ gHe in gHes ] for [ lHe in lHes ] \
'postProcessing_'.gY.'_'.gHe.'_'.lHe.'/plot/0/dEnergy' w l axes x1y2 lc 2 notitle
unset multiplot
EOF

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 0);
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,150 @@
/*--------------------------------*- 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 "constant";
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type interfaceCompositionPhaseChangeMultiphaseSystem;
phases (gas liquid);
nInterfaceCorrectors 1;
gas
{
type multiComponentPhaseModel;
diameterModel constant;
d 1e-3;
residualAlpha 1e-6;
Sct 0.7;
}
liquid
{
type purePhaseModel;
diameterModel constant;
d 5e-4;
residualAlpha 1e-6;
}
blending
{
default
{
type none;
continuousPhase gas;
}
}
surfaceTension
(
(gas and liquid)
{
type constant;
sigma 0.07;
}
);
aspectRatio
(
(gas in liquid)
{
type constant;
E0 1.0;
}
(liquid in gas)
{
type constant;
E0 1.0;
}
);
drag
(
);
virtualMass
(
);
interfaceComposition.gas
(
(gas and liquid)
{
type saturated;
species ( H2O );
Le 1.0;
saturationPressure
{
type ArdenBuck;
}
}
);
interfaceComposition.liquid
(
);
heatTransfer.gas
(
(liquid in gas)
{
type RanzMarshall;
residualAlpha 1e-4;
}
);
heatTransfer.liquid
(
(liquid in gas)
{
type spherical;
residualAlpha 1e-4;
}
);
diffusiveMassTransfer.gas
(
(liquid in gas)
{
type Frossling;
Le 1.0;
}
);
diffusiveMassTransfer.liquid
(
);
phaseTransfer
(
);
lift
(
);
wallLubrication
(
);
turbulentDispersion
(
);
// Minimum allowable pressure
pMin 10000;
// ************************************************************************* //

View File

@ -0,0 +1,80 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.gas;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture multiComponentMixture;
transport sutherland;
thermo janaf;
equationOfState perfectGas;
specie specie;
energy sensibleInternalEnergy;
}
inertSpecie air;
species
(
air
H2O
);
H2O
{
specie
{
molWeight 18.0153;
}
thermodynamics
{
Tlow 200;
Thigh 3500;
Tcommon 1000;
highCpCoeffs ( 3.03399 0.00217692 -1.64073e-07 -9.7042e-11 1.68201e-14 -30004.3 4.96677 );
lowCpCoeffs ( 4.19864 -0.00203643 6.5204e-06 -5.48797e-09 1.77198e-12 -30293.7 -0.849032 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
air
{
specie
{
molWeight 28.9596;
}
thermodynamics
{
Tlow 200;
Thigh 3500;
Tcommon 1000;
highCpCoeffs ( 3.57304 -7.24383e-04 1.67022e-06 -1.26501e-10 -4.20580e-13 -1047.41 3.12431 );
lowCpCoeffs ( 3.09589 1.22835e-03 -4.14267e-07 6.56910e-11 -3.87021e-15 -983.191 5.34161 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.liquid;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 18.0153;
}
equationOfState
{
rho 1027;
}
thermodynamics
{
Cp 4195;
Cv 4195;
Hf -1.5879e+07;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 1;
vertices
(
(-1 -1 -1)
(1 -1 -1)
(1 1 -1)
(-1 1 -1)
(-1 -1 1)
(1 -1 1)
(1 1 1)
(-1 1 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
defaultPatch
{
name defaultPatch;
type empty;
}
patches
(
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,145 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
libs ("libutilityFunctionObjects.so");
type coded;
writeControl timeStep;
writeInterval 1;
name continuity;
codeOptions
#{
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
#};
codeInclude
#{
#include "rhoThermo.H"
namespace Foam
{
tmp<volScalarField> ea(const rhoThermo& thermo)
{
tmp<volScalarField> tEa = thermo.he() + thermo.hc();
if (thermo.he().name() == thermo.phasePropertyName("h"))
{
tEa.ref() -= thermo.p()/thermo.rho();
}
return tEa;
}
}
#};
codeRead
#{
volScalarField* dMass =
new volScalarField
(
IOobject("dMass", mesh().time().timeName(), mesh()),
mesh(),
dimensionedScalar(dimMass/dimVolume, 0)
);
volScalarField* dMassGas = new volScalarField("dMass.gas", *dMass);
volScalarField* mass0Gas = new volScalarField("mass0.gas", *dMass);
volScalarField* dMassLiq = new volScalarField("dMass.liquid", *dMass);
volScalarField* mass0Liq = new volScalarField("mass0.liquid", *dMass);
volScalarField* dEnergy =
new volScalarField
(
IOobject("dEnergy", mesh().time().timeName(), mesh()),
mesh(),
dimensionedScalar(dimEnergy/dimVolume, 0)
);
volScalarField* dEnergyLiq = new volScalarField("dEnergy.liquid", *dEnergy);
volScalarField* energy0Liq = new volScalarField("energy0.liquid", *dEnergy);
volScalarField* dEnergyGas = new volScalarField("dEnergy.gas", *dEnergy);
volScalarField* energy0Gas = new volScalarField("energy0.gas", *dEnergy);
const volScalarField& alphaGas =
mesh().lookupObject<volScalarField>("alpha.gas");
const volScalarField& alphaLiq =
mesh().lookupObject<volScalarField>("alpha.liquid");
const rhoThermo& thermoGas =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.gas");
const rhoThermo& thermoLiq =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.liquid");
*mass0Gas = alphaGas*thermoGas.rho();
*mass0Liq = alphaLiq*thermoLiq.rho();
// !!! Note that this is only a valid measure of energy
// conservation because the case is of fixed volume and has no
// kinetic energy
*energy0Gas = alphaGas*thermoGas.rho()*ea(thermoGas);
*energy0Liq = alphaLiq*thermoLiq.rho()*ea(thermoLiq);
dMass->store();
dMassGas->store();
mass0Gas->store();
dMassLiq->store();
mass0Liq->store();
dEnergy->store();
dEnergyGas->store();
energy0Gas->store();
dEnergyLiq->store();
energy0Liq->store();
#};
codeExecute
#{
volScalarField& dMass =
mesh().lookupObjectRef<volScalarField>("dMass");
volScalarField& dMassGas =
mesh().lookupObjectRef<volScalarField>("dMass.gas");
const volScalarField& mass0Gas =
mesh().lookupObject<volScalarField>("mass0.gas");
volScalarField& dMassLiq =
mesh().lookupObjectRef<volScalarField>("dMass.liquid");
const volScalarField& mass0Liq =
mesh().lookupObject<volScalarField>("mass0.liquid");
volScalarField& dEnergy =
mesh().lookupObjectRef<volScalarField>("dEnergy");
volScalarField& dEnergyGas =
mesh().lookupObjectRef<volScalarField>("dEnergy.gas");
const volScalarField& energy0Gas =
mesh().lookupObject<volScalarField>("energy0.gas");
volScalarField& dEnergyLiq =
mesh().lookupObjectRef<volScalarField>("dEnergy.liquid");
const volScalarField& energy0Liq =
mesh().lookupObject<volScalarField>("energy0.liquid");
const volScalarField& alphaGas =
mesh().lookupObject<volScalarField>("alpha.gas");
const volScalarField& alphaLiq =
mesh().lookupObject<volScalarField>("alpha.liquid");
const rhoThermo& thermoGas =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.gas");
const rhoThermo& thermoLiq =
mesh().lookupObject<rhoThermo>("thermophysicalProperties.liquid");
dMassGas = alphaGas*thermoGas.rho() - mass0Gas;
dMassLiq = alphaLiq*thermoLiq.rho() - mass0Liq;
dMass = dMassGas + dMassLiq;
// !!! Note that this is only a valid measure of energy
// conservation because the case is of fixed volume and has no
// kinetic energy
dEnergyGas = alphaGas*thermoGas.rho()*ea(thermoGas) - energy0Gas;
dEnergyLiq = alphaLiq*thermoLiq.rho()*ea(thermoLiq) - energy0Liq;
dEnergy = dEnergyGas + dEnergyLiq;
#};
// ************************************************************************* //

View File

@ -0,0 +1,60 @@
/*--------------------------------*- 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 multiphaseEulerFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.005;
writeControl runTime;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.5;
maxDeltaT 1;
functions
{
#includeFunc continuity
#includeFunc plot
}
// ************************************************************************* //

View File

@ -0,0 +1,62 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
"div\(phi,alpha.*\)" Gauss vanLeer;
"div\(phir,alpha.*\)" Gauss vanLeer;
"div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1;
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
}
p_rgh
{
solver PCG;
preconditioner none;
tolerance 1e-11;
relTol 0.001;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"(U|e|h|Yi).*"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-12;
relTol 0;
minIter 1;
residualAlpha 0;
}
}
PIMPLE
{
nOuterCorrectors 5;
nCorrectors 1;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 1e5;
}
relaxationFactors
{
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
libs ("libsampling.so");
type probes;
writeControl timeStep;
writeInterval 1;
fields
(
air.gas
alpha.gas
alpha.liquid
H2O.gas
p
T.gas
T.liquid
Tf.gasAndLiquid
dMass.gas
dMass.liquid
dMass
dEnergy.gas
dEnergy.liquid
dEnergy
);
probeLocations ((0 0 0));
// ************************************************************************* //

View File

@ -1,11 +1,6 @@
The cases contained in this directory can be used for testing the
populationBalanceModel class which is a part of the multiphaseEulerFoam framework.
They represent single-cell setups, i.e. they solve the population balance
equation without spatial transport. The setups already represent the
inhomogeneous case, i.e. the populationBalance is split over multiple
velocityGroups. This can help to identify whether the populationBalance-induced
mass transfer terms are handled correctly. The cases can also be used to study
the influence of certain parameters on the form of the size distribution, before
running a simulation with spatial transport. Further test cases are contained in
test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling
equation without spatial transport. The cases can also be used to study the
influence of certain parameters on the form of the size distribution, before
running a simulation with spatial transport.

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object T.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object T.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 binary;
class volVectorField;
object U.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 binary;
class volVectorField;
object U.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.0751237;
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object f.air.bubbles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -f moments.eps numberDensity.eps

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Set application name
application=$(getApplication)
runApplication blockMesh
runApplication $application
( cd validation && ./createGraphs )
#------------------------------------------------------------------------------

View File

@ -0,0 +1,44 @@
/*--------------------------------*- 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 "constant";
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
options
{
massSource
{
type semiImplicitSource;
selectionMode all;
volumeMode specific;
sources
{
thermo:rho.air
{
explicit 0.024535; // kg/s/m^3
implicit 0;
}
thermo:rho.water
{
explicit -24.535; // kg/s/m^3
implicit 0;
}
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 0);
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,155 @@
/*--------------------------------*- 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 "constant";
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type populationBalanceMultiphaseSystem;
phases (air water);
referencePhase water;
populationBalances (bubbles);
air
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
shapeModel spherical;
sizeGroups
(
f0 {dSph 1.240700982; value 0;}
f1 {dSph 1.302736031; value 0;}
f2 {dSph 1.364771080; value 0;}
f3 {dSph 1.426806129; value 0;}
f4 {dSph 1.488841178; value 0;}
f5 {dSph 1.550876227; value 0.0609671;}
f6 {dSph 1.612911276; value 0.0741729;}
f7 {dSph 1.674946325; value 0.0895739;}
f8 {dSph 1.736981375; value 0.1074333;}
f9 {dSph 1.799016424; value 0.1280343;}
f10{dSph 1.861051473; value 0.151681;}
f11{dSph 1.923086522; value 0.1786995;}
f12{dSph 1.985121571; value 0.209438;}
f13{dSph 2.047156620; value 0;}
f14{dSph 2.109191669; value 0;}
f15{dSph 2.171226718; value 0;}
f16{dSph 2.233261767; value 0;}
f17{dSph 2.295296816; value 0;}
f18{dSph 2.357331865; value 0;}
f19{dSph 2.419366915; value 0;}
f20{dSph 2.481401964; value 0;}
f21{dSph 2.543437013; value 0;}
f22{dSph 2.605472062; value 0;}
f23{dSph 2.667507111; value 0;}
f24{dSph 2.729542160; value 0;}
f25{dSph 2.791577209; value 0;}
f26{dSph 2.853612258; value 0;}
f27{dSph 2.915647307; value 0;}
f28{dSph 2.977682356; value 0;}
f29{dSph 3.039717405; value 0;}
f30{dSph 3.101752454; value 0;}
);
}
residualAlpha 1e-6;
}
water
{
type pureIsothermalPhaseModel;
diameterModel constant;
constantCoeffs
{
d 1e-4;
}
residualAlpha 1e-6;
}
populationBalanceCoeffs
{
bubbles
{
continuousPhase water;
coalescenceModels
();
binaryBreakupModels
();
breakupModels
();
driftModels
(
constant{}
);
nucleationModels
();
}
}
blending
{
default
{
type none;
continuousPhase water;
}
}
surfaceTension
();
interfaceCompression
();
aspectRatio
();
drag
();
virtualMass
();
heatTransfer
();
phaseTransfer
();
lift
();
wallLubrication
();
turbulentDispersion
();
// Minimum allowable pressure
pMin 10000;
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 28.9;
}
equationOfState
{
rho 1;
}
thermodynamics
{
Cv 1007;
Hf 0;
}
transport
{
mu 1.84e-05;
Pr 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 18;
}
equationOfState
{
rho 1000;
}
thermodynamics
{
Cv 4195;
Hf 0;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 1;
vertices
(
(0 0 0 )
(10 0 0 )
(10 10 0 )
(0 10 0 )
(0 0 10)
(10 0 10)
(10 10 10)
(0 10 10)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
patches
(
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,85 @@
/*--------------------------------*- 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 multiphaseEulerFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 6;
deltaT 0.01;
writeControl runTime;
writeInterval 6;
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 ("libmultiphaseEulerFoamFunctionObjects.so");
writeControl outputTime;
writeInterval 1;
populationBalance bubbles;
functionType number;
coordinateType volume;
densityFunction yes;
}
moments
{
type sizeDistribution;
functionObjectLibs ("libmultiphaseEulerFoamFunctionObjects.so");
writeControl runTime;
writeInterval 0.1;
populationBalance bubbles;
functionType moments;
coordinateType volume;
maxOrder 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
"div\(phi,alpha.*)" Gauss vanLeer;
"div\(phir,alpha.*,alpha.*)" Gauss vanLeer;
"div\(phir,alpha.*)" Gauss vanLeer;
"div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1;
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaRhoPhi.*,(k|epsilon|omega|f).*\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 1;
}
bubbles
{
nCorr 1;
tolerance 1e-4;
scale false;
}
p_rgh
{
solver PCG;
preconditioner none;
tolerance 1e-8;
relTol 0;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"f.*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
nOuterCorrectors 2;
nCorrectors 1;
pRefCell 0;
pRefValue 1e5;
}
relaxationFactors
{}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
#!/bin/sh
if ! which gnuplot > /dev/null 2>&1
then
echo 'gnuplot not found - skipping graph creation' >&2
exit 1
fi
gnuplot<<EOF
set terminal postscript eps monochrome
set output '../numberDensity.eps'
set decimalsign '.'
set format xy '%g'
set xtics 1 mirror
set xlabel 'v(m^3)'
set ytics 0.005 mirror
set ylabel 'n(m^{-3}m^{-3})'
set xrange [1:15]
set yrange [0:1.5e-2]
set key top right
plot '<printf "2 0\n2 0.01\n4 0.01\n4 0\n"' w l t 'Initial Condition',\
'<printf "8 0\n8 0.01\n10 0.01\n10 0\n"' w l t '[Kumar J., PhD thesis, Magdeburg, 2006]',\
'../postProcessing/numberDensity/6/numberDensity.dat' u 1:4 w lp t 'air'
set output '../moments.eps'
set format xy '%g'
set xlabel 't(s)'
set ytics 0.5 mirror
set ylabel 'M_j(t)/M_j(t=0)'
set xrange [0:6]
set yrange [0.5:3.5]
set key top left
plot '../postProcessing/moments/0/moments.dat' u 1:(\$2/0.024535) w p pt 5 t 'j=0 (Numbers), air',\
'<printf "0 1\n6 1\n"' w l t 'j=0 (Numbers), [Kumar J., PhD thesis, Magdeburg, 2006]',\
'../postProcessing/moments/0/moments.dat' u 1:(\$3/0.0751237) w p pt 6 t 'j=1 (Volume), air',\
'<printf "0 1\n6 3\n"' w l t 'j=1 (Volume), [Kumar J., PhD thesis, Magdeburg, 2006]'
EOF
#------------------------------------------------------------------------------

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object T.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object T.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 binary;
class volVectorField;
object U.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 binary;
class volVectorField;
object U.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object alpha.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.2325241;
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object f.air.bubbles;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField
{
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -f moments.eps numberDensity.eps

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Set application name
application=$(getApplication)
runApplication blockMesh
runApplication $application
( cd validation && ./createGraphs )
#------------------------------------------------------------------------------

View File

@ -0,0 +1,44 @@
/*--------------------------------*- 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 "constant";
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
options
{
massSource
{
type semiImplicitSource;
selectionMode all;
volumeMode specific;
sources
{
thermo:rho.air
{
explicit -0.0258575; // kg/s/m^3
implicit 0;
}
thermo:rho.water
{
explicit 25.8575; // kg/s/m^3
implicit 0;
}
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 0);
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object momentumTransport.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,149 @@
/*--------------------------------*- 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 "constant";
object phaseProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type populationBalanceMultiphaseSystem;
phases (air water);
referencePhase water;
populationBalances (bubbles);
air
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
shapeModel spherical;
sizeGroups
(
f0 {dSph 1.240700982; value 0;}
f1 {dSph 1.302736031; value 0;}
f2 {dSph 1.364771080; value 0;}
f3 {dSph 1.426806129; value 0;}
f4 {dSph 1.488841178; value 0;}
f5 {dSph 1.550876227; value 0;}
f6 {dSph 1.612911276; value 0;}
f7 {dSph 1.674946325; value 0;}
f8 {dSph 1.736981375; value 0;}
f9 {dSph 1.799016424; value 0;}
f10{dSph 1.861051473; value 0;}
f11{dSph 1.923086522; value 0;}
f12{dSph 1.985121571; value 0;}
f13{dSph 2.047156620; value 0;}
f14{dSph 2.109191669; value 0;}
f15{dSph 2.171226718; value 0;}
f16{dSph 2.233261767; value 0;}
f17{dSph 2.295296816; value 0;}
f18{dSph 2.357331865; value 0;}
f19{dSph 2.419366915; value 0;}
f20{dSph 2.481401964; value 0.2064732;}
f21{dSph 2.543437013; value 0.2336032;}
f22{dSph 2.605472062; value 0.2635129;}
f23{dSph 2.667507111; value 0.2964107;}
f24{dSph 2.729542160; value 0;}
);
}
residualAlpha 1e-6;
}
water
{
type pureIsothermalPhaseModel;
diameterModel constant;
constantCoeffs
{
d 1e-4;
}
residualAlpha 1e-6;
}
populationBalanceCoeffs
{
bubbles
{
continuousPhase water;
coalescenceModels
();
binaryBreakupModels
();
breakupModels
();
driftModels
(
constant{}
);
nucleationModels
();
}
}
blending
{
default
{
type none;
continuousPhase water;
}
}
surfaceTension
();
interfaceCompression
();
aspectRatio
();
drag
();
virtualMass
();
heatTransfer
();
phaseTransfer
();
lift
();
wallLubrication
();
turbulentDispersion
();
// Minimum allowable pressure
pMin 10000;
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 28.9;
}
equationOfState
{
rho 1;
}
thermodynamics
{
Cv 1007;
Hf 0;
}
transport
{
mu 1.84e-05;
Pr 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 "constant";
object thermophysicalProperties.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 18;
}
equationOfState
{
rho 1000;
}
thermodynamics
{
Cv 4195;
Hf 0;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 1;
vertices
(
(0 0 0 )
(10 0 0 )
(10 10 0 )
(0 10 0 )
(0 0 10)
(10 0 10)
(10 10 10)
(0 10 10)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
patches
(
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,85 @@
/*--------------------------------*- 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 multiphaseEulerFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 4;
deltaT 0.01;
writeControl runTime;
writeInterval 4;
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 ("libmultiphaseEulerFoamFunctionObjects.so");
writeControl outputTime;
writeInterval 1;
populationBalance bubbles;
functionType number;
coordinateType volume;
densityFunction yes;
}
moments
{
type sizeDistribution;
functionObjectLibs ("libmultiphaseEulerFoamFunctionObjects.so");
writeControl runTime;
writeInterval 0.1;
populationBalance bubbles;
functionType moments;
coordinateType volume;
maxOrder 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
"div\(phi,alpha.*)" Gauss vanLeer;
"div\(phir,alpha.*,alpha.*)" Gauss vanLeer;
"div\(phir,alpha.*)" Gauss vanLeer;
"div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1;
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
"div\(alphaRhoPhi.*,(k|epsilon|omega|f).*\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
// ************************************************************************* //

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
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.*"
{
nAlphaCorr 1;
nAlphaSubCycles 1;
}
bubbles
{
nCorr 1;
tolerance 1e-4;
scale false;
}
p_rgh
{
solver PCG;
preconditioner none;
tolerance 1e-8;
relTol 0;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"f.*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
nOuterCorrectors 2;
nCorrectors 1;
pRefCell 0;
pRefValue 1e5;
}
relaxationFactors
{}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
#!/bin/sh
if ! which gnuplot > /dev/null 2>&1
then
echo 'gnuplot not found - skipping graph creation' >&2
exit 1
fi
gnuplot<<EOF
set terminal postscript eps monochrome
set output '../numberDensity.eps'
set decimalsign '.'
set format xy '%g'
set xtics 1 mirror
set xlabel 'v(m^3)'
set ytics 0.005 mirror
set ylabel 'n(m^{-3}m^{-3})'
set xrange [1:15]
set yrange [0:1.5e-2]
set key top right
plot '<printf "4 0\n4 0.01\n6 0.01\n6 0\n"' w l t '[Kumar J., PhD thesis, Magdeburg, 2006]',\
'<printf "8 0\n8 0.01\n10 0.01\n10 0\n"' w l t 'Initial Condition',\
'../postProcessing/numberDensity/4/numberDensity.dat' u 1:4 w lp t 'air'
set output '../moments.eps'
set format xy '%g'
set xlabel 't(s)'
set ytics 0.5 mirror
set ylabel 'M_j(t)/M_j(t=0)'
set xrange [0:4]
set yrange [0:1.5]
set key top right
plot '../postProcessing/moments/0/moments.dat' u 1:(\$2/0.0258575) w p pt 5 t 'j=0 (Numbers), air',\
'<printf "0 1\n6 1\n"' w l t 'j=0 (Numbers), [Kumar J., PhD thesis, Magdeburg, 2006]',\
'../postProcessing/moments/0/moments.dat' u 1:(\$3/0.2325241) w p pt 6 t 'j=1 (Volume), air',\
'<printf "0 1\n6 0.33333\n"' w l t 'j=1 (Volume), [Kumar J., PhD thesis, Magdeburg, 2006]'
EOF
#------------------------------------------------------------------------------

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.steam;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 380;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object T.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 380;
boundaryField {}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.steam;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- 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 binary;
class volVectorField;
location "0";
object U.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField {}
// ************************************************************************* //

Some files were not shown because too many files have changed in this diff Show More