diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.particles new file mode 100644 index 0000000000..176c935ea3 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.particles @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.water new file mode 100644 index 0000000000..590a6db11a --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/T.water @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.particles new file mode 100644 index 0000000000..687791c6d3 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.particles @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + object U.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (0 0.5 0); + } + + outlet + { + type zeroGradient; + } + + walls + { + type slip; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.water new file mode 100644 index 0000000000..943e1b0e00 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/U.water @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + object U.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (0 0.5 0); + } + + outlet + { + type zeroGradient; + } + + walls + { + type noSlip; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.particles new file mode 100644 index 0000000000..3c10bf6596 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.particles @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object alpha.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1e-3; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.water new file mode 100644 index 0000000000..97a5dd10fd --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alpha.water @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.999; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.particles new file mode 100644 index 0000000000..ecd9da761b --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.particles @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object alphat.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.water new file mode 100644 index 0000000000..be44a2337f --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/alphat.water @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object alphat.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/epsilon.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/epsilon.water new file mode 100644 index 0000000000..4a92ef6c54 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/epsilon.water @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object epsilon.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.00136; + +boundaryField +{ + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.02; + k k.water; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type epsilonWallFunction; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/f.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/f.particles new file mode 100644 index 0000000000..29059305b7 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/f.particles @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object f.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/k.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/k.water new file mode 100644 index 0000000000..4a82a9d217 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/k.water @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.00081; + +boundaryField +{ + inlet + { + type turbulentIntensityKineticEnergyInlet; + U U.water; + intensity 0.05; + value $internalField; + } + + outlet + { + type zeroGradient; + } + + walls + { + type kqRWallFunction; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.particles new file mode 100644 index 0000000000..ddd5c915e8 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.particles @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.water new file mode 100644 index 0000000000..ba5b510e6f --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/nut.water @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type nutkWallFunction; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p new file mode 100644 index 0000000000..9591791c5e --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type calculated; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p_rgh b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p_rgh new file mode 100644 index 0000000000..e9e4de91e8 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/0/p_rgh @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + value $internalField; + } + + outlet + { + type prghPressure; + p $internalField; + value $internalField; + } + + walls + { + type fixedFluxPressure; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allclean b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allclean new file mode 100755 index 0000000000..e27f3b8dfc --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allclean @@ -0,0 +1,9 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase && rm -f *.eps + +#------------------------------------------------------------------------------ diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allrun b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allrun new file mode 100755 index 0000000000..79e4e3efa6 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/Allrun @@ -0,0 +1,28 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Mesh +runApplication blockMesh +runApplication topoSet + +# Run +runApplication decomposePar +runParallel $(getApplication) +runApplication reconstructPar -latestTime + +# Post-process +runApplication postProcess -func " + graphLayerAverage + ( + funcName=graphCrossSection, + patches=(inlet), + axis=distance, + d.particles + ) + " -latestTime +cd validation && ./createGraphs + +#------------------------------------------------------------------------------ diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/g b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/g new file mode 100644 index 0000000000..d33c71a018 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 0 -9.81); + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/geometry/torus.obj.gz b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/geometry/torus.obj.gz new file mode 100644 index 0000000000..8e177e72cb Binary files /dev/null and b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/geometry/torus.obj.gz differ diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.particles new file mode 100644 index 0000000000..93f019571f --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.particles @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object momentumTransport.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model phasePressure; + + turbulence on; + printCoeffs on; + + phasePressureCoeffs + { + preAlphaExp 500; + expMax 1000; + alphaMax 0.62; + g0 1000; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.water new file mode 100644 index 0000000000..3e47a597b6 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/momentumTransport.water @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object momentumTransport.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model RNGkEpsilon; + + turbulence on; + printCoeffs on; +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/phaseProperties b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/phaseProperties new file mode 100644 index 0000000000..0e6742fe91 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/phaseProperties @@ -0,0 +1,179 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object phaseProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type populationBalanceMultiphaseSystem; + +phases (particles water); + +populationBalances (agglomerates); + +particles +{ + type pureIsothermalPhaseModel; + + diameterModel velocityGroup; + + velocityGroupCoeffs + { + populationBalance agglomerates; + + shapeModel spherical; + + sizeGroups + ( + f1 {dSph 1e-6; value 0;} + f2 {dSph 1.21e-6; value 0.000;} + f3 {dSph 1.463e-6; value 0.0001;} + f4 {dSph 1.77e-6; value 0.0002;} + f5 {dSph 2.142e-6; value 0.0004;} + f6 {dSph 2.591e-6; value 0.0008;} + f7 {dSph 3.134e-6; value 0.0015;} + f8 {dSph 3.792e-6; value 0.0025;} + f9 {dSph 4.587e-6; value 0.004;} + f10 {dSph 5.549e-6; value 0.0062;} + f11 {dSph 6.71e-6; value 0.0093;} + f12 {dSph 8.12e-6; value 0.0137;} + f13 {dSph 9.82e-6; value 0.0198;} + f14 {dSph 11.88e-6; value 0.0279;} + f15 {dSph 14.38e-6; value 0.0383;} + f16 {dSph 17.39e-6; value 0.0512;} + f17 {dSph 21.04e-6; value 0.0663;} + f18 {dSph 25.45e-6; value 0.0829;} + f19 {dSph 30.79e-6; value 0.0991;} + f20 {dSph 37.24e-6; value 0.1121;} + f21 {dSph 45.06e-6; value 0.1183;} + f22 {dSph 54.51e-6; value 0.1141;} + f23 {dSph 65.94e-6; value 0.0977;} + f24 {dSph 79.77e-6; value 0.0712;} + f25 {dSph 96.49e-6; value 0.0412;} + f26 {dSph 116.7e-6; value 0.0170;} + f27 {dSph 141.2e-6; value 0.004;} + f28 {dSph 170.8e-6; value 0.0002;} + f29 {dSph 206.7e-6; value 0;} + f30 {dSph 250e-6; value 0;} + ); + } + + residualAlpha 1e-8; +} + +water +{ + type pureIsothermalPhaseModel; + + diameterModel none; + + residualAlpha 1e-8; +} + +populationBalanceCoeffs +{ + agglomerates + { + continuousPhase water; + + coalescenceModels + ( + AdachiStuartFokkink{} + ); + + binaryBreakupModels + (); + + breakupModels + ( + Kusters + { + daughterSizeDistributionModel Laakkonen; + C4 2; + B 50e-7; + dP 250e-9; + Df 2.4; + } + ); + + driftModels + (); + + nucleationModels + (); + } +} + +blending +{ + default + { + type continuous; + phase water; + } +} + +surfaceTension +{} + +aspectRatio +{} + +interfaceCompression +{} + +drag +{ + particles_dispersedIn_water + { + type WenYu; + residualRe 1e-3; + } +} + +virtualMass +{ + particles_dispersedIn_water + { + type constantCoefficient; + Cvm 0.5; + } +} + +heatTransfer +{} + +phaseTransfer +{} + +lift +{ + particles_dispersedIn_water + { + type SaffmanMei; + residualRe 1e-6; + } +} + +wallLubrication +{} + +turbulentDispersion +{ + particles_dispersedIn_water + { + type Burns; + residualRe 1e-3; + sigma 1; + } +} + +// ************************************************************************* // \ No newline at end of file diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.particles b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.particles new file mode 100644 index 0000000000..1edfb45c23 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.particles @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object physicalProperties.particles; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + molWeight 14; + } + equationOfState + { + rho 1400; + } + thermodynamics + { + Cp 1000; + Hf 0; + } + transport + { + mu 0; + Pr 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.water b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.water new file mode 100644 index 0000000000..b8b0b648b2 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/constant/physicalProperties.water @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object physicalProperties.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + molWeight 18; + } + equationOfState + { + rho 997; + }; + thermodynamics + { + Cp 4181; + Hf 0; + } + transport + { + mu 8.9e-4; + Pr 6.127; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/blockMeshDict b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/blockMeshDict new file mode 100644 index 0000000000..2d36367fd3 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/blockMeshDict @@ -0,0 +1,183 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1e-3; + +geometry +{ + torus + { + type triSurfaceMesh; + file "torus.obj"; + } +} + +vertices +( + (-9.9 0 9.9) + (-14.14 0 14.14) + (14.14 0 14.14) + (9.9 0 9.9) + (9.9 0 -9.9) + (14.14 0 -14.14) + (-14.14 0 -14.14) + (-9.9 0 -9.9) + (-9.9 400 9.9) + (-14.14 400 14.14) + (14.14 400 14.14) + (9.9 400 9.9) + (9.9 400 -9.9) + (14.14 400 -14.14) + (-14.14 400 -14.14) + (-9.9 400 -9.9) + (-9.9 450.1 60) + (-14.14 445.86 60) + (14.14 445.86 60) + (9.9 450.1 60) + (9.9 469.9 60) + (14.14 474.14 60) + (-14.14 474.14 60) + (-9.9 469.9 60) + (-9.9 450.1 460) + (-14.14 445.86 460) + (14.14 445.86 460) + (9.9 450.1 460) + (9.9 469.9 460) + (14.14 474.14 460) + (-14.14 474.14 460) + (-9.9 469.9 460) +); + +blocks +( + hex (0 1 2 3 8 9 10 11) (8 12 100) simpleGrading (0.35 1 1) + hex (3 2 5 4 11 10 13 12) (8 12 100) simpleGrading (0.35 1 1) + hex (4 5 6 7 12 13 14 15) (8 12 100) simpleGrading (0.35 1 1) + hex (7 6 1 0 15 14 9 8) (8 12 100) simpleGrading (0.35 1 1) + hex (0 3 4 7 8 11 12 15) (12 12 100) simpleGrading (1 1 1) + hex (8 9 10 11 16 17 18 19) (8 12 23) simpleGrading (0.35 1 1) + hex (11 10 13 12 19 18 21 20) (8 12 23) simpleGrading (0.35 1 1) + hex (12 13 14 15 20 21 22 23) (8 12 23) simpleGrading (0.35 1 1) + hex (15 14 9 8 23 22 17 16) (8 12 23) simpleGrading (0.35 1 1) + hex (8 11 12 15 16 19 20 23) (12 12 23) simpleGrading (1 1 1) + hex (16 17 18 19 24 25 26 27) (8 12 100) simpleGrading (0.35 1 1) + hex (19 18 21 20 27 26 29 28) (8 12 100) simpleGrading (0.35 1 1) + hex (20 21 22 23 28 29 30 31) (8 12 100) simpleGrading (0.35 1 1) + hex (23 22 17 16 31 30 25 24) (8 12 100) simpleGrading (0.35 1 1) + hex (16 19 20 23 24 27 28 31) (12 12 100) simpleGrading (1 1 1) +); + +edges +( + arc 1 2 (0 0 20) + arc 2 5 (20 0 0) + arc 5 6 (0 0 -20) + arc 6 1 (-20 0 0) + arc 0 3 (0 0 11.23) + arc 3 4 (11.23 0 0) + arc 4 7 (0 0 -11.23) + arc 7 0 (-11.23 0 0) + arc 9 10 (0 400 20) + arc 10 13 (20 400 0) + arc 13 14 (0 400 -20) + arc 14 9 (-20 400 0) + arc 8 11 (0 400 11.23) + arc 11 12 (11.23 400 0) + arc 12 15 (0 400 -11.23) + arc 15 8 (-11.23 400 0) + arc 17 18 (0 440 60) + arc 18 21 (20 460 60) + arc 21 22 (0 480 60) + arc 22 17 (-20 460 60) + arc 16 19 (0 448.77 60) + arc 19 20 (11.23 460 60) + arc 20 23 (0 471.23 60) + arc 23 16 (-11.23 460 60) + arc 25 26 (0 440 460) + arc 26 29 (20 460 460) + arc 29 30 (0 480 460) + arc 30 25 (-20 460 460) + arc 24 27 (0 448.77 460) + arc 27 28 (11.23 460 460) + arc 28 31 (0 471.23 460) + arc 31 24 (-11.23 460 460) + arc 9 17 (-14.14 432.428 27.572) + arc 10 18 (14.14 432.428 27.572) + arc 13 21 (14.14 452.425 7.572) + arc 14 22 (-14.14 452.425 7.572) + arc 8 16 (-9.9 435.426 24.574) + arc 11 19 (9.9 435.426 24.574) + arc 12 20 (9.9 449.427 10.573) + arc 15 23 (-9.9 449.427 10.573) +); + +faces +( + project (9 10 18 17) torus + project (10 13 21 18) torus + project (13 14 22 21) torus + project (14 9 17 22) torus +); + +boundary +( + inlet + { + type pacth; + faces + ( + (0 1 2 3) + (3 2 5 4) + (4 5 6 7) + (7 6 1 0) + (0 3 4 7) + ); + } + outlet + { + type patch; + faces + ( + (24 25 26 27) + (27 26 29 28) + (28 29 30 31) + (31 30 25 24) + (24 27 28 31) + ); + } + walls + { + type wall; + faces + ( + (1 9 10 2) + (2 10 13 5) + (5 13 14 6) + (6 14 9 1) + (9 17 18 10) + (10 18 21 13) + (13 21 22 14) + (14 22 17 9) + (17 25 26 18) + (18 26 29 21) + (21 29 30 22) + (22 30 25 17) + ); + } +); + +mergePatchPairs +(); diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/controlDict b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/controlDict new file mode 100644 index 0000000000..76efd24b93 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/controlDict @@ -0,0 +1,102 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application multiphaseEulerFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 2; + +deltaT 0.003; + +writeControl adjustableRunTime; + +writeInterval 0.1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 1; + +maxDeltaT 1; + +functions +{ + #includeFunc writeObjects(d.particles) + + #includeFunc sizeDistribution + ( + populationBalance=agglomerates, + regionType=cellZone, + name=afterBend_1d, + functionType=volumeDensity, + coordinateType=diameter, + normalise=yes, + funcName=probabilityDensity.afterBend_1d + ) + + #includeFunc sizeDistribution + ( + populationBalance=agglomerates, + regionType=cellZone, + name=afterBend_5d, + functionType=volumeDensity, + coordinateType=diameter, + normalise=yes, + funcName=probabilityDensity.afterBend_5d + ) + + #includeFunc sizeDistribution + ( + populationBalance=agglomerates, + regionType=cellZone, + name=afterBend_9d, + functionType=volumeDensity, + coordinateType=diameter, + normalise=yes, + funcName=probabilityDensity.afterBend_9d + ) + + #includeFunc sizeDistribution + ( + populationBalance=agglomerates, + regionType=cellZone, + name=beforeBend_1d, + functionType=volumeDensity, + coordinateType=diameter, + normalise=yes, + funcName=probabilityDensity.beforeBend_1d + ) +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/decomposeParDict b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/decomposeParDict new file mode 100644 index 0000000000..61e78aad50 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/decomposeParDict @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 6; + +method scotch; + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSchemes b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSchemes new file mode 100644 index 0000000000..8a120a2841 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSchemes @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + "div\(phi,alpha.*\)" Gauss vanLeer; + "div\(phir,alpha.*\)" Gauss vanLeer; + + "div\(phi.*,U.*\)" Gauss limitedLinearV 1; + "div\(alphaRhoPhi.*,U.*\)" Gauss limitedLinearV 1; + + "div\(alphaPhi.*,f.*\)" Gauss limitedLinear 1; + "div\(alphaPhi.*,p\)" Gauss limitedLinear 1; + + "div\(alphaRhoPhi.*,(h|e|k|epsilon).*\)" Gauss limitedLinear 1; + "div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1; + + div(alphaRhoPhi.water,(p|thermo:rho.water)) Gauss limitedLinear 1; + + div((((alpha.water*thermo:rho.water)*nuEff.water)*dev2(T(grad(U.water))))) Gauss linear; + + div((((thermo:rho.particles*nut.particles)*dev2(T(grad(U.particles))))+(((thermo:rho.particles*lambda.particles)*div(phi.particles))*I))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default uncorrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSolution new file mode 100644 index 0000000000..5763c40861 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/fvSolution @@ -0,0 +1,94 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "alpha.*" + { + nAlphaCorr 1; + nAlphaSubCycles 3; + implicitPhasePressure yes; + solver PBiCGStab; + preconditioner DIC; + tolerance 1e-9; + relTol 0; + minIter 1; + } + + p_rgh + { + solver GAMG; + smoother DIC; + tolerance 1e-8; + relTol 0.01; + } + + p_rghFinal + { + $p_rgh; + relTol 0; + } + + "(h|e).*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0; + minIter 1; + maxIter 10; + } + + "(k|epsilon).*" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-5; + relTol 0; + minIter 1; + } + + "f.*" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + + agglomerates + { + nCorr 1; + tolerance 1e-4; + scale true; + solveOnFinalIterOnly true; + sourceUpdateInterval 1; + } +} + +PIMPLE +{ + nOuterCorrectors 3; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + alphaSpreadMin 5e-4; + alphaSpreadMax 0.9995; +} + +relaxationFactors +{} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/topoSetDict b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/topoSetDict new file mode 100644 index 0000000000..86a2ddebb5 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/system/topoSetDict @@ -0,0 +1,77 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object topoSetDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name beforeBend_1d; + type cellSet; + action new; + source boxToCell; + box (-0.03 0.35 -0.03) (0.03 0.37 0.03); + } + { + name afterBend_1d; + type cellSet; + action new; + source boxToCell; + box (-0.03 0.43 0.09) (0.03 0.48 0.11); + } + { + name afterBend_5d; + type cellSet; + action new; + source boxToCell; + box (-0.03 0.43 0.25) (0.03 0.48 0.27); + } + { + name afterBend_9d; + type cellSet; + action new; + source boxToCell; + box (-0.03 0.43 0.41) (0.03 0.48 0.43); + } + { + name beforeBend_1d; + type cellZoneSet; + action new; + source setToCellZone; + set beforeBend_1d; + } + { + name afterBend_1d; + type cellZoneSet; + action new; + source setToCellZone; + set afterBend_1d; + } + { + name afterBend_5d; + type cellZoneSet; + action new; + source setToCellZone; + set afterBend_5d; + } + { + name afterBend_9d; + type cellZoneSet; + action new; + source setToCellZone; + set afterBend_9d; + } +); + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/validation/createGraphs b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/validation/createGraphs new file mode 100755 index 0000000000..87f35b9ac2 --- /dev/null +++ b/tutorials/multiphase/multiphaseEulerFoam/RAS/pipeBend/validation/createGraphs @@ -0,0 +1,46 @@ +#!/bin/sh + +if ! which gnuplot > /dev/null 2>&1 +then + echo 'gnuplot not found - skipping graph creation' >&2 + exit 1 +fi + +time=$(foamListTimes -case .. -latestTime) +beforeBend=../postProcessing/probabilityDensity.beforeBend_1d/$time/probabilityDensity.beforeBend_1d.xy +afterBend1D=../postProcessing/probabilityDensity.afterBend_1d/$time/probabilityDensity.afterBend_1d.xy +afterBend3D=../postProcessing/probabilityDensity.afterBend_3d/$time/probabilityDensity.afterBend_3d.xy +afterBend5D=../postProcessing/probabilityDensity.afterBend_5d/$time/probabilityDensity.afterBend_5d.xy +afterBend7D=../postProcessing/probabilityDensity.afterBend_7d/$time/probabilityDensity.afterBend_7d.xy +afterBend9D=../postProcessing/probabilityDensity.afterBend_9d/$time/probabilityDensity.afterBend_9d.xy +layerAverage=../postProcessing/graphCrossSection/$time/layerAverage.xy + +gnuplot<